From 0deac1d1b636bc7c25a01928e2c1bdcebe91edee Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Fri, 2 Sep 2016 11:12:24 -0300 Subject: [PATCH] Only show RSS Feed Import Failed Dialog when Activity lives --- .../src/org/briarproject/android/BaseActivity.java | 11 ++++++++++- .../src/org/briarproject/android/Destroyable.java | 10 ++++++++++ .../android/blogs/RssFeedImportActivity.java | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 briar-android/src/org/briarproject/android/Destroyable.java diff --git a/briar-android/src/org/briarproject/android/BaseActivity.java b/briar-android/src/org/briarproject/android/BaseActivity.java index 764ef06072..33d66909c8 100644 --- a/briar-android/src/org/briarproject/android/BaseActivity.java +++ b/briar-android/src/org/briarproject/android/BaseActivity.java @@ -2,6 +2,7 @@ package org.briarproject.android; import android.os.Bundle; import android.os.IBinder; +import android.support.annotation.UiThread; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -16,12 +17,14 @@ import static android.view.inputmethod.InputMethodManager.SHOW_FORCED; import static android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT; import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; -public abstract class BaseActivity extends AppCompatActivity { +public abstract class BaseActivity extends AppCompatActivity + implements Destroyable { protected ActivityComponent activityComponent; private final List<ActivityLifecycleController> lifecycleControllers = new ArrayList<>(); + private boolean destroyed = false; public abstract void injectActivity(ActivityComponent component); @@ -78,11 +81,17 @@ public abstract class BaseActivity extends AppCompatActivity { @Override protected void onDestroy() { super.onDestroy(); + destroyed = true; for (ActivityLifecycleController alc : lifecycleControllers) { alc.onActivityDestroy(); } } + @UiThread + public boolean hasBeenDestroyed() { + return destroyed; + } + public void showSoftKeyboardForced(View view) { Object o = getSystemService(INPUT_METHOD_SERVICE); ((InputMethodManager) o).showSoftInput(view, SHOW_FORCED); diff --git a/briar-android/src/org/briarproject/android/Destroyable.java b/briar-android/src/org/briarproject/android/Destroyable.java new file mode 100644 index 0000000000..a9a9ef8ce5 --- /dev/null +++ b/briar-android/src/org/briarproject/android/Destroyable.java @@ -0,0 +1,10 @@ +package org.briarproject.android; + +import android.support.annotation.UiThread; + +interface Destroyable { + + @UiThread + boolean hasBeenDestroyed(); + +} diff --git a/briar-android/src/org/briarproject/android/blogs/RssFeedImportActivity.java b/briar-android/src/org/briarproject/android/blogs/RssFeedImportActivity.java index 62f6c4f42a..f16663a1c4 100644 --- a/briar-android/src/org/briarproject/android/blogs/RssFeedImportActivity.java +++ b/briar-android/src/org/briarproject/android/blogs/RssFeedImportActivity.java @@ -151,6 +151,8 @@ public class RssFeedImportActivity extends BriarActivity { runOnUiThread(new Runnable() { @Override public void run() { + if (RssFeedImportActivity.this.hasBeenDestroyed()) return; + // hide progress bar, show publish button progressBar.setVisibility(GONE); importButton.setVisibility(VISIBLE); -- GitLab