for context, I’m trying to write a reaktive extens...
# reaktive
s
for context, I’m trying to write a reaktive extension for multiplatform-settings:
Copy code
inline fun <reified T : Any> ObservableSettings.listen(key: String): Observable<T?> {
  return observableUnsafe { observer ->
    val disposable = Disposable()
    observer.onSubscribe(disposable)

    addListener(key) {
      if (!disposable.isDisposed) {
        observer.onNext(get(key))
      }
    }

    // todo: unregister listener on disposal.
  }
}