]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
"final" fixes on account list layout
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / MainActivity.java
index dace5c41b19cb854aa5728ff6a5b30a820aba96a..360f3006a19c0c096f14474fa002ab5a964248b7 100644 (file)
@@ -326,7 +326,6 @@ public class MainActivity extends ProfileThemedActivity {
             };
             drawer.addDrawerListener(drawerListener);
         }
-        setupProfile();
     }
     private void scheduleDataRetrievalIfStale(Date lastUpdate) {
         long now = new Date().getTime();
@@ -410,8 +409,6 @@ public class MainActivity extends ProfileThemedActivity {
      */
     private void onProfileChanged(MobileLedgerProfile profile) {
         boolean haveProfile = profile != null;
-        findViewById(R.id.no_profiles_layout).setVisibility(haveProfile ? View.GONE : View.VISIBLE);
-        findViewById(R.id.pager_layout).setVisibility(haveProfile ? View.VISIBLE : View.VISIBLE);
 
         if (haveProfile)
             setTitle(profile.getName());
@@ -420,20 +417,23 @@ public class MainActivity extends ProfileThemedActivity {
 
         this.profile = profile;
 
-        mProfileListAdapter.notifyDataSetChanged();
-
         int newProfileTheme = haveProfile ? profile.getThemeHue() : -1;
         if (newProfileTheme != Colors.profileThemeId) {
             debug("profiles",
                     String.format(Locale.ENGLISH, "profile theme %d → %d", Colors.profileThemeId,
                             newProfileTheme));
-            MainActivity.this.profileThemeChanged();
             Colors.profileThemeId = newProfileTheme;
+            profileThemeChanged();
             // profileThemeChanged would restart the activity, so no need to reload the
             // data sets below
             return;
         }
 
+        findViewById(R.id.no_profiles_layout).setVisibility(haveProfile ? View.GONE : View.VISIBLE);
+        findViewById(R.id.pager_layout).setVisibility(haveProfile ? View.VISIBLE : View.VISIBLE);
+
+        mProfileListAdapter.notifyDataSetChanged();
+
         drawer.closeDrawers();
 
         Data.transactions.clear();
@@ -647,17 +647,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()) {