diff --git a/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt b/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt index 90facf688a16091b7ceb37602854030f387c7f7c..981b13430924e3539f49d5aa0180b09d8bdf7992 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/helpers/ObservableHelper.kt @@ -1,5 +1,6 @@ package de.kuschku.libquassel.util.helpers +import de.kuschku.libquassel.util.Optional import io.reactivex.Observable fun <T> Observable<T>.or(default: T): T = try { @@ -9,4 +10,4 @@ fun <T> Observable<T>.or(default: T): T = try { } val <T> Observable<T>.value - get() = this.blockingLatest().firstOrNull() \ No newline at end of file + get() = this.map { Optional.of(it) }.blockingMostRecent(Optional.empty()).firstOrNull()?.orNull() \ No newline at end of file diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt index 1eb9a5b0ce6f702d6b1062a2b52a25c2dd87971d..718d242dcce3d574f01ccf49ddba2dba170e723a 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt @@ -16,7 +16,6 @@ import de.kuschku.quasseldroid.util.helper.combineLatest import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.viewmodel.data.* import io.reactivex.Observable -import io.reactivex.functions.Function import io.reactivex.subjects.BehaviorSubject import java.util.concurrent.TimeUnit @@ -55,9 +54,9 @@ class QuasselViewModel : ViewModel() { .map(Optional<BufferViewManager>::get) val bufferViewConfig = bufferViewManager.switchMap { manager -> - bufferViewConfigId.map(Function<Int, Optional<BufferViewConfig>> { id -> + bufferViewConfigId.map { id -> Optional.ofNullable(manager.bufferViewConfig(id)) - }) + } } val errors = session.switchMap(ISession::error)