fix: 修复夜间模式异常
This commit is contained in:
parent
bbcb486342
commit
0e91950519
|
|
@ -1,9 +1,11 @@
|
||||||
package com.huanchengfly.tieba.post
|
package com.huanchengfly.tieba.post
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.State
|
import androidx.compose.runtime.State
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
|
import androidx.datastore.core.DataMigration
|
||||||
import androidx.datastore.core.DataStore
|
import androidx.datastore.core.DataStore
|
||||||
import androidx.datastore.preferences.SharedPreferencesMigration
|
import androidx.datastore.preferences.SharedPreferencesMigration
|
||||||
import androidx.datastore.preferences.core.*
|
import androidx.datastore.preferences.core.*
|
||||||
|
|
@ -23,10 +25,26 @@ object DataStoreConst {
|
||||||
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(
|
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(
|
||||||
name = DataStoreConst.DATA_STORE_NAME,
|
name = DataStoreConst.DATA_STORE_NAME,
|
||||||
produceMigrations = { context ->
|
produceMigrations = { context ->
|
||||||
listOf(SharedPreferencesMigration(context, "settings"))
|
listOf(
|
||||||
|
SharedPreferencesMigration(context, "settings"),
|
||||||
|
object : DataMigration<Preferences> {
|
||||||
|
override suspend fun cleanUp() {}
|
||||||
|
|
||||||
|
override suspend fun migrate(currentData: Preferences): Preferences {
|
||||||
|
return currentData.toMutablePreferences().apply {
|
||||||
|
set(stringPreferencesKey("dark_theme"), "grey_dark")
|
||||||
|
}.toPreferences()
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun shouldMigrate(currentData: Preferences): Boolean {
|
||||||
|
return currentData[stringPreferencesKey("dark_theme")] == "dark"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@SuppressLint("FlowOperatorInvokedInComposition")
|
||||||
@Composable
|
@Composable
|
||||||
fun <T> DataStore<Preferences>.collectPreferenceAsState(key: Preferences.Key<T>, defaultValue: T): State<T> {
|
fun <T> DataStore<Preferences>.collectPreferenceAsState(key: Preferences.Key<T>, defaultValue: T): State<T> {
|
||||||
return data.map { it[key] ?: defaultValue }.collectAsState(initial = defaultValue)
|
return data.map { it[key] ?: defaultValue }.collectAsState(initial = defaultValue)
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ open class AppPreferencesUtils(context: Context) {
|
||||||
defaultValue = "0"
|
defaultValue = "0"
|
||||||
)
|
)
|
||||||
|
|
||||||
var darkTheme by DataStoreDelegates.string(key = "dark_theme", defaultValue = "dark")
|
var darkTheme by DataStoreDelegates.string(key = "dark_theme", defaultValue = "grey_dark")
|
||||||
|
|
||||||
var followSystemNight by DataStoreDelegates.boolean(
|
var followSystemNight by DataStoreDelegates.boolean(
|
||||||
defaultValue = true,
|
defaultValue = true,
|
||||||
|
|
@ -365,7 +365,6 @@ open class AppPreferencesUtils(context: Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val Context.appPreferences: AppPreferencesUtils
|
val Context.appPreferences: AppPreferencesUtils
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue