diff --git a/app/src/main/java/eu/faircode/email/ActivityEML.java b/app/src/main/java/eu/faircode/email/ActivityEML.java index e35ef834cf..f5ebf6beeb 100644 --- a/app/src/main/java/eu/faircode/email/ActivityEML.java +++ b/app/src/main/java/eu/faircode/email/ActivityEML.java @@ -677,6 +677,11 @@ public class ActivityEML extends ActivityBase { ToastEx.makeText(ActivityEML.this, name, Toast.LENGTH_LONG).show(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, @NonNull Throwable ex) { if (ex instanceof IllegalArgumentException) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 3c83ee9844..3a0dab9420 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -781,6 +781,11 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac ToastEx.makeText(ActivitySetup.this, R.string.title_setup_exported, Toast.LENGTH_LONG).show(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { boolean expected = diff --git a/app/src/main/java/eu/faircode/email/AdapterRule.java b/app/src/main/java/eu/faircode/email/AdapterRule.java index 8a70e71b85..50f00fe6e0 100644 --- a/app/src/main/java/eu/faircode/email/AdapterRule.java +++ b/app/src/main/java/eu/faircode/email/AdapterRule.java @@ -411,6 +411,11 @@ public class AdapterRule extends RecyclerView.Adapter { Toast.LENGTH_LONG).show(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { Log.unexpectedError(parentFragment.getParentFragmentManager(), ex, false); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5b46df6234..45c7932f6d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2384,6 +2384,11 @@ public class FragmentCompose extends FragmentBase { activity.invalidateOptionsMenu(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { etBody.setSelection(paragraph.second); @@ -2456,6 +2461,11 @@ public class FragmentCompose extends FragmentBase { } } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { Throwable exex = new Throwable("LanguageTool", ex); diff --git a/app/src/main/java/eu/faircode/email/FragmentContacts.java b/app/src/main/java/eu/faircode/email/FragmentContacts.java index 0451edc6e7..9dbca2cc20 100644 --- a/app/src/main/java/eu/faircode/email/FragmentContacts.java +++ b/app/src/main/java/eu/faircode/email/FragmentContacts.java @@ -482,6 +482,11 @@ public class FragmentContacts extends FragmentBase { ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { if (ex instanceof NoStreamException) @@ -576,6 +581,11 @@ public class FragmentContacts extends FragmentBase { ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show(); } + @Override + protected void onDestroyed(Bundle args) { + toast = null; + } + @Override protected void onException(Bundle args, Throwable ex) { Log.unexpectedError(getParentFragmentManager(), ex); diff --git a/app/src/main/java/eu/faircode/email/SimpleTask.java b/app/src/main/java/eu/faircode/email/SimpleTask.java index aec6cc8f9a..9f36d7ff9a 100644 --- a/app/src/main/java/eu/faircode/email/SimpleTask.java +++ b/app/src/main/java/eu/faircode/email/SimpleTask.java @@ -155,6 +155,7 @@ public abstract class SimpleTask implements LifecycleObserver { public void onDestroy() { EntityLog.log(context, EntityLog.Type.Debug, "Owner gone task=" + name); destroyed = true; + onDestroyed(args); owner.getLifecycle().removeObserver(this); } }; @@ -225,6 +226,7 @@ public abstract class SimpleTask implements LifecycleObserver { state = owner.getLifecycle().getCurrentState(); if (state.equals(Lifecycle.State.DESTROYED)) { Log.i("Destroyed task " + name); + onDestroyed(args); owner.getLifecycle().removeObserver(this); cleanup(context); } else if (state.isAtLeast(Lifecycle.State.RESUMED)) { @@ -366,6 +368,9 @@ public abstract class SimpleTask implements LifecycleObserver { protected void onPostExecute(Bundle args) { } + protected void onDestroyed(Bundle args) { + } + @Override public String toString() { long now = new Date().getTime();