From 73ec3d121f4efe45b71279bda16592bbf8335622 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sat, 24 Mar 2018 04:09:17 +0100 Subject: [PATCH] Attempt at fixing another hang --- .../de/kuschku/libquassel/util/helpers/ObservableHelper.kt | 3 ++- .../de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 90facf688..981b13430 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 1eb9a5b0c..718d242dc 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) -- GitLab