Procházet zdrojové kódy

Remove custom preference flow implementation

arkon před 5 roky
rodič
revize
bd20977ebc

+ 0 - 42
app/src/main/java/eu/kanade/tachiyomi/util/PreferenceExtensions.kt

@@ -1,42 +0,0 @@
-package eu.kanade.tachiyomi.util
-
-import android.content.SharedPreferences
-import kotlin.coroutines.CoroutineContext
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.channels.awaitClose
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.channelFlow
-import kotlinx.coroutines.flow.flowOn
-
-@ExperimentalCoroutinesApi
-inline fun <reified T> SharedPreferences.getKey(key: String, default: T, dispatcher: CoroutineContext = Dispatchers.Default): Flow<T> {
-    val flow: Flow<T> = channelFlow {
-        offer(getItem(key, default))
-
-        val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, k ->
-            if (key == k) {
-                offer(getItem(key, default)!!)
-            }
-        }
-
-        registerOnSharedPreferenceChangeListener(listener)
-        awaitClose { unregisterOnSharedPreferenceChangeListener(listener) }
-    }
-    return flow
-            .flowOn(dispatcher)
-}
-
-inline fun <reified T> SharedPreferences.getItem(key: String, default: T): T {
-    @Suppress("UNCHECKED_CAST")
-    return when (default) {
-        is String -> getString(key, default) as T
-        is Int -> getInt(key, default) as T
-        is Long -> getLong(key, default) as T
-        is Boolean -> getBoolean(key, default) as T
-        is Float -> getFloat(key, default) as T
-        is Set<*> -> getStringSet(key, default as Set<String>) as T
-        is MutableSet<*> -> getStringSet(key, default as MutableSet<String>) as T
-        else -> throw IllegalArgumentException("Generic type not handled: ${T::class.java.name}")
-    }
-}