From 66c130aa7d9519da3e21d8e310798ea22979d96a Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 2 May 2018 18:48:37 +0200 Subject: [PATCH] Fixes #55 Signed-off-by: Janne Koschinski <janne@kuschku.de> --- .../viewmodel/QuasselViewModel.kt | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) 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 e419295db..b91e5d814 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt @@ -201,34 +201,35 @@ class QuasselViewModel : ViewModel() { if (bufferInfo?.type?.hasFlag(Buffer_Type.ChannelBuffer) == true) { session.liveNetworks().switchMap { networks -> val network = networks[bufferInfo.networkId] - val ircChannel = network?.ircChannel(bufferInfo.bufferName) - if (ircChannel != null) { - ircChannel.liveIrcUsers().switchMap { users -> - combineLatest<IrcUserItem>( - users.map<IrcUser, Observable<IrcUserItem>?> { - it.updates().map { user -> - val userModes = ircChannel.userModes(user) - val prefixModes = network.prefixModes() - - val lowestMode = userModes.asSequence().mapNotNull { - prefixModes.indexOf(it) - }.min() ?: prefixModes.size - - IrcUserItem( - user.nick(), - network.modesToPrefixes(userModes), - lowestMode, - user.realName(), - user.hostMask(), - user.isAway(), - network.support("CASEMAPPING") - ) + network?.liveIrcChannel(bufferInfo.bufferName)?.switchMap { ircChannel -> + if (ircChannel != IrcChannel.NULL) { + ircChannel.liveIrcUsers().switchMap { users -> + combineLatest<IrcUserItem>( + users.map<IrcUser, Observable<IrcUserItem>?> { + it.updates().map { user -> + val userModes = ircChannel.userModes(user) + val prefixModes = network.prefixModes() + + val lowestMode = userModes.asSequence().mapNotNull { + prefixModes.indexOf(it) + }.min() ?: prefixModes.size + + IrcUserItem( + user.nick(), + network.modesToPrefixes(userModes), + lowestMode, + user.realName(), + user.hostMask(), + user.isAway(), + network.support("CASEMAPPING") + ) + } } - } - ) + ) + } + } else { + Observable.just(emptyList()) } - } else { - Observable.just(emptyList()) } } } else { -- GitLab