diff --git a/briar-android/src/org/briarproject/android/BriarActivity.java b/briar-android/src/org/briarproject/android/BriarActivity.java index 8d88cc5db1748b7a6f85254362eff717096c18e4..dc0249ff57c480880836e8dbc4e838b157ff9a55 100644 --- a/briar-android/src/org/briarproject/android/BriarActivity.java +++ b/briar-android/src/org/briarproject/android/BriarActivity.java @@ -14,11 +14,13 @@ import org.briarproject.api.db.DatabaseExecutor; import org.briarproject.api.lifecycle.LifecycleManager; import java.util.concurrent.Executor; -import java.util.logging.Level; import java.util.logging.Logger; import javax.inject.Inject; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; +import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; +import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION; import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP; @@ -101,12 +103,8 @@ public abstract class BriarActivity extends BaseActivity { LOG.warning("Interrupted while waiting for service"); Thread.currentThread().interrupt(); } - - if(removeFromRecentApps){ - ExitActivity.exitAndRemoveFromRecentApps(BriarActivity.this); - } else { - finishAndExit(); - } + if (removeFromRecentApps) startExitActivity(); + else finishAndExit(); } }.start(); } @@ -115,14 +113,27 @@ public abstract class BriarActivity extends BaseActivity { signOut(false); } + private void startExitActivity() { + runOnUiThread(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(BriarActivity.this, + ExitActivity.class); + intent.addFlags(FLAG_ACTIVITY_NEW_TASK + | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS + | FLAG_ACTIVITY_NO_ANIMATION); + if (Build.VERSION.SDK_INT >= 11) + intent.addFlags(FLAG_ACTIVITY_CLEAR_TASK); + startActivity(intent); + } + }); + } + private void finishAndExit() { runOnUiThread(new Runnable() { public void run() { - if (Build.VERSION.SDK_INT >= 21) { - finishAndRemoveTask(); - } else { - finish(); - } + if (Build.VERSION.SDK_INT >= 21) finishAndRemoveTask(); + else finish(); LOG.info("Exiting"); System.exit(0); } diff --git a/briar-android/src/org/briarproject/android/panic/ExitActivity.java b/briar-android/src/org/briarproject/android/panic/ExitActivity.java index 68bef09ec217624ed748dcb3a5e36bc60cff00e3..9cfb775d2463e1cbd67e129f60dd691489c61ccc 100644 --- a/briar-android/src/org/briarproject/android/panic/ExitActivity.java +++ b/briar-android/src/org/briarproject/android/panic/ExitActivity.java @@ -1,40 +1,23 @@ package org.briarproject.android.panic; -import android.content.Intent; import android.os.Build; import android.os.Bundle; import org.briarproject.android.BaseActivity; -public class ExitActivity extends BaseActivity { +import java.util.logging.Logger; - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); +public class ExitActivity extends BaseActivity { - if (Build.VERSION.SDK_INT >= 21) { - finishAndRemoveTask(); - } else { - finish(); - } + private static final Logger LOG = + Logger.getLogger(ExitActivity.class.getName()); + @Override + public void onCreate(Bundle state) { + super.onCreate(state); + if (Build.VERSION.SDK_INT >= 21) finishAndRemoveTask(); + else finish(); + LOG.info("Exiting"); System.exit(0); } - - public static void exitAndRemoveFromRecentApps(final BaseActivity activity) { - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - Intent intent = new Intent(activity, ExitActivity.class); - - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS - | Intent.FLAG_ACTIVITY_CLEAR_TASK - | Intent.FLAG_ACTIVITY_NO_ANIMATION); - - activity.startActivity(intent); - } - }); - - } } \ No newline at end of file