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 2507347306cf9c35f74c0a3e7f7c76fe7a15205b..3fb1d8d51d27962aa44983a7aa9ee782048e20f0 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 @@ -27,7 +27,6 @@ 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; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD; @SuppressLint("Registered") @@ -61,7 +60,6 @@ public abstract class BriarActivity extends BaseActivity { super.onStart(); if (!briarController.hasEncryptionKey() && !isFinishing()) { Intent i = new Intent(this, PasswordActivity.class); - i.setFlags(FLAG_ACTIVITY_SINGLE_TOP); startActivityForResult(i, REQUEST_PASSWORD); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java index d5c1da8a4d15045ebe3a75d1351ae087717a6448..26a5847a0467fa71fba93ab8e32e3b889a9132e4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java @@ -19,6 +19,7 @@ import android.widget.TextView.OnEditorActionListener; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; +import org.briarproject.briar.android.controller.BriarController; import org.briarproject.briar.android.controller.handler.UiResultHandler; import org.briarproject.briar.android.util.UiUtils; @@ -26,13 +27,18 @@ import javax.inject.Inject; import static android.content.Intent.ACTION_MAIN; import static android.content.Intent.CATEGORY_HOME; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; +import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; public class PasswordActivity extends BaseActivity { @Inject - protected PasswordController passwordController; + PasswordController passwordController; + + @Inject + BriarController briarController; private Button signInButton; private ProgressBar progress; @@ -82,6 +88,16 @@ public class PasswordActivity extends BaseActivity { }); } + @Override + public void onStart() { + super.onStart(); + // If the user has already signed in, clean up this instance + if (briarController.hasEncryptionKey()) { + setResult(RESULT_OK); + finish(); + } + } + @Override public void injectActivity(ActivityComponent component) { component.inject(this); @@ -98,8 +114,9 @@ public class PasswordActivity extends BaseActivity { private void deleteAccount() { passwordController.deleteAccount(this); setResult(RESULT_CANCELED); - startActivity(new Intent(this, SetupActivity.class)); - supportFinishAfterTransition(); + Intent i = new Intent(this, SetupActivity.class); + i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK); + startActivity(i); } public void onSignInClick(View v) {