Loading api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1150,7 +1150,8 @@ package android.app.role { method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); method @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int); method @WorkerThread public abstract boolean onGrantDefaultRoles(); method public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String); method @Deprecated public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String); method public boolean onIsApplicationVisibleForRole(@NonNull String, @NonNull String); method public abstract boolean onIsRoleVisible(@NonNull String); method @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull String, int); field public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService"; Loading core/java/android/app/role/IRoleController.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -36,5 +36,8 @@ oneway interface IRoleController { void isApplicationQualifiedForRole(in String roleName, in String packageName, in RemoteCallback callback); void isApplicationVisibleForRole(in String roleName, in String packageName, in RemoteCallback callback); void isRoleVisible(in String roleName, in RemoteCallback callback); } core/java/android/app/role/RoleControllerManager.java +18 −0 Original line number Diff line number Diff line Loading @@ -183,6 +183,9 @@ public class RoleControllerManager { /** * @see RoleControllerService#onIsApplicationQualifiedForRole(String, String) * * @deprecated Use {@link #isApplicationVisibleForRole(String, String, Executor, Consumer)} * instead. */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationQualifiedForRole(@NonNull String roleName, @NonNull String packageName, Loading @@ -196,6 +199,21 @@ public class RoleControllerManager { propagateCallback(operation, "isApplicationQualifiedForRole", executor, callback); } /** * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> future = new AndroidFuture<>(); service.isApplicationVisibleForRole(roleName, packageName, new RemoteCallback(future::complete)); return future; }); propagateCallback(operation, "isApplicationVisibleForRole", executor, callback); } /** * @see RoleControllerService#onIsRoleVisible(String) */ Loading core/java/android/app/role/RoleControllerService.java +29 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,20 @@ public abstract class RoleControllerService extends Service { callback.sendResult(qualified ? Bundle.EMPTY : null); } @Override public void isApplicationVisibleForRole(String roleName, String packageName, RemoteCallback callback) { enforceCallingPermission(Manifest.permission.MANAGE_ROLE_HOLDERS, null); Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(callback, "callback cannot be null"); boolean visible = onIsApplicationVisibleForRole(roleName, packageName); callback.sendResult(visible ? Bundle.EMPTY : null); } @Override public void isRoleVisible(String roleName, RemoteCallback callback) { enforceCallingPermission(Manifest.permission.MANAGE_ROLE_HOLDERS, null); Loading Loading @@ -256,10 +270,25 @@ public abstract class RoleControllerService extends Service { * @param packageName package name of the application to check for * * @return whether the application is qualified for the role * * @deprecated Implement {@link #onIsApplicationVisibleForRole(String, String)} instead. */ public abstract boolean onIsApplicationQualifiedForRole(@NonNull String roleName, @NonNull String packageName); /** * Check whether an application is visible for a role. * * @param roleName name of the role to check for * @param packageName package name of the application to check for * * @return whether the application is visible for the role */ public boolean onIsApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName) { return onIsApplicationQualifiedForRole(roleName, packageName); } /** * Check whether a role should be visible to user. * Loading Loading
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1150,7 +1150,8 @@ package android.app.role { method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); method @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int); method @WorkerThread public abstract boolean onGrantDefaultRoles(); method public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String); method @Deprecated public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String); method public boolean onIsApplicationVisibleForRole(@NonNull String, @NonNull String); method public abstract boolean onIsRoleVisible(@NonNull String); method @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull String, int); field public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService"; Loading
core/java/android/app/role/IRoleController.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -36,5 +36,8 @@ oneway interface IRoleController { void isApplicationQualifiedForRole(in String roleName, in String packageName, in RemoteCallback callback); void isApplicationVisibleForRole(in String roleName, in String packageName, in RemoteCallback callback); void isRoleVisible(in String roleName, in RemoteCallback callback); }
core/java/android/app/role/RoleControllerManager.java +18 −0 Original line number Diff line number Diff line Loading @@ -183,6 +183,9 @@ public class RoleControllerManager { /** * @see RoleControllerService#onIsApplicationQualifiedForRole(String, String) * * @deprecated Use {@link #isApplicationVisibleForRole(String, String, Executor, Consumer)} * instead. */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationQualifiedForRole(@NonNull String roleName, @NonNull String packageName, Loading @@ -196,6 +199,21 @@ public class RoleControllerManager { propagateCallback(operation, "isApplicationQualifiedForRole", executor, callback); } /** * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> future = new AndroidFuture<>(); service.isApplicationVisibleForRole(roleName, packageName, new RemoteCallback(future::complete)); return future; }); propagateCallback(operation, "isApplicationVisibleForRole", executor, callback); } /** * @see RoleControllerService#onIsRoleVisible(String) */ Loading
core/java/android/app/role/RoleControllerService.java +29 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,20 @@ public abstract class RoleControllerService extends Service { callback.sendResult(qualified ? Bundle.EMPTY : null); } @Override public void isApplicationVisibleForRole(String roleName, String packageName, RemoteCallback callback) { enforceCallingPermission(Manifest.permission.MANAGE_ROLE_HOLDERS, null); Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty"); Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); Preconditions.checkNotNull(callback, "callback cannot be null"); boolean visible = onIsApplicationVisibleForRole(roleName, packageName); callback.sendResult(visible ? Bundle.EMPTY : null); } @Override public void isRoleVisible(String roleName, RemoteCallback callback) { enforceCallingPermission(Manifest.permission.MANAGE_ROLE_HOLDERS, null); Loading Loading @@ -256,10 +270,25 @@ public abstract class RoleControllerService extends Service { * @param packageName package name of the application to check for * * @return whether the application is qualified for the role * * @deprecated Implement {@link #onIsApplicationVisibleForRole(String, String)} instead. */ public abstract boolean onIsApplicationQualifiedForRole(@NonNull String roleName, @NonNull String packageName); /** * Check whether an application is visible for a role. * * @param roleName name of the role to check for * @param packageName package name of the application to check for * * @return whether the application is visible for the role */ public boolean onIsApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName) { return onIsApplicationQualifiedForRole(roleName, packageName); } /** * Check whether a role should be visible to user. * Loading