Loading api/system-current.txt +7 −6 Original line number Diff line number Diff line Loading @@ -1072,16 +1072,17 @@ package android.app.role { public final class RoleManager { method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>); field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1 field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; } Loading Loading @@ -6037,11 +6038,11 @@ package android.rolecontrollerservice { public abstract class RoleControllerService extends android.app.Service { ctor public RoleControllerService(); method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); method public abstract void onClearRoleHolders(@NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onClearRoleHolders(@NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method public abstract void onGrantDefaultRoles(@NonNull android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method public abstract void onSmsKillSwitchToggled(boolean); field public static final String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService"; } Loading api/test-current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -429,11 +429,11 @@ package android.app.prediction { package android.app.role { public final class RoleManager { method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHolders(@NonNull String); method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; } Loading core/java/android/app/role/IRoleManager.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -32,13 +32,14 @@ interface IRoleManager { List<String> getRoleHoldersAsUser(in String roleName, int userId); void addRoleHolderAsUser(in String roleName, in String packageName, int userId, void addRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId, in IRoleManagerCallback callback); void removeRoleHolderAsUser(in String roleName, in String packageName, int userId, void removeRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int flags, int userId, in IRoleManagerCallback callback); void addOnRoleHoldersChangedListenerAsUser(IOnRoleHoldersChangedListener listener, int userId); Loading core/java/android/app/role/RoleManager.java +39 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app.role; import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; Loading Loading @@ -180,6 +181,22 @@ public final class RoleManager { @TestApi public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; /** * @hide */ @IntDef(flag = true, value = { MANAGE_HOLDERS_FLAG_DONT_KILL_APP }) public @interface ManageHoldersFlags {} /** * Flag parameter for {@link #addRoleHolderAsUser}, {@link #removeRoleHolderAsUser} and * {@link #clearRoleHoldersAsUser} to indicate that apps should not be killed when changing * their role holder status. * * @hide */ @SystemApi public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; /** * The action used to request user approval of a role for an application. * Loading Loading @@ -305,9 +322,9 @@ public final class RoleManager { * * @return a list of package names of the role holders, or an empty list if none. * * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading Loading @@ -335,13 +352,14 @@ public final class RoleManager { * * @param roleName the name of the role to add the role holder for * @param packageName the package name of the application to add to the role holders * @param flags optional behavior flags * @param user the user to add the role holder for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading @@ -349,15 +367,15 @@ public final class RoleManager { @SystemApi @TestApi public void addRoleHolderAsUser(@NonNull String roleName, @NonNull String packageName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.addRoleHolderAsUser(roleName, packageName, user.getIdentifier(), mService.addRoleHolderAsUser(roleName, packageName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading @@ -373,13 +391,14 @@ public final class RoleManager { * * @param roleName the name of the role to remove the role holder for * @param packageName the package name of the application to remove from the role holders * @param flags optional behavior flags * @param user the user to remove the role holder for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading @@ -387,15 +406,15 @@ public final class RoleManager { @SystemApi @TestApi public void removeRoleHolderAsUser(@NonNull String roleName, @NonNull String packageName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.removeRoleHolderAsUser(roleName, packageName, user.getIdentifier(), mService.removeRoleHolderAsUser(roleName, packageName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading @@ -410,27 +429,29 @@ public final class RoleManager { * {@code android.permission.INTERACT_ACROSS_USERS_FULL}. * * @param roleName the name of the role to remove role holders for * @param flags optional behavior flags * @param user the user to remove role holders for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi @TestApi public void clearRoleHoldersAsUser(@NonNull String roleName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { public void clearRoleHoldersAsUser(@NonNull String roleName, @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.clearRoleHoldersAsUser(roleName, user.getIdentifier(), mService.clearRoleHoldersAsUser(roleName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading core/java/android/rolecontrollerservice/IRoleControllerService.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -23,13 +23,13 @@ import android.app.role.IRoleManagerCallback; */ oneway interface IRoleControllerService { void onAddRoleHolder(in String roleName, in String packageName, void onAddRoleHolder(in String roleName, in String packageName, int flags, in IRoleManagerCallback callback); void onRemoveRoleHolder(in String roleName, in String packageName, void onRemoveRoleHolder(in String roleName, in String packageName, int flags, in IRoleManagerCallback callback); void onClearRoleHolders(in String roleName, in IRoleManagerCallback callback); void onClearRoleHolders(in String roleName, int flags, in IRoleManagerCallback callback); void onGrantDefaultRoles(in IRoleManagerCallback callback); Loading Loading
api/system-current.txt +7 −6 Original line number Diff line number Diff line Loading @@ -1072,16 +1072,17 @@ package android.app.role { public final class RoleManager { method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String); method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>); field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1 field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; } Loading Loading @@ -6037,11 +6038,11 @@ package android.rolecontrollerservice { public abstract class RoleControllerService extends android.app.Service { ctor public RoleControllerService(); method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); method public abstract void onClearRoleHolders(@NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onClearRoleHolders(@NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method public abstract void onGrantDefaultRoles(@NonNull android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback); method public abstract void onSmsKillSwitchToggled(boolean); field public static final String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService"; } Loading
api/test-current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -429,11 +429,11 @@ package android.app.prediction { package android.app.role { public final class RoleManager { method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHolders(@NonNull String); method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback); field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; } Loading
core/java/android/app/role/IRoleManager.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -32,13 +32,14 @@ interface IRoleManager { List<String> getRoleHoldersAsUser(in String roleName, int userId); void addRoleHolderAsUser(in String roleName, in String packageName, int userId, void addRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId, in IRoleManagerCallback callback); void removeRoleHolderAsUser(in String roleName, in String packageName, int userId, void removeRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int flags, int userId, in IRoleManagerCallback callback); void addOnRoleHoldersChangedListenerAsUser(IOnRoleHoldersChangedListener listener, int userId); Loading
core/java/android/app/role/RoleManager.java +39 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app.role; import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; Loading Loading @@ -180,6 +181,22 @@ public final class RoleManager { @TestApi public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; /** * @hide */ @IntDef(flag = true, value = { MANAGE_HOLDERS_FLAG_DONT_KILL_APP }) public @interface ManageHoldersFlags {} /** * Flag parameter for {@link #addRoleHolderAsUser}, {@link #removeRoleHolderAsUser} and * {@link #clearRoleHoldersAsUser} to indicate that apps should not be killed when changing * their role holder status. * * @hide */ @SystemApi public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; /** * The action used to request user approval of a role for an application. * Loading Loading @@ -305,9 +322,9 @@ public final class RoleManager { * * @return a list of package names of the role holders, or an empty list if none. * * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading Loading @@ -335,13 +352,14 @@ public final class RoleManager { * * @param roleName the name of the role to add the role holder for * @param packageName the package name of the application to add to the role holders * @param flags optional behavior flags * @param user the user to add the role holder for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading @@ -349,15 +367,15 @@ public final class RoleManager { @SystemApi @TestApi public void addRoleHolderAsUser(@NonNull String roleName, @NonNull String packageName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.addRoleHolderAsUser(roleName, packageName, user.getIdentifier(), mService.addRoleHolderAsUser(roleName, packageName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading @@ -373,13 +391,14 @@ public final class RoleManager { * * @param roleName the name of the role to remove the role holder for * @param packageName the package name of the application to remove from the role holders * @param flags optional behavior flags * @param user the user to remove the role holder for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #clearRoleHoldersAsUser(String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ Loading @@ -387,15 +406,15 @@ public final class RoleManager { @SystemApi @TestApi public void removeRoleHolderAsUser(@NonNull String roleName, @NonNull String packageName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.removeRoleHolderAsUser(roleName, packageName, user.getIdentifier(), mService.removeRoleHolderAsUser(roleName, packageName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading @@ -410,27 +429,29 @@ public final class RoleManager { * {@code android.permission.INTERACT_ACROSS_USERS_FULL}. * * @param roleName the name of the role to remove role holders for * @param flags optional behavior flags * @param user the user to remove role holders for * @param executor the {@code Executor} to run the callback on. * @param callback the callback for whether this call is successful * * @see #getRoleHoldersAsUser(String, UserHandle) * @see #addRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, UserHandle, Executor, RoleManagerCallback) * @see #addRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * @see #removeRoleHolderAsUser(String, String, int, UserHandle, Executor, RoleManagerCallback) * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi @TestApi public void clearRoleHoldersAsUser(@NonNull String roleName, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { public void clearRoleHoldersAsUser(@NonNull String roleName, @ManageHoldersFlags int flags, @NonNull UserHandle user, @CallbackExecutor @NonNull Executor executor, @NonNull RoleManagerCallback callback) { Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkNotNull(user, "user cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Preconditions.checkNotNull(callback, "callback cannot be null"); try { mService.clearRoleHoldersAsUser(roleName, user.getIdentifier(), mService.clearRoleHoldersAsUser(roleName, flags, user.getIdentifier(), new RoleManagerCallbackDelegate(executor, callback)); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading
core/java/android/rolecontrollerservice/IRoleControllerService.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -23,13 +23,13 @@ import android.app.role.IRoleManagerCallback; */ oneway interface IRoleControllerService { void onAddRoleHolder(in String roleName, in String packageName, void onAddRoleHolder(in String roleName, in String packageName, int flags, in IRoleManagerCallback callback); void onRemoveRoleHolder(in String roleName, in String packageName, void onRemoveRoleHolder(in String roleName, in String packageName, int flags, in IRoleManagerCallback callback); void onClearRoleHolders(in String roleName, in IRoleManagerCallback callback); void onClearRoleHolders(in String roleName, int flags, in IRoleManagerCallback callback); void onGrantDefaultRoles(in IRoleManagerCallback callback); Loading