X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FProfileThemedActivity.java;h=f4d482a5b7a93b356684115fb3f0c0c822d0c26d;hp=4aa60241dd3bab3fda24b661d901f793f7b9763a;hb=HEAD;hpb=fac0809065787fb473646db5770f4f2fae0d1e8f diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java index 4aa60241..b9726492 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java @@ -18,17 +18,16 @@ package net.ktnx.mobileledger.ui.activity; import android.annotation.SuppressLint; -import android.os.AsyncTask; import android.os.Bundle; import androidx.annotation.Nullable; import net.ktnx.mobileledger.App; +import net.ktnx.mobileledger.dao.BaseDAO; import net.ktnx.mobileledger.dao.ProfileDAO; import net.ktnx.mobileledger.db.DB; import net.ktnx.mobileledger.db.Profile; import net.ktnx.mobileledger.model.Data; -import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.utils.Colors; import net.ktnx.mobileledger.utils.Logger; @@ -39,7 +38,7 @@ public class ProfileThemedActivity extends CrashReportingActivity { public static final String TAG = "prf-thm-act"; protected static final String PARAM_PROFILE_ID = "profile-id"; protected static final String PARAM_THEME = "theme"; - protected MobileLedgerProfile mProfile; + protected Profile mProfile; private boolean themeSetUp = false; private boolean mIgnoreProfileChange; private int mThemeHue; @@ -58,8 +57,11 @@ public class ProfileThemedActivity extends CrashReportingActivity { Colors.setupTheme(this, mThemeHue); if (themeSetUp) { - Logger.debug(TAG, "setupProfileColors(): theme already set up, recreating activity"); - this.recreate(); + Logger.debug(TAG, + "setupProfileColors(): theme already set up, supposedly the activity will be " + + "recreated"); +// this.recreate(); + return; } themeSetUp = true; @@ -76,23 +78,25 @@ public class ProfileThemedActivity extends CrashReportingActivity { Data.observeProfile(this, profile -> { if (profile == null) { Logger.debug(TAG, "No current profile, leaving"); - finish(); return; } mProfile = profile; - int hue = profile.getThemeHue(); + storeProfilePref(profile); + int hue = profile.getTheme(); if (hue != mThemeHue) { - storeProfilePref(profile); + Logger.debug(TAG, + String.format(Locale.US, "profile observer calling setupProfileColors(%d)", + hue)); setupProfileColors(hue); } }); super.onCreate(savedInstanceState); } - public void storeProfilePref(MobileLedgerProfile profile) { - App.storeStartupProfileAndTheme(profile.getId(), profile.getThemeHue()); + public void storeProfilePref(Profile profile) { + App.storeStartupProfileAndTheme(profile.getId(), profile.getTheme()); } protected void initProfile() { long profileId = App.getStartupProfile(); @@ -100,14 +104,17 @@ public class ProfileThemedActivity extends CrashReportingActivity { if (profileId == -1) mThemeHue = Colors.DEFAULT_HUE_DEG; + Logger.debug(TAG, + String.format(Locale.US, "initProfile() calling setupProfileColors(%d)", hue)); setupProfileColors(hue); initProfile(profileId); } protected void initProfile(long profileId) { - AsyncTask.execute(() -> initProfileAsync(profileId)); + BaseDAO.runAsync(() -> initProfileSync(profileId)); } - private void initProfileAsync(long profileId) { + private void initProfileSync(long profileId) { + Logger.debug(TAG, String.format(Locale.US, "Loading profile %d", profileId)); ProfileDAO dao = DB.get() .getProfileDAO(); Profile profile = dao.getByIdSync(profileId); @@ -119,6 +126,10 @@ public class ProfileThemedActivity extends CrashReportingActivity { profile = dao.getAnySync(); } - Data.postCurrentProfile(MobileLedgerProfile.fromDBO(profile)); + 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); } }