From e0db1164018d84f7807a1e29b9d80dc804b0ccb6 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 25 Mar 2019 19:20:23 +0000 Subject: [PATCH] Prevent crash --- .../main/java/eu/faircode/email/ServiceTileUnseen.java | 1 + app/src/main/java/eu/faircode/email/TwoStateOwner.java | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java b/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java index a9206ea888..191049dd7c 100644 --- a/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java +++ b/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java @@ -69,6 +69,7 @@ public class ServiceTileUnseen extends TileService { @Override public void onDestroy() { + owner.destroy(); super.onDestroy(); } diff --git a/app/src/main/java/eu/faircode/email/TwoStateOwner.java b/app/src/main/java/eu/faircode/email/TwoStateOwner.java index 60a3520a54..05d2eedd44 100644 --- a/app/src/main/java/eu/faircode/email/TwoStateOwner.java +++ b/app/src/main/java/eu/faircode/email/TwoStateOwner.java @@ -19,7 +19,7 @@ public class TwoStateOwner implements LifecycleOwner { owner.getLifecycle().addObserver(new LifecycleObserver() { @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void onDestroyed() { - registry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); + destroy(); } }); } @@ -33,10 +33,15 @@ public class TwoStateOwner implements LifecycleOwner { } void restart() { - registry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); + stop(); start(); } + void destroy() { + if (!registry.getCurrentState().equals(Lifecycle.State.DESTROYED)) + registry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); + } + @NonNull @Override public Lifecycle getLifecycle() {