From d5d9436e289cd224c59189db4a0301285ab71124 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 7 Apr 2017 10:53:56 +0100 Subject: [PATCH] Terminate the process after handling a panic trigger. --- .gitignore | 1 + .../briar/android/activity/BriarActivity.java | 31 +++++++++++++------ .../android/navdrawer/NavDrawerActivity.java | 7 ++--- .../android/panic/PanicResponderActivity.java | 13 ++------ 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index d685e3e2e6..8e2753bcf7 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ local.properties .gradle build/ *.iml +projectFilesBackup/ \ No newline at end of file diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index 3fb1d8d51d..8178224499 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -14,7 +14,7 @@ import android.view.Window; import org.briarproject.briar.R; import org.briarproject.briar.android.controller.BriarController; import org.briarproject.briar.android.controller.DbController; -import org.briarproject.briar.android.controller.handler.UiResultHandler; +import org.briarproject.briar.android.controller.handler.ResultHandler; import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.login.PasswordActivity; import org.briarproject.briar.android.panic.ExitActivity; @@ -116,17 +116,28 @@ public abstract class BriarActivity extends BaseActivity { } protected void signOut(final boolean removeFromRecentApps) { - briarController.signOut(new UiResultHandler<Void>(this) { - @Override - public void onResultUi(Void result) { - if (removeFromRecentApps) startExitActivity(); - else finishAndExit(); - } - }); + if (briarController.hasEncryptionKey()) { + // Don't use UiResultHandler because we want the result even if + // this activity has been destroyed + briarController.signOut(new ResultHandler<Void>() { + @Override + public void onResult(Void result) { + runOnUiThread(new Runnable() { + @Override + public void run() { + exit(removeFromRecentApps); + } + }); + } + }); + } else { + exit(removeFromRecentApps); + } } - protected void signOut() { - signOut(false); + private void exit(boolean removeFromRecentApps) { + if (removeFromRecentApps) startExitActivity(); + else finishAndExit(); } private void startExitActivity() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index f118def4a3..c0927dc120 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -188,7 +188,7 @@ public class NavDrawerActivity extends BriarActivity implements } else if (getSupportFragmentManager().getBackStackEntryCount() == 0 && getSupportFragmentManager() .findFragmentByTag(ContactListFragment.TAG) == null) { - /** + /* * This Makes sure that the first fragment (ContactListFragment) the * user sees is the same as the last fragment the user sees before * exiting. This models the typical Google navigation behaviour such @@ -212,11 +212,10 @@ public class NavDrawerActivity extends BriarActivity implements drawerToggle.onConfigurationChanged(newConfig); } - @Override - protected void signOut() { + private void signOut() { drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_CLOSED); startFragment(new SignOutFragment()); - super.signOut(); + signOut(false); } private void startFragment(BaseFragment fragment, int itemId){ diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java index 73d3f01804..82534f99f7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java @@ -57,8 +57,7 @@ public class PanicResponderActivity extends BriarActivity { LOG.info("Received Panic Trigger..."); if (PanicResponder.receivedTriggerFromConnectedApp(this)) { - LOG.info("Panic Trigger came from connected app."); - LOG.info("Performing destructive responses..."); + LOG.info("Panic Trigger came from connected app"); // Performing panic responses if (sharedPref.getBoolean(KEY_UNINSTALL, false)) { @@ -73,21 +72,13 @@ public class PanicResponderActivity extends BriarActivity { } else if (sharedPref.getBoolean(KEY_PURGE, false)) { LOG.info("Purging all data..."); deleteAllData(); - } else if (sharedPref.getBoolean(KEY_LOCK, false)) { + } else if (sharedPref.getBoolean(KEY_LOCK, true)) { LOG.info("Signing out..."); signOut(true); } } } } - // received intent from non-trusted app - else { - intent = getIntent(); - if (intent != null && Panic.isTriggerIntent(intent)) { - LOG.info("Signing out..."); - signOut(true); - } - } if (Build.VERSION.SDK_INT >= 21) { finishAndRemoveTask(); -- GitLab