]> git.ktnx.net Git - mobile-ledger.git/commitdiff
ProfileThemedActivity: load profile from options if none is loaded yet
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 19 Oct 2019 13:17:16 +0000 (16:17 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 19 Oct 2019 13:17:16 +0000 (16:17 +0300)
This may happen if the app is removed from memory while the new transaction
activity is active; when the app is started later it goes straight to the
new transaction activity and there is no profile loaded from the options db
in the normal startup the main activity is first and it loads the profile.

Another way to start the new transaction activity without passing via the
main activity is through the app shortcuts

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

index 079e0df6f0e4efcc9709bfd7ae1cbb54e74702f5..821d186d88a2382f405dd6209bf2f61ee8e3be19 100644 (file)
@@ -23,11 +23,14 @@ import android.os.Bundle;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.MobileLedgerProfile;
 import net.ktnx.mobileledger.utils.Colors;
+import net.ktnx.mobileledger.utils.GetOptCallback;
+import net.ktnx.mobileledger.utils.MLDB;
 
 import androidx.annotation.Nullable;
 
 @SuppressLint("Registered")
 public class ProfileThemedActivity extends CrashReportingActivity {
+    static final int waitSlice = 200;
     protected MobileLedgerProfile mProfile;
     protected void setupProfileColors() {
         Colors.setupTheme(this, mProfile);
@@ -40,9 +43,24 @@ public class ProfileThemedActivity extends CrashReportingActivity {
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         initProfile();
         super.onCreate(savedInstanceState);
-        setupProfileColors();
+        Data.profile.observe(this, mobileLedgerProfile -> {
+            mProfile = mobileLedgerProfile;
+            setupProfileColors();
+        });
     }
     protected void initProfile() {
         mProfile = Data.profile.getValue();
+        if (mProfile == null) {
+            MLDB.getOption(MLDB.OPT_PROFILE_UUID, null, new GetOptCallback() {
+                @Override
+                protected void onResult(String profileUUID) {
+                    MobileLedgerProfile startupProfile;
+
+
+                    startupProfile = Data.getProfile(profileUUID);
+                    Data.setCurrentProfile(startupProfile);
+                }
+            });
+        }
     }
 }