Loading core/api/system-current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -1370,6 +1370,8 @@ package android.app.role { method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); 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> 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 @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.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); 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.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, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); 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 java.util.function.Consumer<java.lang.Boolean>); 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 boolean removeRoleHolderFromController(@NonNull String, @NonNull String); Loading core/api/test-current.txt +0 −5 Original line number Original line Diff line number Diff line Loading @@ -441,11 +441,6 @@ package android.app.prediction { package android.app.role { package android.app.role { public class RoleControllerManager { method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); } public final class RoleManager { public final class RoleManager { method @Nullable public String getSmsRoleHolder(int); method @Nullable public String getSmsRoleHolder(int); } } Loading core/java/android/app/SystemServiceRegistry.java +0 −9 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,6 @@ import android.app.contentsuggestions.ContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.prediction.AppPredictionManager; import android.app.prediction.AppPredictionManager; import android.app.role.RoleControllerManager; import android.app.role.RoleManager; import android.app.role.RoleManager; import android.app.search.SearchUiManager; import android.app.search.SearchUiManager; import android.app.slice.SliceManager; import android.app.slice.SliceManager; Loading Loading @@ -1291,14 +1290,6 @@ public final class SystemServiceRegistry { return new RoleManager(ctx.getOuterContext()); return new RoleManager(ctx.getOuterContext()); }}); }}); registerService(Context.ROLE_CONTROLLER_SERVICE, RoleControllerManager.class, new CachedServiceFetcher<RoleControllerManager>() { @Override public RoleControllerManager createService(ContextImpl ctx) throws ServiceNotFoundException { return new RoleControllerManager(ctx.getOuterContext()); }}); registerService(Context.DYNAMIC_SYSTEM_SERVICE, DynamicSystemManager.class, registerService(Context.DYNAMIC_SYSTEM_SERVICE, DynamicSystemManager.class, new CachedServiceFetcher<DynamicSystemManager>() { new CachedServiceFetcher<DynamicSystemManager>() { @Override @Override Loading core/java/android/app/role/RoleControllerManager.java +0 −26 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,6 @@ import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.RequiresPermission; import android.annotation.SystemService; import android.annotation.TestApi; import android.app.ActivityThread; import android.app.ActivityThread; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.Context; Loading @@ -48,8 +46,6 @@ import java.util.function.Consumer; * * * @hide * @hide */ */ @SystemService(Context.ROLE_CONTROLLER_SERVICE) @TestApi public class RoleControllerManager { public class RoleControllerManager { private static final String LOG_TAG = RoleControllerManager.class.getSimpleName(); private static final String LOG_TAG = RoleControllerManager.class.getSimpleName(); Loading Loading @@ -198,33 +194,12 @@ public class RoleControllerManager { propagateCallback(operation, "onClearRoleHolders", callback); propagateCallback(operation, "onClearRoleHolders", callback); } } /** * @see RoleControllerService#onIsApplicationQualifiedForRole(String, String) * * @deprecated Use {@link #isApplicationVisibleForRole(String, String, Executor, Consumer)} * instead. * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationQualifiedForRole(@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.isApplicationQualifiedForRole(roleName, packageName, new RemoteCallback(future::complete)); return future; }); propagateCallback(operation, "isApplicationQualifiedForRole", executor, callback); } /** /** * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) * * * @hide * @hide */ */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @TestApi public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { Loading @@ -242,7 +217,6 @@ public class RoleControllerManager { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @TestApi public void isRoleVisible(@NonNull String roleName, public void isRoleVisible(@NonNull String roleName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { Loading core/java/android/app/role/RoleManager.java +42 −0 Original line number Original line Diff line number Diff line Loading @@ -174,6 +174,9 @@ public final class RoleManager { @NonNull @NonNull private final Object mListenersLock = new Object(); private final Object mListenersLock = new Object(); @NonNull private final RoleControllerManager mRoleControllerManager; /** /** * @hide * @hide */ */ Loading @@ -181,6 +184,7 @@ public final class RoleManager { mContext = context; mContext = context; mService = IRoleManager.Stub.asInterface(ServiceManager.getServiceOrThrow( mService = IRoleManager.Stub.asInterface(ServiceManager.getServiceOrThrow( Context.ROLE_SERVICE)); Context.ROLE_SERVICE)); mRoleControllerManager = new RoleControllerManager(context); } } /** /** Loading Loading @@ -676,6 +680,44 @@ public final class RoleManager { } } } } /** * Check whether a role should be visible to user. * * @param roleName name of the role to check for * @param executor the executor to execute callback on * @param callback the callback to receive whether the role should be visible to user * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi public void isRoleVisible(@NonNull String roleName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { mRoleControllerManager.isRoleVisible(roleName, executor, callback); } /** * Check whether an application is visible for a role. * * While an application can be qualified for a role, it can still stay hidden from user (thus * not visible). If an application is visible for a role, we may show things related to the role * for it, e.g. showing an entry pointing to the role settings in its application info page. * * @param roleName the name of the role to check for * @param packageName the package name of the application to check for * @param executor the executor to execute callback on * @param callback the callback to receive whether the application is visible for the role * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { mRoleControllerManager.isApplicationVisibleForRole(roleName, packageName, executor, callback); } private static class OnRoleHoldersChangedListenerDelegate private static class OnRoleHoldersChangedListenerDelegate extends IOnRoleHoldersChangedListener.Stub { extends IOnRoleHoldersChangedListener.Stub { Loading Loading
core/api/system-current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -1370,6 +1370,8 @@ package android.app.role { method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); 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> 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 @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.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); 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.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, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); 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 java.util.function.Consumer<java.lang.Boolean>); 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 boolean removeRoleHolderFromController(@NonNull String, @NonNull String); Loading
core/api/test-current.txt +0 −5 Original line number Original line Diff line number Diff line Loading @@ -441,11 +441,6 @@ package android.app.prediction { package android.app.role { package android.app.role { public class RoleControllerManager { method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); } public final class RoleManager { public final class RoleManager { method @Nullable public String getSmsRoleHolder(int); method @Nullable public String getSmsRoleHolder(int); } } Loading
core/java/android/app/SystemServiceRegistry.java +0 −9 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,6 @@ import android.app.contentsuggestions.ContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.contentsuggestions.IContentSuggestionsManager; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.job.JobSchedulerFrameworkInitializer; import android.app.prediction.AppPredictionManager; import android.app.prediction.AppPredictionManager; import android.app.role.RoleControllerManager; import android.app.role.RoleManager; import android.app.role.RoleManager; import android.app.search.SearchUiManager; import android.app.search.SearchUiManager; import android.app.slice.SliceManager; import android.app.slice.SliceManager; Loading Loading @@ -1291,14 +1290,6 @@ public final class SystemServiceRegistry { return new RoleManager(ctx.getOuterContext()); return new RoleManager(ctx.getOuterContext()); }}); }}); registerService(Context.ROLE_CONTROLLER_SERVICE, RoleControllerManager.class, new CachedServiceFetcher<RoleControllerManager>() { @Override public RoleControllerManager createService(ContextImpl ctx) throws ServiceNotFoundException { return new RoleControllerManager(ctx.getOuterContext()); }}); registerService(Context.DYNAMIC_SYSTEM_SERVICE, DynamicSystemManager.class, registerService(Context.DYNAMIC_SYSTEM_SERVICE, DynamicSystemManager.class, new CachedServiceFetcher<DynamicSystemManager>() { new CachedServiceFetcher<DynamicSystemManager>() { @Override @Override Loading
core/java/android/app/role/RoleControllerManager.java +0 −26 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,6 @@ import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.RequiresPermission; import android.annotation.SystemService; import android.annotation.TestApi; import android.app.ActivityThread; import android.app.ActivityThread; import android.content.ComponentName; import android.content.ComponentName; import android.content.Context; import android.content.Context; Loading @@ -48,8 +46,6 @@ import java.util.function.Consumer; * * * @hide * @hide */ */ @SystemService(Context.ROLE_CONTROLLER_SERVICE) @TestApi public class RoleControllerManager { public class RoleControllerManager { private static final String LOG_TAG = RoleControllerManager.class.getSimpleName(); private static final String LOG_TAG = RoleControllerManager.class.getSimpleName(); Loading Loading @@ -198,33 +194,12 @@ public class RoleControllerManager { propagateCallback(operation, "onClearRoleHolders", callback); propagateCallback(operation, "onClearRoleHolders", callback); } } /** * @see RoleControllerService#onIsApplicationQualifiedForRole(String, String) * * @deprecated Use {@link #isApplicationVisibleForRole(String, String, Executor, Consumer)} * instead. * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationQualifiedForRole(@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.isApplicationQualifiedForRole(roleName, packageName, new RemoteCallback(future::complete)); return future; }); propagateCallback(operation, "isApplicationQualifiedForRole", executor, callback); } /** /** * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) * @see RoleControllerService#onIsApplicationVisibleForRole(String, String) * * * @hide * @hide */ */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @TestApi public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { Loading @@ -242,7 +217,6 @@ public class RoleControllerManager { * @hide * @hide */ */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @TestApi public void isRoleVisible(@NonNull String roleName, public void isRoleVisible(@NonNull String roleName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { AndroidFuture<Bundle> operation = mRemoteService.postAsync(service -> { Loading
core/java/android/app/role/RoleManager.java +42 −0 Original line number Original line Diff line number Diff line Loading @@ -174,6 +174,9 @@ public final class RoleManager { @NonNull @NonNull private final Object mListenersLock = new Object(); private final Object mListenersLock = new Object(); @NonNull private final RoleControllerManager mRoleControllerManager; /** /** * @hide * @hide */ */ Loading @@ -181,6 +184,7 @@ public final class RoleManager { mContext = context; mContext = context; mService = IRoleManager.Stub.asInterface(ServiceManager.getServiceOrThrow( mService = IRoleManager.Stub.asInterface(ServiceManager.getServiceOrThrow( Context.ROLE_SERVICE)); Context.ROLE_SERVICE)); mRoleControllerManager = new RoleControllerManager(context); } } /** /** Loading Loading @@ -676,6 +680,44 @@ public final class RoleManager { } } } } /** * Check whether a role should be visible to user. * * @param roleName name of the role to check for * @param executor the executor to execute callback on * @param callback the callback to receive whether the role should be visible to user * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi public void isRoleVisible(@NonNull String roleName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { mRoleControllerManager.isRoleVisible(roleName, executor, callback); } /** * Check whether an application is visible for a role. * * While an application can be qualified for a role, it can still stay hidden from user (thus * not visible). If an application is visible for a role, we may show things related to the role * for it, e.g. showing an entry pointing to the role settings in its application info page. * * @param roleName the name of the role to check for * @param packageName the package name of the application to check for * @param executor the executor to execute callback on * @param callback the callback to receive whether the application is visible for the role * * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) @SystemApi public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { mRoleControllerManager.isApplicationVisibleForRole(roleName, packageName, executor, callback); } private static class OnRoleHoldersChangedListenerDelegate private static class OnRoleHoldersChangedListenerDelegate extends IOnRoleHoldersChangedListener.Stub { extends IOnRoleHoldersChangedListener.Stub { Loading