Merge changes from topic "kchyn-unicorn4a" into sc-dev
* changes:
Show biometric-specific dialog when appropriate
Add biometric strings to DeviceAdminStringProviderImpl
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3b4fae4..92a90ce 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10956,6 +10956,10 @@
<string name="disabled_by_policy_title_suspend_packages">Can’t open this app</string>
<!-- Dialog title. This dialog lets a user know that a specific setting is blocked by their credit provider. Since the user purchased the device from the credit provider, the credit provider controls what they can access. [CHAR LIMIT=50] -->
<string name="disabled_by_policy_title_financed_device">Blocked by your credit provider</string>
+ <!-- Dialog title shown when parental consent is required for the child to set up biometric authentication. [CHAR LIMIT=30] -->
+ <string name="disabled_by_policy_title_biometric_parental_consent">Parent needed</string>
+ <!-- Dialog content shown when parental consent is required for the child to set up biometric authentication. [CHAR LIMIT=NONE] -->
+ <string name="disabled_by_policy_content_biometric_parental_consent">Hand the phone to your parent to start setting this up</string>
<!-- Shown when the user tries to change phone settings that are blocked by their IT admin [CHAR LIMIT=200] -->
<string name="default_admin_support_msg">If you have questions, contact your IT admin</string>
<!-- Shown in dialog to allow user to see more information about the device admin [CHAR LIMIT=30] -->
diff --git a/src/com/android/settings/biometrics/ParentalControlsUtils.java b/src/com/android/settings/biometrics/ParentalControlsUtils.java
index 2d3673b..0959184 100644
--- a/src/com/android/settings/biometrics/ParentalControlsUtils.java
+++ b/src/com/android/settings/biometrics/ParentalControlsUtils.java
@@ -22,6 +22,7 @@
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.ParentalControlsUtilsInternal;
import android.os.UserHandle;
+import android.os.UserManager;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -49,7 +50,8 @@
final UserHandle userHandle = new UserHandle(UserHandle.myUserId());
if (ParentalControlsUtilsInternal.isTestModeEnabled(context)) {
Log.d(TAG, "Requiring consent for test flow");
- return new RestrictedLockUtils.EnforcedAdmin(null /* ComponentName */, userHandle);
+ return new RestrictedLockUtils.EnforcedAdmin(null /* ComponentName */,
+ UserManager.DISALLOW_BIOMETRIC, userHandle);
}
final DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
@@ -69,7 +71,8 @@
userHandle)) {
final ComponentName cn =
ParentalControlsUtilsInternal.getSupervisionComponentName(dpm, userHandle);
- return new RestrictedLockUtils.EnforcedAdmin(cn, userHandle);
+ return new RestrictedLockUtils.EnforcedAdmin(cn, UserManager.DISALLOW_BIOMETRIC,
+ userHandle);
} else {
return null;
}
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
index 717c5bc..ce7ad24 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
@@ -37,7 +37,7 @@
final RestrictedLockUtils.EnforcedAdmin enforcedAdmin =
getAdminDetailsFromIntent(getIntent());
final String restriction = getRestrictionFromIntent(getIntent());
- mDialogHelper = new ActionDisabledByAdminDialogHelper(this);
+ mDialogHelper = new ActionDisabledByAdminDialogHelper(this, restriction);
mDialogHelper.prepareDialogBuilder(restriction, enforcedAdmin)
.setOnDismissListener(this)
.show();
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
index 5da0767..e30f890 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
@@ -56,11 +56,16 @@
private final Activity mActivity;
public ActionDisabledByAdminDialogHelper(Activity activity) {
+ this(activity, null /* restriction */);
+ }
+
+ public ActionDisabledByAdminDialogHelper(Activity activity, String restriction) {
mActivity = activity;
mDialogView = (ViewGroup) LayoutInflater.from(mActivity).inflate(
R.layout.admin_support_details_dialog, null);
mActionDisabledByAdminController = ActionDisabledByAdminControllerFactory
- .createInstance(mActivity, new DeviceAdminStringProviderImpl(mActivity));
+ .createInstance(mActivity, restriction,
+ new DeviceAdminStringProviderImpl(mActivity));
}
private @UserIdInt int getEnforcementAdminUserId(@NonNull EnforcedAdmin admin) {
@@ -74,7 +79,8 @@
public AlertDialog.Builder prepareDialogBuilder(String restriction,
EnforcedAdmin enforcedAdmin) {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity)
- .setPositiveButton(R.string.okay, null)
+ .setPositiveButton(R.string.okay,
+ mActionDisabledByAdminController.getPositiveButtonListener())
.setView(mDialogView);
prepareDialogBuilder(builder, restriction, enforcedAdmin);
return builder;
diff --git a/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java b/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
index 68b2021..5d11d4a 100644
--- a/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
+++ b/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
@@ -79,4 +79,14 @@
public String getDisabledByPolicyTitleForFinancedDevice() {
return mContext.getString(R.string.disabled_by_policy_title_financed_device);
}
+
+ @Override
+ public String getDisabledBiometricsParentConsentTitle() {
+ return mContext.getString(R.string.disabled_by_policy_title_biometric_parental_consent);
+ }
+
+ @Override
+ public String getDisabledBiometricsParentConsentContent() {
+ return mContext.getString(R.string.disabled_by_policy_content_biometric_parental_consent);
+ }
}
diff --git a/tests/unit/src/com/android/settings/biometrics/ParentalControlsUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/ParentalControlsUtilsTest.java
index a820d65..5128af0 100644
--- a/tests/unit/src/com/android/settings/biometrics/ParentalControlsUtilsTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/ParentalControlsUtilsTest.java
@@ -35,6 +35,7 @@
import android.hardware.biometrics.BiometricAuthenticator;
import android.os.UserHandle;
+import android.os.UserManager;
import androidx.annotation.Nullable;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -92,6 +93,7 @@
mSupervisionComponentName, tests[i][0] /* modality */,
tests[i][1] /* keyguardDisableFlags */);
assertNotNull(admin);
+ assertEquals(UserManager.DISALLOW_BIOMETRIC, admin.enforcedRestriction);
assertEquals(mSupervisionComponentName, admin.component);
}
}