summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joe Bolinger <jbolinger@google.com> 2021-12-01 18:46:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-12-01 18:46:17 +0000
commitef6564cbfb4e51f1be41212b55b333d31024a9ee (patch)
tree1c3d05c2a8316ce67636ab94521c15c3457e9c19
parent6551a4d513194ed101eae6e8cf5fb11df54ca998 (diff)
parent016c46dcc2921b914854896c60abb5a4deed611a (diff)
Merge "Declare ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING intent as an API."
-rw-r--r--core/api/current.txt4
-rw-r--r--core/java/android/provider/Settings.java53
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminController.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminControllerTest.java7
4 files changed, 63 insertions, 17 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index 3e9d7b340a4c..a53154eeaa49 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -35536,6 +35536,7 @@ package android.provider {
field public static final String ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION = "android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION";
field public static final String ACTION_MANAGE_DEFAULT_APPS_SETTINGS = "android.settings.MANAGE_DEFAULT_APPS_SETTINGS";
field public static final String ACTION_MANAGE_OVERLAY_PERMISSION = "android.settings.action.MANAGE_OVERLAY_PERMISSION";
+ field public static final String ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING = "android.settings.MANAGE_SUPERVISOR_RESTRICTED_SETTING";
field public static final String ACTION_MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES";
field public static final String ACTION_MANAGE_WRITE_SETTINGS = "android.settings.action.MANAGE_WRITE_SETTINGS";
field public static final String ACTION_MEMORY_CARD_SETTINGS = "android.settings.MEMORY_CARD_SETTINGS";
@@ -35604,10 +35605,13 @@ package android.provider {
field public static final String EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY = "android.provider.extra.SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY";
field public static final String EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI = "android.provider.extra.SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI";
field public static final String EXTRA_SUB_ID = "android.provider.extra.SUB_ID";
+ field public static final String EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY = "android.provider.extra.SUPERVISOR_RESTRICTED_SETTING_KEY";
field public static final String EXTRA_WIFI_NETWORK_LIST = "android.provider.extra.WIFI_NETWORK_LIST";
field public static final String EXTRA_WIFI_NETWORK_RESULT_LIST = "android.provider.extra.WIFI_NETWORK_RESULT_LIST";
field public static final String INTENT_CATEGORY_USAGE_ACCESS_CONFIG = "android.intent.category.USAGE_ACCESS_CONFIG";
field public static final String METADATA_USAGE_ACCESS_REASON = "android.settings.metadata.USAGE_ACCESS_REASON";
+ field public static final String SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS = "supervisor_restricted_biometrics_controller";
+ field public static final String SUPERVISOR_VERIFICATION_SETTING_UNKNOWN = "";
}
public static final class Settings.Global extends android.provider.Settings.NameValueTable {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 7979256acc67..e267db40551e 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -24,6 +24,7 @@ import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.StringDef;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
@@ -2077,8 +2078,56 @@ public final class Settings {
// Intent#EXTRA_USER_ID can also be used
@SystemApi
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
- public static final String ACTION_SHOW_ADMIN_SUPPORT_DETAILS
- = "android.settings.SHOW_ADMIN_SUPPORT_DETAILS";
+ public static final String ACTION_SHOW_ADMIN_SUPPORT_DETAILS =
+ "android.settings.SHOW_ADMIN_SUPPORT_DETAILS";
+
+ /**
+ * Intent extra: The id of a setting restricted by supervisors.
+ * <p>
+ * Type: String with a value from the SupervisorVerificationSetting annotation below.
+ * <ul>
+ * <li>{@link #SUPERVISOR_VERIFICATION_SETTING_UNKNOWN}
+ * <li>{@link #SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS}
+ * </ul>
+ * </p>
+ */
+ public static final String EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY =
+ "android.provider.extra.SUPERVISOR_RESTRICTED_SETTING_KEY";
+
+ /**
+ * Unknown setting.
+ */
+ public static final String SUPERVISOR_VERIFICATION_SETTING_UNKNOWN = "";
+
+ /**
+ * Biometric settings for supervisors.
+ */
+ public static final String SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS =
+ "supervisor_restricted_biometrics_controller";
+
+ /**
+ * Keys for {@link #EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY}.
+ * @hide
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @StringDef(prefix = { "SUPERVISOR_VERIFICATION_SETTING_" }, value = {
+ SUPERVISOR_VERIFICATION_SETTING_UNKNOWN,
+ SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS,
+ })
+ public @interface SupervisorVerificationSetting {}
+
+ /**
+ * Activity action: Launch UI to manage a setting restricted by supervisors.
+ * <p>
+ * Input: {@link #EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY} specifies what setting to open.
+ * </p>
+ * <p>
+ * Output: Nothing.
+ * </p>
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING =
+ "android.settings.MANAGE_SUPERVISOR_RESTRICTED_SETTING";
/**
* Activity Action: Show a dialog for remote bugreport flow.
diff --git a/packages/SettingsLib/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminController.java b/packages/SettingsLib/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminController.java
index 2c0162f608ac..6e93494bf40e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminController.java
@@ -20,10 +20,10 @@ import android.annotation.NonNull;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.provider.Settings;
import android.util.Log;
import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
import com.android.settingslib.RestrictedLockUtils;
@@ -31,15 +31,6 @@ public class BiometricActionDisabledByAdminController extends BaseActionDisabled
private static final String TAG = "BiometricActionDisabledByAdminController";
- // These MUST not change, as they are the stable API between here and device admin specified
- // by the component below.
- @VisibleForTesting
- static final String ACTION_LEARN_MORE = "android.intent.action.MANAGE_RESTRICTED_SETTING";
- @VisibleForTesting
- static final String EXTRA_SETTING_KEY = "extra_setting";
- @VisibleForTesting
- static final String EXTRA_SETTING_VALUE = "biometric_disabled_by_admin_controller";
-
BiometricActionDisabledByAdminController(
DeviceAdminStringProvider stringProvider) {
super(stringProvider);
@@ -66,8 +57,9 @@ public class BiometricActionDisabledByAdminController extends BaseActionDisabled
@NonNull RestrictedLockUtils.EnforcedAdmin enforcedAdmin) {
return (dialog, which) -> {
Log.d(TAG, "Positive button clicked, component: " + enforcedAdmin.component);
- final Intent intent = new Intent(ACTION_LEARN_MORE)
- .putExtra(EXTRA_SETTING_KEY, EXTRA_SETTING_VALUE)
+ final Intent intent = new Intent(Settings.ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING)
+ .putExtra(Settings.EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY,
+ Settings.SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS)
.setPackage(enforcedAdmin.component.getPackageName());
context.startActivity(intent);
};
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminControllerTest.java
index c41f4db6f6d1..8ec577e8a764 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/enterprise/BiometricActionDisabledByAdminControllerTest.java
@@ -32,6 +32,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.UserHandle;
+import android.provider.Settings;
import com.android.settingslib.RestrictedLockUtils;
@@ -77,11 +78,11 @@ public class BiometricActionDisabledByAdminControllerTest {
ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mContext).startActivity(intentCaptor.capture());
- assertEquals(BiometricActionDisabledByAdminController.ACTION_LEARN_MORE,
+ assertEquals(Settings.ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING,
intentCaptor.getValue().getAction());
- assertEquals(BiometricActionDisabledByAdminController.EXTRA_SETTING_VALUE,
+ assertEquals(Settings.SUPERVISOR_VERIFICATION_SETTING_BIOMETRICS,
intentCaptor.getValue().getStringExtra(
- BiometricActionDisabledByAdminController.EXTRA_SETTING_KEY));
+ Settings.EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY));
assertSame(componentName, intentCaptor.getValue().getComponent());
}
}