Change to show two footer buttons in SUW lockscreen page.
Bug: 121183851 Test: RunSettingsRoboTests Change-Id: Id850e10a10bb8f3a344ef986e07bab1c39c37aa6
This commit is contained in:
@@ -408,9 +408,9 @@ public class ChooseLockPassword extends SettingsActivity {
|
|||||||
ViewGroup container = view.findViewById(R.id.password_container);
|
ViewGroup container = view.findViewById(R.id.password_container);
|
||||||
container.setOpticalInsets(Insets.NONE);
|
container.setOpticalInsets(Insets.NONE);
|
||||||
|
|
||||||
mSkipButton = (Button) view.findViewById(R.id.skip_button);
|
mSkipButton = view.findViewById(R.id.skip_button);
|
||||||
mSkipButton.setOnClickListener(this);
|
mSkipButton.setOnClickListener(this);
|
||||||
mNextButton = (Button) view.findViewById(R.id.next_button);
|
mNextButton = view.findViewById(R.id.next_button);
|
||||||
mNextButton.setOnClickListener(this);
|
mNextButton.setOnClickListener(this);
|
||||||
mClearButton = view.findViewById(R.id.clear_button);
|
mClearButton = view.findViewById(R.id.clear_button);
|
||||||
mClearButton.setOnClickListener(this);
|
mClearButton.setOnClickListener(this);
|
||||||
@@ -894,12 +894,13 @@ public class ChooseLockPassword extends SettingsActivity {
|
|||||||
mPasswordRequirementAdapter.setRequirements(messages);
|
mPasswordRequirementAdapter.setRequirements(messages);
|
||||||
// Enable/Disable the next button accordingly.
|
// Enable/Disable the next button accordingly.
|
||||||
setNextEnabled(errorCode == NO_ERROR);
|
setNextEnabled(errorCode == NO_ERROR);
|
||||||
|
mClearButton.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
// Hide password requirement view when we are just asking user to confirm the pw.
|
// Hide password requirement view when we are just asking user to confirm the pw.
|
||||||
mPasswordRestrictionView.setVisibility(View.GONE);
|
mPasswordRestrictionView.setVisibility(View.GONE);
|
||||||
setHeaderText(getString(mUiStage.getHint(mIsAlphaMode, getStageType())));
|
setHeaderText(getString(mUiStage.getHint(mIsAlphaMode, getStageType())));
|
||||||
setNextEnabled(canInput && length >= mPasswordMinLength);
|
setNextEnabled(canInput && length >= mPasswordMinLength);
|
||||||
mClearButton.setEnabled(canInput && length > 0);
|
mClearButton.setVisibility(toVisibility(canInput && length > 0));
|
||||||
}
|
}
|
||||||
int message = mUiStage.getMessage(mIsAlphaMode, getStageType());
|
int message = mUiStage.getMessage(mIsAlphaMode, getStageType());
|
||||||
if (message != 0) {
|
if (message != 0) {
|
||||||
@@ -909,13 +910,11 @@ public class ChooseLockPassword extends SettingsActivity {
|
|||||||
mMessage.setVisibility(View.INVISIBLE);
|
mMessage.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
mClearButton.setVisibility(toVisibility(mUiStage != Stage.Introduction));
|
|
||||||
|
|
||||||
setNextText(mUiStage.buttonText);
|
setNextText(mUiStage.buttonText);
|
||||||
mPasswordEntryInputDisabler.setInputEnabled(canInput);
|
mPasswordEntryInputDisabler.setInputEnabled(canInput);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int toVisibility(boolean visibleOrGone) {
|
protected int toVisibility(boolean visibleOrGone) {
|
||||||
return visibleOrGone ? View.VISIBLE : View.GONE;
|
return visibleOrGone ? View.VISIBLE : View.GONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -135,9 +135,13 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
|
|||||||
@Override
|
@Override
|
||||||
protected void updateUi() {
|
protected void updateUi() {
|
||||||
super.updateUi();
|
super.updateUi();
|
||||||
|
|
||||||
// Show the skip button during SUW but not during Settings > Biometric Enrollment
|
// Show the skip button during SUW but not during Settings > Biometric Enrollment
|
||||||
mSkipButton.setVisibility(View.VISIBLE);
|
if (mUiStage == Stage.Introduction) {
|
||||||
|
mSkipButton.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mSkipButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
if (mOptionsButton != null) {
|
if (mOptionsButton != null) {
|
||||||
mOptionsButton.setVisibility(
|
mOptionsButton.setVisibility(
|
||||||
mUiStage == Stage.Introduction ? View.VISIBLE : View.GONE);
|
mUiStage == Stage.Introduction ? View.VISIBLE : View.GONE);
|
||||||
|
@@ -59,6 +59,7 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private Button mOptionsButton;
|
private Button mOptionsButton;
|
||||||
|
private Button mSkipButton;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(
|
public View onCreateView(
|
||||||
@@ -71,9 +72,8 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
|||||||
.show(getChildFragmentManager(), null));
|
.show(getChildFragmentManager(), null));
|
||||||
}
|
}
|
||||||
// Show the skip button during SUW but not during Settings > Biometric Enrollment
|
// Show the skip button during SUW but not during Settings > Biometric Enrollment
|
||||||
Button skipButton = view.findViewById(R.id.skip_button);
|
mSkipButton = view.findViewById(R.id.skip_button);
|
||||||
skipButton.setVisibility(View.VISIBLE);
|
mSkipButton.setOnClickListener(v -> {
|
||||||
skipButton.setOnClickListener(v -> {
|
|
||||||
SetupSkipDialog dialog = SetupSkipDialog.newInstance(
|
SetupSkipDialog dialog = SetupSkipDialog.newInstance(
|
||||||
getActivity().getIntent()
|
getActivity().getIntent()
|
||||||
.getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
|
.getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
|
||||||
@@ -100,6 +100,12 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
|||||||
stage == Stage.ChoiceTooShort || stage == Stage.FirstChoiceValid)
|
stage == Stage.ChoiceTooShort || stage == Stage.FirstChoiceValid)
|
||||||
? View.VISIBLE : View.INVISIBLE);
|
? View.VISIBLE : View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stage.leftMode == LeftButtonMode.Gone && stage == Stage.Introduction) {
|
||||||
|
mSkipButton.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mSkipButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -29,10 +29,13 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
|
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
|
||||||
|
import com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment.Stage;
|
||||||
import com.android.settings.password.ChooseLockPassword.IntentBuilder;
|
import com.android.settings.password.ChooseLockPassword.IntentBuilder;
|
||||||
import com.android.settings.password.SetupChooseLockPassword.SetupChooseLockPasswordFragment;
|
import com.android.settings.password.SetupChooseLockPassword.SetupChooseLockPasswordFragment;
|
||||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
|
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
||||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||||
|
import com.android.settings.widget.ScrollToParentEditText;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -51,7 +54,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(shadows = {SettingsShadowResources.class, ShadowUtils.class})
|
@Config(shadows = {SettingsShadowResources.class, ShadowUtils.class, ShadowAlertDialogCompat.class})
|
||||||
public class SetupChooseLockPasswordTest {
|
public class SetupChooseLockPasswordTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -130,6 +133,42 @@ public class SetupChooseLockPasswordTest {
|
|||||||
.isEqualTo("bar");
|
.isEqualTo("bar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createActivity_skipButtonInIntroductionStage_shouldBeVisible() {
|
||||||
|
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
||||||
|
|
||||||
|
Button skipButton = activity.findViewById(R.id.skip_button);
|
||||||
|
assertThat(skipButton).isNotNull();
|
||||||
|
assertThat(skipButton.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
|
|
||||||
|
skipButton.performClick();
|
||||||
|
AlertDialog chooserDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
|
||||||
|
assertThat(chooserDialog).isNotNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createActivity_inputPasswordInConfirmStage_clearButtonShouldBeVisible() {
|
||||||
|
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
||||||
|
|
||||||
|
SetupChooseLockPasswordFragment fragment =
|
||||||
|
(SetupChooseLockPasswordFragment) activity.getSupportFragmentManager()
|
||||||
|
.findFragmentById(R.id.main_content);
|
||||||
|
|
||||||
|
ScrollToParentEditText passwordEntry = activity.findViewById(R.id.password_entry);
|
||||||
|
passwordEntry.setText("");
|
||||||
|
fragment.updateStage(Stage.NeedToConfirm);
|
||||||
|
|
||||||
|
Button skipButton = activity.findViewById(R.id.skip_button);
|
||||||
|
Button clearButton = activity.findViewById(R.id.clear_button);
|
||||||
|
assertThat(skipButton.getVisibility()).isEqualTo(View.GONE);
|
||||||
|
assertThat(clearButton.getVisibility()).isEqualTo(View.GONE);
|
||||||
|
|
||||||
|
passwordEntry.setText("1234");
|
||||||
|
fragment.updateUi();
|
||||||
|
assertThat(skipButton.getVisibility()).isEqualTo(View.GONE);
|
||||||
|
assertThat(clearButton.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
private SetupChooseLockPassword createSetupChooseLockPassword() {
|
private SetupChooseLockPassword createSetupChooseLockPassword() {
|
||||||
final Intent intent =
|
final Intent intent =
|
||||||
SetupChooseLockPassword.modifyIntentForSetup(
|
SetupChooseLockPassword.modifyIntentForSetup(
|
||||||
|
@@ -164,6 +164,20 @@ public class SetupChooseLockPatternTest {
|
|||||||
assertThat(findFragment(mActivity).mChosenPattern).isNull();
|
assertThat(findFragment(mActivity).mChosenPattern).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createActivity_enterPattern_clearButtonShouldBeVisible() {
|
||||||
|
ChooseLockPatternFragment fragment = findFragment(mActivity);
|
||||||
|
|
||||||
|
Button skipButton = mActivity.findViewById(R.id.skip_button);
|
||||||
|
Button clearButton = mActivity.findViewById(R.id.footerLeftButton);
|
||||||
|
assertThat(skipButton.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
|
assertThat(clearButton.getVisibility()).isEqualTo(View.GONE);
|
||||||
|
|
||||||
|
enterPattern();
|
||||||
|
assertThat(skipButton.getVisibility()).isEqualTo(View.GONE);
|
||||||
|
assertThat(clearButton.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
private ChooseLockPatternFragment findFragment(FragmentActivity activity) {
|
private ChooseLockPatternFragment findFragment(FragmentActivity activity) {
|
||||||
return (ChooseLockPatternFragment)
|
return (ChooseLockPatternFragment)
|
||||||
activity.getSupportFragmentManager().findFragmentById(R.id.main_content);
|
activity.getSupportFragmentManager().findFragmentById(R.id.main_content);
|
||||||
|
Reference in New Issue
Block a user