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 93f67ba4922115cf3e703771ab3b8122b7af01f5..70419e7a9ee23a5b0d3fc31d73ec40c69fc3be0f 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 5966688b4eddacbd0231ac802774cb78c8001b21..e101073fb94fbb067933ca681b5b5054a12eb8c3 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 f383b42d90d2db8acdc774a3aa50ce2a4a163fb2..90e4e02697d97d9f62fb6d458e4c612702618a35 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 a2ac75c98745b98bff06b4462bee8c23492c03b4..f27c5d3b16919bcd6aec03981e1e8366dfc854e2 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 c0c0074a3a8f697a6cd84102bee350526f199c88..019f7a7d38f3264cd5a9eb959685a59154cf07c6 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 abf869f3d88de3878a0187439d1e7f8145b40e9b..eaea5680ee74f75bdf82d9711798167dd506dc38 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 04e11b532b79641e79f86877aa481a689ebed6de..b69690d558c92203eca5f81531b481ffce05beb9 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 ->