diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.kt b/app/src/main/java/com/hippo/ehviewer/Settings.kt index 1f0541edf..3cd3c1ec9 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/java/com/hippo/ehviewer/Settings.kt @@ -111,7 +111,7 @@ object Settings : DefaultPreferences() { var proxyIp by stringOrNullPref("proxy_ip", null) var dohUrl by stringPref("doh_url", "") - var language by stringPref("app_language", "system").apply { changesFlow().observe { updateWhenLocaleChanges() } } + var language by stringPref("app_language", "system").observed { updateWhenLocaleChanges() } var lastDawnDay by longPref("last_dawn_day", 0) init { diff --git a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt index 09f9cf6a6..2bb79dd37 100644 --- a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt +++ b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt @@ -5,12 +5,11 @@ import androidx.core.os.LocaleListCompat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.launch +import splitties.preferences.PrefDelegate val collectScope = CoroutineScope(Dispatchers.Main + SupervisorJob()) - -fun Flow.observe(func: (Unit) -> Unit) = collectScope.launch { collect(func) } +fun > R.observed(func: (Unit) -> Unit) = apply { collectScope.launch { changesFlow().collect(func) } } fun updateWhenLocaleChanges() { val newValue = Settings.language