Move preference extension functions to utils

This commit is contained in:
arkon
2021-12-31 16:32:24 -05:00
parent 7c246ffc71
commit 78c2631b6f
19 changed files with 44 additions and 44 deletions

View File

@@ -2,6 +2,8 @@ package eu.kanade.tachiyomi.util.preference
import android.widget.CompoundButton
import com.tfcporciuncula.flow.Preference
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.onEach
/**
* Binds a checkbox or switch view with a boolean preference.
@@ -10,3 +12,22 @@ fun CompoundButton.bindToPreference(pref: Preference<Boolean>) {
isChecked = pref.get()
setOnCheckedChangeListener { _, isChecked -> pref.set(isChecked) }
}
fun <T> Preference<T>.asImmediateFlow(block: (T) -> Unit): Flow<T> {
block(get())
return asFlow()
.onEach { block(it) }
}
operator fun <T> Preference<Set<T>>.plusAssign(item: T) {
set(get() + item)
}
operator fun <T> Preference<Set<T>>.minusAssign(item: T) {
set(get() - item)
}
fun Preference<Boolean>.toggle(): Boolean {
set(!get())
return get()
}