Merge "Declare ACTION_MANAGE_SUPERVISOR_RESTRICTED_SETTING intent as an API."

This commit is contained in:
Joe Bolinger
2021-12-01 18:46:17 +00:00
committed by Android (Google) Code Review
4 changed files with 63 additions and 17 deletions

View File

@@ -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 {

View File

@@ -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.

View File

@@ -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);
};

View File

@@ -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());
}
}