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