From 36d4b9680b5c5ccf27c7aa1e1625172b59b082a3 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 14 Jan 2019 18:27:39 +0100
Subject: [PATCH] Fixes crashing bug

---
 .../java/de/kuschku/quasseldroid/service/QuasselService.kt    | 2 +-
 .../quasseldroid/ui/setup/ServiceBoundSetupActivity.kt        | 4 ++--
 .../quasseldroid/ui/setup/ServiceBoundSlideFragment.kt        | 4 ++--
 .../kuschku/quasseldroid/util/service/ServiceBoundActivity.kt | 4 ++--
 .../kuschku/quasseldroid/util/service/ServiceBoundFragment.kt | 4 ++--
 lib/src/main/java/de/kuschku/libquassel/session/Backend.kt    | 2 +-
 .../de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt     | 2 +-
 7 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
index 93f67ba49..70419e7a9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
@@ -270,7 +270,7 @@ class QuasselService : DaggerLifecycleService(),
       }
     }
 
-    override fun sessionManager() = service!!.sessionManager
+    override fun sessionManager() = service?.sessionManager
 
     override fun connectUnlessConnected(address: SocketAddress, user: String, pass: String,
                                         reconnect: Boolean) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
index 5966688b4..e101073fb 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
@@ -85,13 +85,13 @@ abstract class ServiceBoundSetupActivity :
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
index f383b42d9..90e4e0269 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSlideFragment.kt
@@ -39,13 +39,13 @@ abstract class ServiceBoundSlideFragment : SlideFragment() {
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
index a2ac75c98..f27c5d3b1 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
@@ -58,13 +58,13 @@ abstract class ServiceBoundActivity :
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
index c0c0074a3..019f7a7d3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
@@ -39,13 +39,13 @@ abstract class ServiceBoundFragment : DaggerFragment() {
 
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backend(f)
+      it.sessionManager()?.handlerService?.backend(f)
     }
   }
 
   protected fun runInBackgroundDelayed(delayMillis: Long, f: () -> Unit) {
     connection.backend.value.ifPresent {
-      it.sessionManager().handlerService.backendDelayed(delayMillis, f)
+      it.sessionManager()?.handlerService?.backendDelayed(delayMillis, f)
     }
   }
 
diff --git a/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt b/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
index abf869f3d..eaea5680e 100644
--- a/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/session/Backend.kt
@@ -26,7 +26,7 @@ interface Backend {
   fun connect(address: SocketAddress, user: String, pass: String, reconnect: Boolean)
   fun reconnect()
   fun disconnect(forever: Boolean = false)
-  fun sessionManager(): SessionManager
+  fun sessionManager(): SessionManager?
   fun updateUserDataAndLogin(user: String, pass: String)
   fun requestConnectNewNetwork()
 }
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 04e11b532..b69690d55 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -81,7 +81,7 @@ class QuasselViewModel : ViewModel() {
   }
 
   val backend = backendWrapper.switchMap { it }
-  val sessionManager = backend.mapMap(Backend::sessionManager)
+  val sessionManager = backend.mapMapNullable(Backend::sessionManager)
   val session = sessionManager.mapSwitchMap(SessionManager::session)
   val rpcHandler = session.mapMapNullable(ISession::rpcHandler)
   val features = sessionManager.mapSwitchMap { manager ->
-- 
GitLab