]> git.ktnx.net Git - mobile-ledger.git/commitdiff
several fixes when there are no profiles after full room adoption
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Mon, 26 Apr 2021 04:44:43 +0000 (04:44 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Mon, 26 Apr 2021 04:44:43 +0000 (04:44 +0000)
in particular, the ProfileThemedActivity doesn't call finish() when
there is no current profile, because this is exactly the case when the
app has just been installed and the main activity's introductory
interface needs to be shown

app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryFragment.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java

index d5964e4b3ce53002f50a1224391ca862bf500433..8ad6da6ff0fa7233613d1ffaa53fd694e99d805e 100644 (file)
@@ -108,6 +108,9 @@ public class AccountSummaryFragment extends MobileLedgerListFragment {
         Data.observeProfile(this, this::onProfileChanged);
     }
     private void onProfileChanged(Profile profile) {
+        if (profile == null)
+            return;
+
         DB.get()
           .getAccountDAO()
           .getAllWithAmounts(profile.getId())
index 9f6233bc2e8bbd7fd53e302842fedfdfdb8265b2..cb7cb46c520ea173da9bbd15c71a4bcf9e88d5e0 100644 (file)
@@ -411,11 +411,7 @@ public class MainActivity extends ProfileThemedActivity implements FabManager.Fa
      * called when the current profile has changed
      */
     private void onProfileChanged(@Nullable Profile newProfile) {
-        if (this.profile == null) {
-            if (newProfile == null)
-                return;
-        }
-        else {
+        if (this.profile != null) {
             if (this.profile.equals(newProfile))
                 return;
         }
@@ -427,7 +423,7 @@ public class MainActivity extends ProfileThemedActivity implements FabManager.Fa
         else
             setTitle(R.string.app_name);
 
-        int newProfileTheme = haveProfile ? newProfile.getTheme() : -1;
+        int newProfileTheme = haveProfile ? newProfile.getTheme() : Colors.DEFAULT_HUE_DEG;
         if (newProfileTheme != Colors.profileThemeId) {
             Logger.debug("profiles",
                     String.format(Locale.ENGLISH, "profile theme %d → %d", Colors.profileThemeId,
index a1beb94be914565384fd5dfa33b8b003586412a6..0b4a1fe012f4950dd52f938983a691df14f7cb34 100644 (file)
@@ -75,7 +75,6 @@ public class ProfileThemedActivity extends CrashReportingActivity {
         Data.observeProfile(this, profile -> {
             if (profile == null) {
                 Logger.debug(TAG, "No current profile, leaving");
-                finish();
                 return;
             }
 
@@ -118,7 +117,10 @@ public class ProfileThemedActivity extends CrashReportingActivity {
             profile = dao.getAnySync();
         }
 
-        Logger.debug(TAG, String.format(Locale.ROOT, "Profile %d loaded. posting", profileId));
+        if (profile == null)
+            Logger.debug(TAG, "No profile could be loaded");
+        else
+            Logger.debug(TAG, String.format(Locale.ROOT, "Profile %d loaded. posting", profileId));
         Data.postCurrentProfile(profile);
     }
 }