diff --git a/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt b/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt index 9dad8c6f0..d1bcf32d2 100644 --- a/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt @@ -35,6 +35,7 @@ fun prefDelegate( key: String, defaultValue: T, lifecycleOwner: LifecycleOwner? = null, + sync: Boolean = false, onValueChange: ((T) -> Unit)? = null ): PrefDelegate { return object : PrefDelegate, SharedPreferences.OnSharedPreferenceChangeListener, DefaultLifecycleObserver { @@ -85,7 +86,7 @@ fun prefDelegate( override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) { if (_value.value != value) { when (value) { - is String? -> appCtx.putPrefStringSync(key, value) + is String? -> if (sync) appCtx.putPrefStringSync(key, value) else appCtx.putPrefString(key, value) is Int -> appCtx.putPrefInt(key, value) is Boolean -> appCtx.putPrefBoolean(key, value) is Long -> appCtx.putPrefLong(key, value) @@ -112,8 +113,9 @@ fun prefStateDelegate( key: String, defaultValue: T, lifecycleOwner: LifecycleOwner? = null, + sync: Boolean = false, onValueChange: ((T) -> Unit)? = null ): PrefStateDelegate { - val delegate = prefDelegate(key, defaultValue, lifecycleOwner, onValueChange) + val delegate = prefDelegate(key, defaultValue, lifecycleOwner, sync, onValueChange) return PrefStateDelegate(delegate) } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt index 538b8bf64..0dd7d5ad6 100644 --- a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt @@ -8,7 +8,8 @@ object OtherConfig { var language by prefDelegate( PreferKey.language, - "auto" + "auto", + sync = true ) var updateToVariant by prefDelegate(