Added additional check on bouncer to check if valid PIN length is stored
on device or not This CL aims at adding an extra check on the bouncer which ensures that a valid PIN length is stored on device. This provides an extra layer of security to prevent any accidental lockouts of the user. Bug: b/284355686 Test: Tested by installing the bouncer on local device and checking if I am able to unlock the device as expected by setting a 6 digit PIN, and a non 6 digit PIN as well. Restarted the device as well. Also, tested all CUJ's (b/290641061) Change-Id: Ie1bb17e6d0b07ed0a0f696a074a94fca8df3991f
This commit is contained in:
@@ -165,15 +165,18 @@ public class KeyguardPinViewController
|
||||
* Responsible for identifying if PIN hinting is to be enabled or not
|
||||
*/
|
||||
private boolean isPinHinting() {
|
||||
return mLockPatternUtils.getPinLength(KeyguardUpdateMonitor.getCurrentUser())
|
||||
== DEFAULT_PIN_LENGTH;
|
||||
return mPinLength == DEFAULT_PIN_LENGTH;
|
||||
}
|
||||
|
||||
/**
|
||||
* Responsible for identifying if auto confirm is enabled or not in Settings
|
||||
* Responsible for identifying if auto confirm is enabled or not in Settings and
|
||||
* a valid PIN_LENGTH is stored on the device (though the latter check is only to make it more
|
||||
* robust since we only allow enabling PIN confirmation if the user has a valid PIN length
|
||||
* saved on device)
|
||||
*/
|
||||
private boolean isAutoPinConfirmEnabledInSettings() {
|
||||
//Checks if user has enabled the auto confirm in Settings
|
||||
return mLockPatternUtils.isAutoPinConfirmEnabled(KeyguardUpdateMonitor.getCurrentUser());
|
||||
return mLockPatternUtils.isAutoPinConfirmEnabled(KeyguardUpdateMonitor.getCurrentUser())
|
||||
&& mPinLength != LockPatternUtils.PIN_LENGTH_UNAVAILABLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,7 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
|
||||
`when`(keyguardPinView.findViewById<View>(R.id.key_enter)).thenReturn(enterButton)
|
||||
// For posture tests:
|
||||
`when`(keyguardPinView.buttons).thenReturn(arrayOf())
|
||||
`when`(lockPatternUtils.getPinLength(anyInt())).thenReturn(6)
|
||||
|
||||
pinViewController =
|
||||
KeyguardPinViewController(
|
||||
@@ -167,7 +168,6 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
|
||||
@Test
|
||||
fun startAppearAnimation_withAutoPinConfirmationFailedPasswordAttemptsLessThan5() {
|
||||
`when`(featureFlags.isEnabled(Flags.AUTO_PIN_CONFIRMATION)).thenReturn(true)
|
||||
`when`(lockPatternUtils.getPinLength(anyInt())).thenReturn(6)
|
||||
`when`(lockPatternUtils.isAutoPinConfirmEnabled(anyInt())).thenReturn(true)
|
||||
`when`(lockPatternUtils.getCurrentFailedPasswordAttempts(anyInt())).thenReturn(3)
|
||||
`when`(passwordTextView.text).thenReturn("")
|
||||
@@ -182,7 +182,6 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
|
||||
@Test
|
||||
fun startAppearAnimation_withAutoPinConfirmationFailedPasswordAttemptsMoreThan5() {
|
||||
`when`(featureFlags.isEnabled(Flags.AUTO_PIN_CONFIRMATION)).thenReturn(true)
|
||||
`when`(lockPatternUtils.getPinLength(anyInt())).thenReturn(6)
|
||||
`when`(lockPatternUtils.isAutoPinConfirmEnabled(anyInt())).thenReturn(true)
|
||||
`when`(lockPatternUtils.getCurrentFailedPasswordAttempts(anyInt())).thenReturn(6)
|
||||
`when`(passwordTextView.text).thenReturn("")
|
||||
|
||||
Reference in New Issue
Block a user