Loading packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java +23 −18 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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); Loading @@ -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()); } } packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt +15 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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) Loading @@ -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 ) } } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java +23 −18 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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); Loading @@ -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()); } }
packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt +15 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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) Loading @@ -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 ) } }