Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a212898 authored by Hai Zhang's avatar Hai Zhang
Browse files

Add intent action and extra for managing a single default app.

This change adds Intent.ACTION_MANAGE_DEFAULT_APP and
Intent.EXTRA_ROLE_NAME for managing a single default app, which will
be launched from Settings' App info page. The new
Intent.EXTRA_ROLE_NAME also replaces RoleManager.REQUEST_ROLE_NAME.

Bug: 110557011
Test: build
Change-Id: Ice81150b0e960d050d24d963ade04254852a4ee4
parent 40335c1b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1045,7 +1045,6 @@ package android.app.role {
    method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
    method public boolean removeRoleHolderFromController(java.lang.String, java.lang.String);
    method public void setRoleNamesFromController(java.util.List<java.lang.String>);
    field public static final java.lang.String EXTRA_REQUEST_ROLE_NAME = "android.app.role.extra.REQUEST_ROLE_NAME";
  }
  public abstract interface RoleManagerCallback {
@@ -1252,6 +1251,7 @@ package android.content {
    field public static final java.lang.String ACTION_INSTANT_APP_RESOLVER_SETTINGS = "android.intent.action.INSTANT_APP_RESOLVER_SETTINGS";
    field public static final java.lang.String ACTION_INTENT_FILTER_NEEDS_VERIFICATION = "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION";
    field public static final java.lang.String ACTION_MANAGE_APP_PERMISSIONS = "android.intent.action.MANAGE_APP_PERMISSIONS";
    field public static final java.lang.String ACTION_MANAGE_DEFAULT_APP = "android.intent.action.MANAGE_DEFAULT_APP";
    field public static final java.lang.String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
    field public static final java.lang.String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
    field public static final java.lang.String ACTION_MANAGE_SPECIAL_APP_ACCESSES = "android.intent.action.MANAGE_SPECIAL_APP_ACCESSES";
@@ -1286,6 +1286,7 @@ package android.content {
    field public static final java.lang.String EXTRA_REASON = "android.intent.extra.REASON";
    field public static final java.lang.String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
    field public static final java.lang.String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
    field public static final java.lang.String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
    field public static final java.lang.String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
    field public static final java.lang.String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
    field public static final java.lang.String METADATA_SETUP_VERSION = "android.SETUP_VERSION";
+1 −11
Original line number Diff line number Diff line
@@ -157,16 +157,6 @@ public final class RoleManager {
     */
    public static final String ACTION_REQUEST_ROLE = "android.app.role.action.REQUEST_ROLE";

    /**
     * The name of the requested role.
     * <p>
     * <strong>Type:</strong> String
     *
     * @hide
     */
    @SystemApi
    public static final String EXTRA_REQUEST_ROLE_NAME = "android.app.role.extra.REQUEST_ROLE_NAME";

    /**
     * The permission required to manage records of role holders in {@link RoleManager} directly.
     *
@@ -215,7 +205,7 @@ public final class RoleManager {
        Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty");
        Intent intent = new Intent(ACTION_REQUEST_ROLE);
        intent.setPackage(mContext.getPackageManager().getPermissionControllerPackageName());
        intent.putExtra(EXTRA_REQUEST_ROLE_NAME, roleName);
        intent.putExtra(Intent.EXTRA_ROLE_NAME, roleName);
        return intent;
    }

+31 −0
Original line number Diff line number Diff line
@@ -1832,6 +1832,37 @@ public class Intent implements Parcelable, Cloneable {
    public static final String ACTION_REVIEW_PERMISSIONS =
            "android.intent.action.REVIEW_PERMISSIONS";

    /**
     * Activity action: Launch UI to manage a default app.
     * <p>
     * Input: {@link #EXTRA_ROLE_NAME} specifies the role of the default app which will be managed
     * by the launched UI.
     * </p>
     * <p>
     * Output: Nothing.
     * </p>
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS)
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    @SystemApi
    public static final String ACTION_MANAGE_DEFAULT_APP =
            "android.intent.action.MANAGE_DEFAULT_APP";

    /**
     * Intent extra: A role name.
     * <p>
     * Type: String
     * </p>
     *
     * @see android.app.role.RoleManager
     *
     * @hide
     */
    @SystemApi
    public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";

    /**
     * Activity action: Launch UI to manage special app accesses.
     * <p>