https://kotlinlang.org logo
Title
y

Yuri

08/15/2019, 11:10 PM
Hey guys, I’m trying to migrate RxJava code dealing with SharedPreferences to Kotlin Flow. How correct migration should look like?
private val keyChangesObservable: Observable<String>

  init {
    keyChangesObservable = io.reactivex.Observable.create(ObservableOnSubscribe<String> { emitter ->
      val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, key -> emitter.onNext(key) }
      emitter.setCancellable { prefs.unregisterOnSharedPreferenceChangeListener(listener) }
      prefs.registerOnSharedPreferenceChangeListener(listener)
    }).share()
  }
g

gildor

08/15/2019, 11:28 PM
Please check callbackFlow function documentation, it shows how to write Flow wrapper for callback API
Tho, there is no way to share it yet, but not a big deal for this case imo
l

louiscad

08/16/2019, 12:19 AM
Also, please avoid cross-posting: https://kotlinlang.slack.com/archives/C1CFAFJSK/p1565910781264800 …and consider sending only one message for the same question to avoid ambiguity when starting a thread.
e

Eugen Martynov

08/16/2019, 10:29 AM
Probably more broad you can check https://commonsware.com/presos/androidSummit2019