From e01e51574613459a036c1d60383bfb229799a407 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 12 Jan 2021 21:15:08 -0800 Subject: Convert all theme access to themeprovider --- .../kotlin/com/pitchedapps/frost/prefs/Prefs.kt | 4 +- .../pitchedapps/frost/prefs/sections/ThemePrefs.kt | 67 ++-------------------- 2 files changed, 6 insertions(+), 65 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/prefs') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/prefs/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/prefs/Prefs.kt index 2714b930..d31be432 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/prefs/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/prefs/Prefs.kt @@ -28,7 +28,7 @@ import com.pitchedapps.frost.prefs.sections.ShowcasePrefs import com.pitchedapps.frost.prefs.sections.ShowcasePrefsImpl import com.pitchedapps.frost.prefs.sections.ThemePrefs import com.pitchedapps.frost.prefs.sections.ThemePrefsImpl -import org.koin.core.context.KoinContextHandler +import org.koin.core.context.GlobalContext import org.koin.dsl.module /** @@ -48,7 +48,7 @@ interface Prefs : ShowcasePrefs, PrefsBase { companion object { - fun get(): Prefs = KoinContextHandler.get().get() + fun get(): Prefs = GlobalContext.get().get() fun module() = module { single { BehaviourPrefsImpl(factory = get()) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/ThemePrefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/ThemePrefs.kt index d997876a..47496d6d 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/ThemePrefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/ThemePrefs.kt @@ -16,16 +16,10 @@ */ package com.pitchedapps.frost.prefs.sections -import android.graphics.Color -import ca.allanwang.kau.kotlin.lazyResettable import ca.allanwang.kau.kpref.KPref import ca.allanwang.kau.kpref.KPrefFactory -import ca.allanwang.kau.utils.colorToForeground -import ca.allanwang.kau.utils.isColorVisibleOn -import ca.allanwang.kau.utils.withAlpha import com.pitchedapps.frost.BuildConfig -import com.pitchedapps.frost.enums.FACEBOOK_BLUE -import com.pitchedapps.frost.enums.Theme +import com.pitchedapps.frost.injectors.ThemeProvider import com.pitchedapps.frost.prefs.OldPrefs import com.pitchedapps.frost.prefs.PrefsBase import org.koin.core.component.KoinComponent @@ -44,24 +38,6 @@ interface ThemePrefs : PrefsBase { var customIconColor: Int - val textColor: Int - - val accentColor: Int - - val accentColorForWhite: Int - - val nativeBgColor: Int - - fun nativeBgColor(unread: Boolean): Int - - val bgColor: Int - - val headerColor: Int - - val iconColor: Int - - val isCustomTheme: Boolean - var tintNavBar: Boolean } @@ -71,9 +47,10 @@ class ThemePrefsImpl( ThemePrefs, KoinComponent { private val oldPrefs: OldPrefs by inject() + private val themeProvider: ThemeProvider by inject() - override var theme: Int by kpref("theme", oldPrefs.theme /* 0 */) { _: Int -> - loader.invalidate() + override var theme: Int by kpref("theme", oldPrefs.theme /* 0 */) { + themeProvider.setTheme(it) } override var customTextColor: Int by kpref( @@ -101,41 +78,5 @@ class ThemePrefsImpl( oldPrefs.customIconColor /* 0xffeceff1.toInt() */ ) - private val loader = lazyResettable { Theme.values[theme] } - - val t: Theme by loader - - override val textColor: Int - get() = t.textColorGetter(this) - - override val accentColor: Int - get() = t.accentColorGetter(this) - - override val accentColorForWhite: Int - get() = when { - accentColor.isColorVisibleOn(Color.WHITE) -> accentColor - textColor.isColorVisibleOn(Color.WHITE) -> textColor - else -> FACEBOOK_BLUE - } - - override val nativeBgColor: Int - get() = bgColor.withAlpha(30) - - override fun nativeBgColor(unread: Boolean) = bgColor - .colorToForeground(if (unread) 0.7f else 0.0f) - .withAlpha(30) - - override val bgColor: Int - get() = t.backgroundColorGetter(this) - - override val headerColor: Int - get() = t.headerColorGetter(this) - - override val iconColor: Int - get() = t.iconColorGetter(this) - - override val isCustomTheme: Boolean - get() = t == Theme.CUSTOM - override var tintNavBar: Boolean by kpref("tint_nav_bar", oldPrefs.tintNavBar /* true */) } -- cgit v1.2.3