fix: 特殊情况下无法从夜间模式切换回正常模式
This commit is contained in:
parent
9d2640d8e9
commit
2f9ffde700
|
|
@ -106,13 +106,21 @@ object ThemeUtil {
|
||||||
ThemeUtils.refreshUI(activity)
|
ThemeUtils.refreshUI(activity)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getOldTheme(): String {
|
||||||
|
val oldTheme =
|
||||||
|
dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT).takeUnless { isNightMode(it) }
|
||||||
|
|
||||||
|
return oldTheme ?: THEME_DEFAULT
|
||||||
|
}
|
||||||
|
|
||||||
fun switchTheme(newTheme: String, recordOldTheme: Boolean = true) {
|
fun switchTheme(newTheme: String, recordOldTheme: Boolean = true) {
|
||||||
if (recordOldTheme) {
|
if (recordOldTheme) {
|
||||||
val oldTheme = getTheme()
|
val oldTheme = getTheme()
|
||||||
dataStore.putString(KEY_OLD_THEME, oldTheme)
|
if (!isNightMode(oldTheme)) {
|
||||||
|
dataStore.putString(KEY_OLD_THEME, oldTheme)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dataStore.putString(KEY_THEME, newTheme)
|
dataStore.putString(KEY_THEME, newTheme)
|
||||||
// dataStore.putBoolean(KEY_USE_DYNAMIC_THEME, false)
|
|
||||||
themeState.value = newTheme
|
themeState.value = newTheme
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,7 +135,7 @@ object ThemeUtil {
|
||||||
|
|
||||||
fun switchNightMode() {
|
fun switchNightMode() {
|
||||||
if (isNightMode()) {
|
if (isNightMode()) {
|
||||||
switchTheme(dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT), recordOldTheme = false)
|
switchTheme(getOldTheme(), recordOldTheme = false)
|
||||||
} else {
|
} else {
|
||||||
switchTheme(dataStore.getString(KEY_DARK_THEME, THEME_AMOLED_DARK))
|
switchTheme(dataStore.getString(KEY_DARK_THEME, THEME_AMOLED_DARK))
|
||||||
}
|
}
|
||||||
|
|
@ -142,7 +150,7 @@ object ThemeUtil {
|
||||||
|
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
fun switchFromNightMode(context: Activity, recreate: Boolean = true) {
|
fun switchFromNightMode(context: Activity, recreate: Boolean = true) {
|
||||||
switchTheme(dataStore.getString(KEY_OLD_THEME, THEME_DEFAULT), recordOldTheme = false)
|
switchTheme(getOldTheme(), recordOldTheme = false)
|
||||||
if (recreate) {
|
if (recreate) {
|
||||||
refreshUI(context)
|
refreshUI(context)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue