Sistemato caricamento menu laterale (Drawer)

This commit is contained in:
Giuseppe Scorrano 2021-09-30 13:35:09 +02:00
parent 30e16fb765
commit be1c5ecd0b
2 changed files with 39 additions and 74 deletions

View File

@ -97,13 +97,13 @@ public class MainActivity extends BaseActivity
mBinding.appBarMain.mainSearch.setVisibility(View.GONE);
initGestMenu();
if(savedInstanceState == null) openMain();
if (savedInstanceState == null) openMain();
init();
}
private void startLoginActivity(){
private void startLoginActivity() {
this.finish();
Intent myIntent = new Intent(this, LoginActivity.class);
startActivity(myIntent);
@ -170,7 +170,7 @@ public class MainActivity extends BaseActivity
BaseMenuConfiguration.MenuItem menuItem = getMenuItem(id);
if(menuItem != null) {
if (menuItem != null) {
fragment = menuItem.getFragmentFactory().run();
this.adaptViewToFragment(fragment);
} else {
@ -205,24 +205,30 @@ public class MainActivity extends BaseActivity
private void initGestMenu() {
Menu menu = mBinding.navView.getMenu();
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
if(customConfiguration == null) return;
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
menu.add(R.id.nav_home, R.id.nav_home, 0, R.string.home)
.setIcon(R.drawable.ic_black_home);
for(MenuConfiguration.MenuGroup menuGroup : menuGroups) {
MenuConfiguration baseMenuConfiguration = new MenuConfiguration();
List<MenuConfiguration.MenuGroup> menuGroups = baseMenuConfiguration.getGroups();
SubMenu subMenu = menu.addSubMenu(menuGroup.getGroupText());
for (MenuConfiguration.MenuGroup menuGroup : menuGroups) {
try {
for(MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
subMenu
.add(menuGroup.getGroupId(), menuItem.getID(), 0, menuItem.getTitleText())
.setIcon(menuItem.getDrawerIcon());
if (menuService.isGroupEnabled(menuGroup)) {
SubMenu subMenu = menu.addSubMenu(menuGroup.getGroupText());
for (MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
if(menuService.isItemEnabled(menuItem)) {
subMenu
.add(menuGroup.getGroupId(), menuItem.getID(), 0, menuItem.getTitleText())
.setIcon(menuItem.getDrawerIcon());
}
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
@ -241,15 +247,15 @@ public class MainActivity extends BaseActivity
BaseMenuConfiguration.MenuItem menuItemToReturn = null;
for(MenuConfiguration.MenuGroup menuGroup : menuGroups) {
for(MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
if(menuId == menuItem.getID()) {
for (MenuConfiguration.MenuGroup menuGroup : menuGroups) {
for (MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
if (menuId == menuItem.getID()) {
menuItemToReturn = menuItem;
break;
}
}
if(menuItemToReturn != null) break;
if (menuItemToReturn != null) break;
}
@ -269,13 +275,13 @@ public class MainActivity extends BaseActivity
public void pop() {
int count = getSupportFragmentManager().getBackStackEntryCount();
for(int i = 0; i < count; i++) {
for (int i = 0; i < count; i++) {
getSupportFragmentManager().popBackStack();
}
}
private void adaptViewToFragment(Fragment fragment){
if(fragment instanceof ISearcableFragment) {
private void adaptViewToFragment(Fragment fragment) {
if (fragment instanceof ISearcableFragment) {
mBinding.appBarMain.mainSearch.setOnQueryTextListener((SearchView.OnQueryTextListener) fragment);
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
@ -301,7 +307,7 @@ public class MainActivity extends BaseActivity
}
if(fragment instanceof ITitledFragment && !(fragment instanceof MainFragment)) {
if (fragment instanceof ITitledFragment && !(fragment instanceof MainFragment)) {
mBinding.appBarMain.toolbarTitleCenteredLayout.setVisibility(View.GONE);
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
((ITitledFragment) fragment).onCreateActionBar(mBinding.appBarMain.toolbarTitleLeft, this);
@ -314,19 +320,19 @@ public class MainActivity extends BaseActivity
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
}
if(fragment instanceof IScrollableFragment) {
if (fragment instanceof IScrollableFragment) {
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
((IScrollableFragment) fragment).addOnPreDestroy(() -> {
mBinding.appBarMain.elevatedToolbar.resetAll();
});
}
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isSelectAllButtonEnabled()) {
if (fragment instanceof ISelectAllFragment && ((ISelectAllFragment) fragment).isSelectAllButtonEnabled()) {
mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE);
mBinding.appBarMain.mainSelectAll.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
((ISelectAllFragment)fragment).onSelectAll();
((ISelectAllFragment) fragment).onSelectAll();
}
});
((ISelectAllFragment) fragment).addOnPreDestroy(() -> {
@ -335,16 +341,16 @@ public class MainActivity extends BaseActivity
});
}
if(fragment instanceof IFilterableFragment) {
if (fragment instanceof IFilterableFragment) {
mBinding.appBarMain.mainFilter.setVisibility(View.VISIBLE);
mBinding.appBarMain.mainFilter.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
((IFilterableFragment)fragment).onFilterClick();
((IFilterableFragment) fragment).onFilterClick();
}
});
((IFilterableFragment)fragment).addOnPreDestroy(() -> {
((IFilterableFragment) fragment).addOnPreDestroy(() -> {
mBinding.appBarMain.mainFilter.setVisibility(View.GONE);
mBinding.appBarMain.mainFilter.setOnClickListener(null);
});
@ -354,14 +360,14 @@ public class MainActivity extends BaseActivity
}
}
private void changeContentFragment(Fragment fragment, boolean addToBackStack){
private void changeContentFragment(Fragment fragment, boolean addToBackStack) {
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager
.beginTransaction()
.replace(R.id.frame_container, fragment);
if(addToBackStack) ft.addToBackStack(fragment.getTag());
if (addToBackStack) ft.addToBackStack(fragment.getTag());
ft.commit();
//fragmentManager.executePendingTransactions();
@ -370,11 +376,7 @@ public class MainActivity extends BaseActivity
}
private void init(){
private void init() {
// ServerStatusChecker.getInstance().addCallback(value -> {
// if(value && (!mIsOnline || firstCheckExecution)){

View File

@ -24,11 +24,9 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverDTO;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
@ -113,7 +111,6 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
init();
initGestMenu();
// initGestMenuOLD();
initVersion();
}
@ -296,40 +293,6 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
}
private void initGestMenuOLD() {
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
if (customConfiguration == null) {
// MainApplication.exit();
}
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
int menuSpanCount = 2;
if(UtilityDimension.getDisplayInchs(this.getActivity()) > 8) menuSpanCount = 4;
else if(UtilityDimension.getDisplayInchs(this.getActivity()) > 6.5) menuSpanCount = 3;
for (MenuConfiguration.MenuGroup menuGroup : menuGroups) {
FragmentMainMenuGroupLayoutBinding groupBinding = DataBindingUtil.inflate(mLayoutInflater, R.layout.fragment_main_menu_group_layout, null, false);
String title = this.getResources().getString(menuGroup.getGroupText());
groupBinding.generalDashboardGroupTitle.setText(title);
MenuListAdapter menuListAdapter = new MenuListAdapter(getContext(), menuGroup.getItems());
groupBinding.mainList.setLayoutManager(new GridLayoutManager(getContext(), menuSpanCount));
groupBinding.mainList.setAdapter(menuListAdapter);
groupBinding.mainList.setNestedScrollingEnabled(false);
menuListAdapter.setClickListener((view, position) -> {
onMenuClick(menuGroup.getItems().get(position));
});
mBindings.menuContainer.addView(groupBinding.getRoot());
}
}
private void onMenuClick(MenuConfiguration.MenuItem menuItem) {
((MainActivity) getActivity()).setMenuItem(menuItem.getID());
}