Introduce LockscreenCredential
* Wrap credential bytes and type into one single object. * Update all external APIs dealing with lockscreen passoword to use the LockscreenCredential class. Remove existing variants that handles pin/password/pattern separately. * Coerce password quality passed to LockSettingsService into one of UNSPECIFIED, PATTERN, NUMERIC or ALPHABETIC (explained below). * Update all clients & tests to interface with LockscreenCredential. Note: LockscreenCredential distinguishes between PIN and password in its public interfaces, this is to pave the way for the next patch of formally introducing a CREDENTIAL_TYPE_PIN type and getting rid of the requestedQuality being passed along (whose sole purpose nowadays is to distinguish between PIN and password) For now LockscreenCredential still uses the quality value internally to make that distinction. This does result in a change to what quality values LockSettingsService receives as part of credential change: after this CL LSS will only see the quality being one of UNSPECIFIED, PATTERN, NUMERIC or ALPHABETIC, while it used to receive other qualities (NUMERIC_COMPLEX, ALPHANUMERIC etc) if device admin sets a password policy. This shouldn't make any behaviour changes though, because the new range of values is still sufficient to distinguish between PIN/Pattern/Password, which is what the consumers of the stored quality care about. Bug: 65239740 Test: atest com.android.server.locksettings Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest Test: atest com.android.internal.widget.LockPatternUtilsTest Test: atest com.android.internal.widget.LockscreenCredentialTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password Test: atest MixedManagedProfileOwnerTest#testResetPasswordWithToken Test: atest MixedDeviceOwnerTest#testResetPasswordWithToken Test: manually set an PIN/Pattern/Password; then change to PIN/Pattern/Password; finally remove password Test: manually create a work profile; try unify and ununify work challenge. Test: manually test lockscreen FRP flow (change password via Settings / DPC) Change-Id: I04cc04057c96292a7b1b672bff2a09d594ea9b3c
Loading
Please register or sign in to comment