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

Commit 0101faa3 authored by Aaron Liu's avatar Aaron Liu Committed by Automerger Merge Worker
Browse files

Merge "Revert "Do not refetch pin length"" into udc-qpr-dev am: a09c1087 am: f83d1e8c

parents 6eac9ee5 f83d1e8c
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
            )
    }
}