Propagate extras when switching between choose lock activities
bug: 71715828 Test: Manually tested, added robolectric test Change-Id: Ide18c94f52fe896aee0636ef702cd808b7d88638
This commit is contained in:
@@ -72,31 +72,31 @@ public class ChooseLockTypeDialogFragment extends InstrumentedDialogFragment
|
|||||||
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
||||||
|
|
||||||
// Copy the original extras into the new intent
|
// Copy the original extras into the new intent
|
||||||
|
copyBooleanExtra(activityIntent, intent,
|
||||||
|
ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
|
||||||
|
copyBooleanExtra(activityIntent, intent,
|
||||||
|
ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
|
||||||
if (activityIntent.hasExtra(
|
if (activityIntent.hasExtra(
|
||||||
ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS)) {
|
ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS)) {
|
||||||
intent.putExtras(activityIntent.getBundleExtra(
|
intent.putExtras(activityIntent.getBundleExtra(
|
||||||
ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS));
|
ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS));
|
||||||
}
|
}
|
||||||
intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, selectedLockType.defaultQuality);
|
intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, selectedLockType.defaultQuality);
|
||||||
|
|
||||||
// Propagate the fingerprint challenge
|
|
||||||
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE,
|
|
||||||
activityIntent.getBooleanExtra(
|
|
||||||
ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false));
|
|
||||||
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE,
|
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE,
|
||||||
activityIntent.getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0));
|
activityIntent.getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0));
|
||||||
|
|
||||||
// The user is already given the choice of the what screen lock to set up. No need to
|
|
||||||
// show this button again.
|
|
||||||
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
|
|
||||||
|
|
||||||
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
|
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
|
||||||
|
|
||||||
activity.startActivity(intent);
|
activity.startActivity(intent);
|
||||||
activity.finish();
|
activity.finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void copyBooleanExtra(Intent from, Intent to, String name,
|
||||||
|
boolean defaultValue) {
|
||||||
|
to.putExtra(name, from.getBooleanExtra(name, defaultValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@@ -137,6 +137,8 @@ public class SetupChooseLockPasswordTest {
|
|||||||
ShadowActivity shadowActivity = shadowOf(activity);
|
ShadowActivity shadowActivity = shadowOf(activity);
|
||||||
final Intent nextStartedActivity = shadowActivity.getNextStartedActivity();
|
final Intent nextStartedActivity = shadowActivity.getNextStartedActivity();
|
||||||
assertThat(nextStartedActivity).isNotNull();
|
assertThat(nextStartedActivity).isNotNull();
|
||||||
|
assertThat(nextStartedActivity.getBooleanExtra(
|
||||||
|
ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false)).isTrue();
|
||||||
assertThat(nextStartedActivity.getStringExtra("foo")).named("Foo extra")
|
assertThat(nextStartedActivity.getStringExtra("foo")).named("Foo extra")
|
||||||
.isEqualTo("bar");
|
.isEqualTo("bar");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user