diff options
author | 2021-12-01 18:46:17 +0000 | |
---|---|---|
committer | 2021-12-01 18:46:17 +0000 | |
commit | ef6564cbfb4e51f1be41212b55b333d31024a9ee (patch) | |
tree | 1c3d05c2a8316ce67636ab94521c15c3457e9c19 | |
parent | 6551a4d513194ed101eae6e8cf5fb11df54ca998 (diff) | |
parent | 016c46dcc2921b914854896c60abb5a4deed611a (diff) |
Merge "Declare ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING intent as an API."
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()); } } |