From f56032d880abae1d54005c1984e97d39200c2259 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Fri, 12 Feb 2016 23:22:11 +0100
Subject: [PATCH] =?UTF-8?q?Fixed=20a=20bug=20where=20ReAuth=20didn?=
 =?UTF-8?q?=E2=80=99t=20actually=20ReAuth,=20but=20left=20a=20connection?=
 =?UTF-8?q?=20open?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../quasseldroid_ng/service/QuasselService.java        |  1 -
 .../kuschku/quasseldroid_ng/ui/chat/MainActivity.java  |  1 +
 .../de/kuschku/quasseldroid_ng/util/BoundActivity.java | 10 +++++++---
 .../de/kuschku/quasseldroid_ng/util/BoundFragment.java | 10 +++++++---
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java
index 8a75f4385..4e2df1296 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java
@@ -69,7 +69,6 @@ public class QuasselService extends Service {
         public void stopBackgroundThread() {
             if (bgThread != null) bgThread.close();
             bgThread = null;
-            notify(bgThread);
         }
 
         public void addCallback(Consumer<ClientBackgroundThread> consumer) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java
index 162695bbe..63943695a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java
@@ -158,6 +158,7 @@ public class MainActivity extends BoundActivity {
                 return true;
             case R.id.action_reauth:
                 context.settings().lastAccount.set("");
+                stopConnection();
                 finish();
                 return true;
             default:
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundActivity.java
index 5255927c1..ca2b1aac2 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundActivity.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundActivity.java
@@ -37,8 +37,8 @@ import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
 import de.kuschku.quasseldroid_ng.util.accounts.Account;
 
 public abstract class BoundActivity extends AppCompatActivity {
+    protected AppContext context = new AppContext();
     private QuasselService.LocalBinder binder;
-
     private ServiceConnection connection = new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
@@ -56,8 +56,6 @@ public abstract class BoundActivity extends AppCompatActivity {
         }
     };
 
-    protected AppContext context = new AppContext();
-
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         ServiceHelper.initTheme(context, this);
@@ -102,4 +100,10 @@ public abstract class BoundActivity extends AppCompatActivity {
             provider.event.registerSticky(this);
         context.withProvider(provider);
     }
+
+    protected void stopConnection() {
+        if (binder != null) {
+            binder.stopBackgroundThread();
+        }
+    }
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundFragment.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundFragment.java
index bfa02e762..ed9eec333 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundFragment.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/BoundFragment.java
@@ -37,8 +37,8 @@ import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
 import de.kuschku.quasseldroid_ng.util.accounts.Account;
 
 public abstract class BoundFragment extends Fragment {
+    protected AppContext context = new AppContext();
     private QuasselService.LocalBinder binder;
-
     private ServiceConnection connection = new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
@@ -56,8 +56,6 @@ public abstract class BoundFragment extends Fragment {
         }
     };
 
-    protected AppContext context = new AppContext();
-
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         ServiceHelper.initTheme(context, getActivity());
@@ -101,4 +99,10 @@ public abstract class BoundFragment extends Fragment {
             provider.event.registerSticky(this);
         context.withProvider(provider);
     }
+
+    protected void stopConnection() {
+        if (binder != null) {
+            binder.stopBackgroundThread();
+        }
+    }
 }
-- 
GitLab