Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4e447ce authored by Pasty Chang's avatar Pasty Chang Committed by Android (Google) Code Review
Browse files

Merge "Change to show two footer buttons in SUW lockscreen page."

parents eb735f29 382d34dc
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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;
        }

+6 −2
Original line number Diff line number Diff line
@@ -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);
+9 −3
Original line number Diff line number Diff line
@@ -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
+40 −1
Original line number Diff line number Diff line
@@ -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(
+14 −0
Original line number Diff line number Diff line
@@ -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);