Update to use ParentalControlsUtilsInternal for common logic

Bug: 188847063
Test: atest ParentalControlsUtilsTest
Change-Id: I14ba3683f846ad7ff6e9f2eb5013d9033556e706
This commit is contained in:
Kevin Chyn
2021-06-14 19:07:43 -07:00
parent 9af27677e9
commit ee3ca1506a

View File

@@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.ParentalControlsUtilsInternal;
import android.os.Build; import android.os.Build;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
@@ -71,38 +72,12 @@ public class ParentalControlsUtils {
static RestrictedLockUtils.EnforcedAdmin parentConsentRequiredInternal( static RestrictedLockUtils.EnforcedAdmin parentConsentRequiredInternal(
@NonNull DevicePolicyManager dpm, @BiometricAuthenticator.Modality int modality, @NonNull DevicePolicyManager dpm, @BiometricAuthenticator.Modality int modality,
@NonNull UserHandle userHandle) { @NonNull UserHandle userHandle) {
final ComponentName cn = dpm.getProfileOwnerOrDeviceOwnerSupervisionComponent(userHandle); if (ParentalControlsUtilsInternal.parentConsentRequired(dpm, modality, userHandle)) {
if (cn == null) { final ComponentName cn =
return null; ParentalControlsUtilsInternal.getSupervisionComponentName(dpm, userHandle);
}
final int keyguardDisabledFeatures = dpm.getKeyguardDisabledFeatures(cn);
final boolean dpmFpDisabled = containsFlag(keyguardDisabledFeatures,
DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
final boolean dpmFaceDisabled = containsFlag(keyguardDisabledFeatures,
DevicePolicyManager.KEYGUARD_DISABLE_FACE);
final boolean dpmIrisDisabled = containsFlag(keyguardDisabledFeatures,
DevicePolicyManager.KEYGUARD_DISABLE_IRIS);
final boolean consentRequired;
if (containsFlag(modality, BiometricAuthenticator.TYPE_FINGERPRINT) && dpmFpDisabled) {
consentRequired = true;
} else if (containsFlag(modality, BiometricAuthenticator.TYPE_FACE) && dpmFaceDisabled) {
consentRequired = true;
} else if (containsFlag(modality, BiometricAuthenticator.TYPE_IRIS) && dpmIrisDisabled) {
consentRequired = true;
} else {
consentRequired = false;
}
if (consentRequired) {
return new RestrictedLockUtils.EnforcedAdmin(cn, userHandle); return new RestrictedLockUtils.EnforcedAdmin(cn, userHandle);
} else { } else {
return null; return null;
} }
} }
private static boolean containsFlag(int haystack, int needle) {
return (haystack & needle) != 0;
}
} }