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

Commit a09c1087 authored by Aaron Liu's avatar Aaron Liu Committed by Android (Google) Code Review
Browse files

Merge "Revert "Do not refetch pin length"" into udc-qpr-dev

parents 691167d4 e63272fc
Loading
Loading
Loading
Loading
+23 −18
Original line number Diff line number Diff line
@@ -43,15 +43,6 @@ public class KeyguardPinViewController
    private long mPinLength;

    private boolean mDisabledAutoConfirmation;
    /**
     * Responsible for identifying if PIN hinting is to be enabled or not
     */
    private boolean mIsPinHinting;

    /**
     * Responsible for identifying if auto confirm is enabled or not in Settings
     */
    private boolean mIsAutoPinConfirmEnabledInSettings;

    protected KeyguardPinViewController(KeyguardPINView view,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -72,9 +63,6 @@ public class KeyguardPinViewController
        mFeatureFlags = featureFlags;
        mBackspaceKey = view.findViewById(R.id.delete_button);
        mPinLength = mLockPatternUtils.getPinLength(KeyguardUpdateMonitor.getCurrentUser());
        mIsPinHinting = mPinLength == DEFAULT_PIN_LENGTH;
        mIsAutoPinConfirmEnabledInSettings = mLockPatternUtils.isAutoPinConfirmEnabled(
                KeyguardUpdateMonitor.getCurrentUser());
    }

    @Override
@@ -94,7 +82,7 @@ public class KeyguardPinViewController

    protected void onUserInput() {
        super.onUserInput();
        if (mIsAutoPinConfirmEnabledInSettings) {
        if (isAutoPinConfirmEnabledInSettings()) {
            updateAutoConfirmationState();
            if (mPasswordEntry.getText().length() == mPinLength
                    && mOkButton.getVisibility() == View.INVISIBLE) {
@@ -142,7 +130,7 @@ public class KeyguardPinViewController
     * Updates the visibility of the OK button for auto confirm feature
     */
    private void updateOKButtonVisibility() {
        if (mIsPinHinting && !mDisabledAutoConfirmation) {
        if (isAutoPinConfirmEnabledInSettings() && !mDisabledAutoConfirmation) {
            mOkButton.setVisibility(View.INVISIBLE);
        } else {
            mOkButton.setVisibility(View.VISIBLE);
@@ -154,9 +142,10 @@ public class KeyguardPinViewController
     * Visibility changes are only for auto confirmation configuration.
     */
    private void updateBackSpaceVisibility() {
        boolean isAutoConfirmation = isAutoPinConfirmEnabledInSettings();
        mBackspaceKey.setTransparentMode(/* isTransparentMode= */
                mIsAutoPinConfirmEnabledInSettings && !mDisabledAutoConfirmation);
        if (mIsAutoPinConfirmEnabledInSettings) {
                isAutoConfirmation && !mDisabledAutoConfirmation);
        if (isAutoConfirmation) {
            if (mPasswordEntry.getText().length() > 0
                    || mDisabledAutoConfirmation) {
                mBackspaceKey.setVisibility(View.VISIBLE);
@@ -166,8 +155,24 @@ public class KeyguardPinViewController
        }
    }
    /** Updates whether to use pin hinting or not. */
    private void updatePinHinting() {
        mPasswordEntry.setIsPinHinting(mIsAutoPinConfirmEnabledInSettings && mIsPinHinting
    void updatePinHinting() {
        mPasswordEntry.setIsPinHinting(isAutoPinConfirmEnabledInSettings() && isPinHinting()
                && !mDisabledAutoConfirmation);
    }

    /**
     * Responsible for identifying if PIN hinting is to be enabled or not
     */
    private boolean isPinHinting() {
        return mLockPatternUtils.getPinLength(KeyguardUpdateMonitor.getCurrentUser())
                == DEFAULT_PIN_LENGTH;
    }

    /**
     * Responsible for identifying if auto confirm is enabled or not in Settings
     */
    private boolean isAutoPinConfirmEnabledInSettings() {
        //Checks if user has enabled the auto confirm in Settings
        return mLockPatternUtils.isAutoPinConfirmEnabled(KeyguardUpdateMonitor.getCurrentUser());
    }
}
+15 −23
Original line number Diff line number Diff line
@@ -97,7 +97,21 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
        `when`(keyguardPinView.findViewById<NumPadButton>(R.id.delete_button))
            .thenReturn(deleteButton)
        `when`(keyguardPinView.findViewById<View>(R.id.key_enter)).thenReturn(enterButton)
        constructViewController()
        pinViewController =
            KeyguardPinViewController(
                keyguardPinView,
                keyguardUpdateMonitor,
                securityMode,
                lockPatternUtils,
                mKeyguardSecurityCallback,
                keyguardMessageAreaControllerFactory,
                mLatencyTracker,
                liftToActivateListener,
                mEmergencyButtonController,
                falsingCollector,
                postureController,
                featureFlags
            )
    }

    @Test
@@ -121,10 +135,8 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
        `when`(lockPatternUtils.isAutoPinConfirmEnabled(anyInt())).thenReturn(true)
        `when`(lockPatternUtils.getCurrentFailedPasswordAttempts(anyInt())).thenReturn(3)
        `when`(passwordTextView.text).thenReturn("")
        constructViewController()

        pinViewController.startAppearAnimation()

        verify(deleteButton).visibility = View.INVISIBLE
        verify(enterButton).visibility = View.INVISIBLE
        verify(passwordTextView).setUsePinShapes(true)
@@ -138,10 +150,8 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
        `when`(lockPatternUtils.isAutoPinConfirmEnabled(anyInt())).thenReturn(true)
        `when`(lockPatternUtils.getCurrentFailedPasswordAttempts(anyInt())).thenReturn(6)
        `when`(passwordTextView.text).thenReturn("")
        constructViewController()

        pinViewController.startAppearAnimation()

        verify(deleteButton).visibility = View.VISIBLE
        verify(enterButton).visibility = View.VISIBLE
        verify(passwordTextView).setUsePinShapes(true)
@@ -153,22 +163,4 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
        pinViewController.handleAttemptLockout(0)
        verify(lockPatternUtils).getCurrentFailedPasswordAttempts(anyInt())
    }

    fun constructViewController() {
        pinViewController =
            KeyguardPinViewController(
                keyguardPinView,
                keyguardUpdateMonitor,
                securityMode,
                lockPatternUtils,
                mKeyguardSecurityCallback,
                keyguardMessageAreaControllerFactory,
                mLatencyTracker,
                liftToActivateListener,
                mEmergencyButtonController,
                falsingCollector,
                postureController,
                featureFlags
            )
    }
}