X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FProfileThemedActivity.java;h=64d84ef0178fde10e8d4c64e6edb923c3647e352;hb=c2c809211c8e68d5d99f9393da4fa399400e9292;hp=36e937d1afdd8373300e1ef8a597784cec911fb0;hpb=c9df8e4fa919ab809bd5f29c4bae5c32c6b8fb2b;p=mobile-ledger-staging.git 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 36e937d1..64d84ef0 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 @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -20,14 +20,27 @@ package net.ktnx.mobileledger.ui.activity; import android.annotation.SuppressLint; import android.os.Bundle; -import net.ktnx.mobileledger.utils.Colors; - import androidx.annotation.Nullable; +import net.ktnx.mobileledger.model.Data; +import net.ktnx.mobileledger.model.MobileLedgerProfile; +import net.ktnx.mobileledger.utils.Colors; + @SuppressLint("Registered") public class ProfileThemedActivity extends CrashReportingActivity { + protected MobileLedgerProfile mProfile; + private boolean themeSetUp = false; + private boolean mIgnoreProfileChange; protected void setupProfileColors() { - Colors.setupTheme(this); + final int themeHue = (mProfile == null) ? -1 : mProfile.getThemeHue(); + + Colors.setupTheme(this, themeHue); + + if (themeSetUp) + this.recreate(); + themeSetUp = true; + + Colors.profileThemeId = Data.retrieveCurrentThemeIdFromDb(); } @Override protected void onStart() { @@ -35,7 +48,22 @@ public class ProfileThemedActivity extends CrashReportingActivity { Colors.refreshColors(getTheme()); } protected void onCreate(@Nullable Bundle savedInstanceState) { + initProfile(); + setupProfileColors(); + + mIgnoreProfileChange = true; + Data.observeProfile(this, profile -> { + if (!mIgnoreProfileChange) { + mProfile = profile; + setupProfileColors(); + } + + mIgnoreProfileChange = false; + }); + super.onCreate(savedInstanceState); - Colors.setupTheme(this); + } + protected void initProfile() { + mProfile = Data.initProfile(); } }