X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FMainActivity.java;h=98ec7aaa524ab7bf26dfed6db181119d7f1a68c7;hp=bedd3b3e424e654e825d1d46fc737a82e837a0dd;hb=5fb830346325e20be596a09118d377b26f09779b;hpb=e52fc67f83e69e1357a31d5a86a58d3d936374a1 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java index bedd3b3e..98ec7aaa 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java @@ -185,24 +185,6 @@ public class MainActivity extends ProfileThemedActivity { drawer.addDrawerListener(barDrawerToggle); } barDrawerToggle.syncState(); - drawer.addDrawerListener(new DrawerLayout.DrawerListener() { - @Override - public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { - if (slideOffset > 0.2) - fabHide(); - } - @Override - public void onDrawerOpened(@NonNull View drawerView) { - fabHide(); - } - @Override - public void onDrawerClosed(@NonNull View drawerView) { - fabShouldShow(); - } - @Override - public void onDrawerStateChanged(int newState) {} - }); - try { PackageInfo pi = getApplicationContext().getPackageManager() @@ -312,21 +294,36 @@ public class MainActivity extends ProfileThemedActivity { (v) -> mProfileListAdapter.flipEditingProfiles()); if (drawerListener == null) { drawerListener = new DrawerLayout.SimpleDrawerListener() { + @Override + public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { + if (slideOffset > 0.2) + fabHide(); + } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); mProfileListAdapter.setAnimationsEnabled(false); mProfileListAdapter.editingProfiles.setValue(false); + Data.drawerOpen.setValue(false); + fabShouldShow(); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); mProfileListAdapter.setAnimationsEnabled(true); + Data.drawerOpen.setValue(true); + fabHide(); } }; drawer.addDrawerListener(drawerListener); } - setupProfile(); + + Data.drawerOpen.observe(this, open -> { + if (open) + drawer.open(); + else + drawer.close(); + }); } private void scheduleDataRetrievalIfStale(Date lastUpdate) { long now = new Date().getTime(); @@ -435,8 +432,6 @@ public class MainActivity extends ProfileThemedActivity { mProfileListAdapter.notifyDataSetChanged(); - drawer.closeDrawers(); - Data.transactions.clear(); debug("transactions", "requesting list reload"); TransactionListViewModel.scheduleTransactionListReload(); @@ -648,17 +643,29 @@ public class MainActivity extends ProfileThemedActivity { public void fabShouldShow() { if ((profile != null) && profile.isPostingPermitted() && !drawer.isOpen()) fab.show(); + else + fabHide(); } public void fabHide() { fab.hide(); } public void onAccountSummaryRowViewClicked(View view) { ViewGroup row; - if (view.getId() == R.id.account_expander) - row = (ViewGroup) view.getParent() - .getParent(); - else - row = (ViewGroup) view.getParent(); + switch (view.getId()) { + case R.id.account_expander: + row = (ViewGroup) view.getParent() + .getParent() + .getParent(); + break; + case R.id.account_expander_container: + case R.id.account_row_acc_name: + row = (ViewGroup) view.getParent() + .getParent(); + break; + default: + row = (ViewGroup) view.getParent(); + break; + } LedgerAccount acc = (LedgerAccount) row.getTag(); switch (view.getId()) {