Skip to content

Instantly share code, notes, and snippets.

View lucassales2's full-sized avatar

Lucas Sales lucassales2

View GitHub Profile
@ologe
ologe / PreferenceExtensions.kt
Last active July 13, 2023 10:25
Android shared preference observer using kotlin coroutines (1.3.0)
inline fun <reified T> SharedPreferences.observeKey(key: String, default: T): Flow<T> {
val flow = MutableStateFlow(getItem(key, default))
val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, k ->
if (key == k) {
flow.value = getItem(key, default)!!
}
}
registerOnSharedPreferenceChangeListener(listener)