From 95e2fc126e178fd87be49461e153f4630b8ecc50 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 10 Dec 2017 05:30:50 +0100
Subject: [PATCH] Fixed an issue where the app would hang

---
 .../de/kuschku/quasseldroid_ng/service/QuasselService.kt     | 2 ++
 .../java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt  | 1 -
 .../quasseldroid_ng/util/service/BackendServiceConnection.kt | 5 +----
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
index b1394e95c..7ef65d2cc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.kt
@@ -83,6 +83,8 @@ class QuasselService : LifecycleService() {
     override fun disconnect(forever: Boolean) {
       handler.post {
         backendImplementation.disconnect(forever)
+        if (forever)
+          stopSelf()
       }
     }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
index 9b40316e0..5493cc2be 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
@@ -144,7 +144,6 @@ class ChatActivity : ServiceBoundActivity() {
           putBoolean(Keys.Status.reconnect, false)
         }
         backend.value?.disconnect(true)
-        stopService()
         setResult(Activity.RESULT_OK)
         finish()
       }
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
index 6dff17f6a..b703da406 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/BackendServiceConnection.kt
@@ -10,13 +10,11 @@ import de.kuschku.libquassel.session.Backend
 import de.kuschku.quasseldroid_ng.service.QuasselService
 
 class BackendServiceConnection : ServiceConnection {
-  var bound = false
   val backend = MutableLiveData<Backend?>()
 
   var context: Context? = null
 
   override fun onServiceDisconnected(component: ComponentName?) {
-    bound = false
     when (component) {
       ComponentName(context, QuasselService::class.java) -> {
         backend.value = null
@@ -25,7 +23,6 @@ class BackendServiceConnection : ServiceConnection {
   }
 
   override fun onServiceConnected(component: ComponentName?, binder: IBinder?) {
-    bound = true
     when (component) {
       ComponentName(context, QuasselService::class.java) ->
         if (binder is QuasselService.QuasselBinder) {
@@ -47,6 +44,6 @@ class BackendServiceConnection : ServiceConnection {
   }
 
   fun unbind() {
-    if (bound) context?.unbindService(this)
+    context?.unbindService(this)
   }
 }
\ No newline at end of file
-- 
GitLab