Commit 06142497 authored by Boris Sazonov's avatar Boris Sazonov Committed by Commit Bot

[Unity][Android] Disable Back button in consent bump screen

This CL disables Back button on the main consent bump screen. If
SigninActivity is not in consent bump mode or there are entries in
fragment manager back stack, Back button works as usual.

Bug: 869426
Change-Id: Iec128e6cd01b9354f9da587da131a27776599c3d
Reviewed-on: https://chromium-review.googlesource.com/1169605Reviewed-by: default avatarTheresa <twellington@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582544}
parent 144eff60
...@@ -21,6 +21,9 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -21,6 +21,9 @@ public class SigninActivity extends SynchronousInitializationActivity {
private static final String TAG = "SigninActivity"; private static final String TAG = "SigninActivity";
private static final String ARGUMENT_FRAGMENT_NAME = "SigninActivity.FragmentName"; private static final String ARGUMENT_FRAGMENT_NAME = "SigninActivity.FragmentName";
private static final String ARGUMENT_FRAGMENT_ARGS = "SigninActivity.FragmentArgs"; private static final String ARGUMENT_FRAGMENT_ARGS = "SigninActivity.FragmentArgs";
private static final String ARGUMENT_INTERCEPT_BACK = "SigninActivity.InterceptBack";
private boolean mInterceptBack;
/** /**
* Creates an {@link Intent} which can be used to start sign-in flow. * Creates an {@link Intent} which can be used to start sign-in flow.
...@@ -29,7 +32,7 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -29,7 +32,7 @@ public class SigninActivity extends SynchronousInitializationActivity {
public static Intent createIntent( public static Intent createIntent(
Context context, @AccountSigninActivity.AccessPoint int accessPoint) { Context context, @AccountSigninActivity.AccessPoint int accessPoint) {
return createIntentInternal( return createIntentInternal(
context, SigninFragment.class, SigninFragment.createArguments(accessPoint)); context, SigninFragment.class, SigninFragment.createArguments(accessPoint), false);
} }
/** /**
...@@ -40,7 +43,7 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -40,7 +43,7 @@ public class SigninActivity extends SynchronousInitializationActivity {
public static Intent createIntentForPromoDefaultFlow( public static Intent createIntentForPromoDefaultFlow(
Context context, @SigninAccessPoint int accessPoint, String accountName) { Context context, @SigninAccessPoint int accessPoint, String accountName) {
return createIntentInternal(context, SigninFragment.class, return createIntentInternal(context, SigninFragment.class,
SigninFragment.createArgumentsForPromoDefaultFlow(accessPoint, accountName)); SigninFragment.createArgumentsForPromoDefaultFlow(accessPoint, accountName), false);
} }
/** /**
...@@ -52,7 +55,8 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -52,7 +55,8 @@ public class SigninActivity extends SynchronousInitializationActivity {
public static Intent createIntentForPromoChooseAccountFlow( public static Intent createIntentForPromoChooseAccountFlow(
Context context, @SigninAccessPoint int accessPoint, String accountName) { Context context, @SigninAccessPoint int accessPoint, String accountName) {
return createIntentInternal(context, SigninFragment.class, return createIntentInternal(context, SigninFragment.class,
SigninFragment.createArgumentsForPromoChooseAccountFlow(accessPoint, accountName)); SigninFragment.createArgumentsForPromoChooseAccountFlow(accessPoint, accountName),
false);
} }
/** /**
...@@ -63,7 +67,7 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -63,7 +67,7 @@ public class SigninActivity extends SynchronousInitializationActivity {
public static Intent createIntentForPromoAddAccountFlow( public static Intent createIntentForPromoAddAccountFlow(
Context context, @SigninAccessPoint int accessPoint) { Context context, @SigninAccessPoint int accessPoint) {
return createIntentInternal(context, SigninFragment.class, return createIntentInternal(context, SigninFragment.class,
SigninFragment.createArgumentsForPromoAddAccountFlow(accessPoint)); SigninFragment.createArgumentsForPromoAddAccountFlow(accessPoint), false);
} }
/** /**
...@@ -72,15 +76,15 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -72,15 +76,15 @@ public class SigninActivity extends SynchronousInitializationActivity {
*/ */
public static Intent createIntentForConsentBump(Context context, String accountName) { public static Intent createIntentForConsentBump(Context context, String accountName) {
return createIntentInternal(context, ConsentBumpFragment.class, return createIntentInternal(context, ConsentBumpFragment.class,
ConsentBumpFragment.createArguments(accountName)); ConsentBumpFragment.createArguments(accountName), true);
} }
private static Intent createIntentInternal( private static Intent createIntentInternal(Context context,
Context context, Class<? extends Fragment> fragmentName, Bundle fragmentArgs) { Class<? extends Fragment> fragmentName, Bundle fragmentArgs, boolean interceptBack) {
Intent intent = new Intent(context, SigninActivity.class); Intent intent = new Intent(context, SigninActivity.class);
intent.putExtra(ARGUMENT_FRAGMENT_NAME, fragmentName.getName()); intent.putExtra(ARGUMENT_FRAGMENT_NAME, fragmentName.getName());
intent.putExtra(ARGUMENT_FRAGMENT_ARGS, fragmentArgs); intent.putExtra(ARGUMENT_FRAGMENT_ARGS, fragmentArgs);
intent.putExtras(fragmentArgs); intent.putExtra(ARGUMENT_INTERCEPT_BACK, interceptBack);
return intent; return intent;
} }
...@@ -97,5 +101,19 @@ public class SigninActivity extends SynchronousInitializationActivity { ...@@ -97,5 +101,19 @@ public class SigninActivity extends SynchronousInitializationActivity {
fragment = Fragment.instantiate(this, fragmentName, fragmentArgs); fragment = Fragment.instantiate(this, fragmentName, fragmentArgs);
fragmentManager.beginTransaction().add(R.id.fragment_container, fragment).commit(); fragmentManager.beginTransaction().add(R.id.fragment_container, fragment).commit();
} }
mInterceptBack = getIntent().getBooleanExtra(ARGUMENT_INTERCEPT_BACK, false);
}
@Override
public void onBackPressed() {
if (!mInterceptBack) {
super.onBackPressed();
return;
}
int backStackEntryCount = getSupportFragmentManager().getBackStackEntryCount();
// Ditch the button click if fragment manager back stack is empty.
if (backStackEntryCount == 0) return;
// Let FragmentActivity pop the stack, as it has additional safety checks.
super.onBackPressed();
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment