diff --git a/.gitignore b/.gitignore index d685e3e2e675ffcf9731ced62a06ab37f83b674d..8e2753bcf7339dd8cf5880860594827cec1b8ade 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 3fb1d8d51d27962aa44983a7aa9ee782048e20f0..8178224499ebbf5f0945a18f129b919c42c7145c 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 f118def4a3ca0f1725421e2e67f7bd6bd7272ccf..c0927dc1206cd2cde7bed40d7953e30db67e932c 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 73d3f018046ae09640bbe303526329518abe3858..82534f99f7c07d81d8f3c6d34e42c0e37a945499 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();