Merge branch '909-prevent-multiple-password-screens' into 'master'

Prevent multiple instances of PasswordActivity

Closes #909

See merge request !504
This commit is contained in:
akwizgran
2017-03-31 13:42:04 +00:00
2 changed files with 20 additions and 5 deletions

View File

@@ -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);
}
}

View File

@@ -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) {