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