aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/prefs
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2021-01-12 21:15:08 -0800
committerAllan Wang <me@allanwang.ca>2021-01-12 21:15:08 -0800
commite01e51574613459a036c1d60383bfb229799a407 (patch)
tree4214c9803638fcc1b9d9e19159651f7115c846c4 /app/src/main/kotlin/com/pitchedapps/frost/prefs
parent0e5c1ab2dd2b574970883576e18f9a119b058788 (diff)
downloadfrost-e01e51574613459a036c1d60383bfb229799a407.tar.gz
frost-e01e51574613459a036c1d60383bfb229799a407.tar.bz2
frost-e01e51574613459a036c1d60383bfb229799a407.zip
Convert all theme access to themeprovider
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/prefs')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/prefs/Prefs.kt4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/prefs/sections/ThemePrefs.kt67
2 files changed, 6 insertions, 65 deletions
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<BehaviourPrefs> { 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 */)
}