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=e17046703c59b1d2b8a41005263bb7f1173f7b63;hp=4d1f07dbd534222d36f194940f5c0b92a5c28fa4;hb=954a5cc489f6076820e3b36dcc7f91814cd49667;hpb=3c8db4ad0cf45ddddd2c9fc141a9874795c1e5ba 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 4d1f07db..e1704670 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 @@ -108,7 +108,9 @@ public class MainActivity extends ProfileThemedActivity { protected void onStart() { super.onStart(); - debug("flow", "MainActivity.onStart()"); + debug("flow", String.format(Locale.ENGLISH, + "MainActivity.onStart(), currentPage is %d, accountFilter is %s", mCurrentPage, + (mAccountFilter == null) ? "" : mAccountFilter)); mViewPager.setCurrentItem(mCurrentPage, false); if (mAccountFilter != null) showTransactionsFragment(mAccountFilter); else Data.accountFilter.setValue(null); @@ -143,6 +145,11 @@ public class MainActivity extends ProfileThemedActivity { storeThemeIdInPrefs(profileColor); } @Override + protected void onResume() { + super.onResume(); + fabShouldShow(); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); debug("flow", "MainActivity.onCreate()"); @@ -204,6 +211,7 @@ public class MainActivity extends ProfileThemedActivity { pageChangeListener = new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { + mCurrentPage = position; switch (position) { case 0: markDrawerItemCurrent(R.id.nav_account_summary); @@ -249,37 +257,36 @@ public class MainActivity extends ProfileThemedActivity { if (mProfileListAdapter == null) mProfileListAdapter = new ProfilesRecyclerViewAdapter(); root.setAdapter(mProfileListAdapter); - mProfileListAdapter.editingProfiles - .observe(this, newValue -> { - if (newValue) { - profileListHeadMore.setVisibility(View.GONE); - profileListHeadCancel.setVisibility(View.VISIBLE); - profileListHeadAddProfile.setVisibility(View.VISIBLE); - if (drawer.isDrawerOpen(GravityCompat.START)) { - profileListHeadMore.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_out)); - profileListHeadCancel.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_in)); - profileListHeadAddProfile.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_in)); - } - } - else { - profileListHeadCancel.setVisibility(View.GONE); - profileListHeadMore.setVisibility(View.VISIBLE); - profileListHeadAddProfile.setVisibility(View.GONE); - if (drawer.isDrawerOpen(GravityCompat.START)) { - profileListHeadCancel.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_out)); - profileListHeadMore.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_in)); - profileListHeadAddProfile.startAnimation(AnimationUtils - .loadAnimation(MainActivity.this, R.anim.fade_out)); - } - } + mProfileListAdapter.editingProfiles.observe(this, newValue -> { + if (newValue) { + profileListHeadMore.setVisibility(View.GONE); + profileListHeadCancel.setVisibility(View.VISIBLE); + profileListHeadAddProfile.setVisibility(View.VISIBLE); + if (drawer.isDrawerOpen(GravityCompat.START)) { + profileListHeadMore.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_out)); + profileListHeadCancel.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in)); + profileListHeadAddProfile.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in)); + } + } + else { + profileListHeadCancel.setVisibility(View.GONE); + profileListHeadMore.setVisibility(View.VISIBLE); + profileListHeadAddProfile.setVisibility(View.GONE); + if (drawer.isDrawerOpen(GravityCompat.START)) { + profileListHeadCancel.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_out)); + profileListHeadMore.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in)); + profileListHeadAddProfile.startAnimation( + AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_out)); + } + } - mProfileListAdapter.notifyDataSetChanged(); - }); + mProfileListAdapter.notifyDataSetChanged(); + }); LinearLayoutManager llm = new LinearLayoutManager(this); @@ -290,7 +297,22 @@ public class MainActivity extends ProfileThemedActivity { profileListHeadCancel.setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles()); profileListHeadMoreAndCancel .setOnClickListener((v) -> mProfileListAdapter.flipEditingProfiles()); - + if (drawerListener == null) { + drawerListener = new DrawerLayout.SimpleDrawerListener() { + @Override + public void onDrawerClosed(View drawerView) { + super.onDrawerClosed(drawerView); + mProfileListAdapter.setAnimationsEnabled(false); + mProfileListAdapter.editingProfiles.setValue(false); + } + @Override + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + mProfileListAdapter.setAnimationsEnabled(true); + } + }; + drawer.addDrawerListener(drawerListener); + } setupProfile(); } private void scheduleDataRetrievalIfStale(Date lastUpdate) {