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=cad021770fa25866bb17b1705a527606c0d30504;hp=7c74e54e6b8bcbe1865a6a7d29e2ca3bd289e96a;hb=d4f0bff6d1d4ed421b5a4eb07bb672bccd6d254d;hpb=68a544bddf0c827b536b1890ba975d9c6bd54a0e 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 7c74e54e..cad02177 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 @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -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,20 +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); } + + Data.drawerOpen.observe(this, open -> { + if (open) + drawer.open(); + else + drawer.close(); + }); } private void scheduleDataRetrievalIfStale(Date lastUpdate) { long now = new Date().getTime(); @@ -354,23 +352,16 @@ public class MainActivity extends ProfileThemedActivity { if (!p.isPostingPermitted()) continue; - ShortcutInfo si = - new ShortcutInfo.Builder(this, "new_transaction_" + p.getUuid()).setShortLabel( - p.getName()) - .setIcon( - Icon.createWithResource( - this, - R.drawable.svg_thick_plus_white)) - .setIntent( - new Intent( - Intent.ACTION_VIEW, - null, - this, - NewTransactionActivity.class).putExtra( - "profile_uuid", - p.getUuid())) - .setRank(i) - .build(); + final ShortcutInfo.Builder builder = + new ShortcutInfo.Builder(this, "new_transaction_" + p.getUuid()); + ShortcutInfo si = builder.setShortLabel(p.getName()) + .setIcon(Icon.createWithResource(this, + R.drawable.thick_plus_icon)) + .setIntent(new Intent(Intent.ACTION_VIEW, null, this, + NewTransactionActivity.class).putExtra("profile_uuid", + p.getUuid())) + .setRank(i) + .build(); shortcuts.add(si); i++; } @@ -434,8 +425,6 @@ public class MainActivity extends ProfileThemedActivity { mProfileListAdapter.notifyDataSetChanged(); - drawer.closeDrawers(); - Data.transactions.clear(); debug("transactions", "requesting list reload"); TransactionListViewModel.scheduleTransactionListReload(); @@ -647,17 +636,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()) {