Loading packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java +17 −8 Original line number Diff line number Diff line Loading @@ -244,14 +244,23 @@ public class RestrictedLockUtilsInternal extends RestrictedLockUtils { */ public static EnforcedAdmin checkIfKeyguardFeaturesDisabled(Context context, int keyguardFeatures, final @UserIdInt int userId) { final LockSettingCheck check = (dpm, admin, checkUser) -> { UserInfo userInfo = UserManager.get(context).getUserInfo(userId); if (userInfo == null) { Log.w(LOG_TAG, "User " + userId + " does not exist"); return null; } final LockSettingCheck check = (dpm, admin, checkUser) -> { int effectiveFeatures = dpm.getKeyguardDisabledFeatures(admin, checkUser); if (checkUser != userId) { // This case is reached when {@code checkUser} is a managed profile and // {@code userId} is the parent user. effectiveFeatures &= PROFILE_KEYGUARD_FEATURES_AFFECT_OWNER; } return (effectiveFeatures & keyguardFeatures) != KEYGUARD_DISABLE_FEATURES_NONE; }; if (UserManager.get(context).getUserInfo(userId).isManagedProfile()) { if (userInfo.isManagedProfile()) { DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); return findEnforcedAdmin(dpm.getActiveAdminsAsUser(userId), dpm, userId, check); Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,16 @@ public class RestrictedLockUtilsTest { assertThat(intentCaptor.getValue().getExtra(EXTRA_RESTRICTION)).isNull(); } /** See b/386971405. Ensure that the code does not crash when the user is not found. */ @Test public void checkIfKeyguardFeaturesDisabled_returnsNull_whenUserDoesNotExist() { when(mUserManager.getUserInfo(mUserId)).thenReturn(null); assertThat( RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled( mContext, KEYGUARD_DISABLE_FINGERPRINT, mUserId)) .isNull(); } private UserInfo setUpUser(int userId, ComponentName[] admins) { UserInfo userInfo = new UserInfo(userId, "primary", 0); when(mUserManager.getUserInfo(userId)).thenReturn(userInfo); Loading Loading
packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java +17 −8 Original line number Diff line number Diff line Loading @@ -244,14 +244,23 @@ public class RestrictedLockUtilsInternal extends RestrictedLockUtils { */ public static EnforcedAdmin checkIfKeyguardFeaturesDisabled(Context context, int keyguardFeatures, final @UserIdInt int userId) { final LockSettingCheck check = (dpm, admin, checkUser) -> { UserInfo userInfo = UserManager.get(context).getUserInfo(userId); if (userInfo == null) { Log.w(LOG_TAG, "User " + userId + " does not exist"); return null; } final LockSettingCheck check = (dpm, admin, checkUser) -> { int effectiveFeatures = dpm.getKeyguardDisabledFeatures(admin, checkUser); if (checkUser != userId) { // This case is reached when {@code checkUser} is a managed profile and // {@code userId} is the parent user. effectiveFeatures &= PROFILE_KEYGUARD_FEATURES_AFFECT_OWNER; } return (effectiveFeatures & keyguardFeatures) != KEYGUARD_DISABLE_FEATURES_NONE; }; if (UserManager.get(context).getUserInfo(userId).isManagedProfile()) { if (userInfo.isManagedProfile()) { DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); return findEnforcedAdmin(dpm.getActiveAdminsAsUser(userId), dpm, userId, check); Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,16 @@ public class RestrictedLockUtilsTest { assertThat(intentCaptor.getValue().getExtra(EXTRA_RESTRICTION)).isNull(); } /** See b/386971405. Ensure that the code does not crash when the user is not found. */ @Test public void checkIfKeyguardFeaturesDisabled_returnsNull_whenUserDoesNotExist() { when(mUserManager.getUserInfo(mUserId)).thenReturn(null); assertThat( RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled( mContext, KEYGUARD_DISABLE_FINGERPRINT, mUserId)) .isNull(); } private UserInfo setUpUser(int userId, ComponentName[] admins) { UserInfo userInfo = new UserInfo(userId, "primary", 0); when(mUserManager.getUserInfo(userId)).thenReturn(userInfo); Loading