diff --git a/core/api/current.txt b/core/api/current.txt index 5656c31c330af..2d140f46cda16 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -35429,6 +35429,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"; @@ -35497,10 +35498,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 dfc4fa7238c70..2ff550eeaac4f 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; @@ -2051,8 +2052,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. + *
+ * Type: String with a value from the SupervisorVerificationSetting annotation below. + *
+ * Input: {@link #EXTRA_SUPERVISOR_RESTRICTED_SETTING_KEY} specifies what setting to open. + *
+ *+ * Output: Nothing. + *
+ */ + @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 2c0162f608ac2..6e93494bf40e0 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 c41f4db6f6d11..8ec577e8a764a 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