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 8a75f4385d911b00da17b8f21a0e820c5b0e0419..4e2df1296f868cf50dee060d7514ba1577d561b3 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 162695bbe966cde579ad18491269bd1257875c8f..63943695afbcf603dab0e92177734426a91fd6bd 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 5255927c1bc17bee418bffd610c9f87e92ae7268..ca2b1aac29e9db030867447d96bcb5340dd914fb 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 bfa02e762cfebc1746ed2c996cd050549acb675a..ed9eec33378825aacddeb732f955c7cd4ad6cf1d 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(); + } + } }