summaryrefslogtreecommitdiff
path: root/framework-s/java
diff options
context:
space:
mode:
Diffstat (limited to 'framework-s/java')
-rw-r--r--framework-s/java/android/app/role/RoleManager.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/framework-s/java/android/app/role/RoleManager.java b/framework-s/java/android/app/role/RoleManager.java
index 231c72c2c..aeb229cae 100644
--- a/framework-s/java/android/app/role/RoleManager.java
+++ b/framework-s/java/android/app/role/RoleManager.java
@@ -1023,11 +1023,20 @@ public final class RoleManager {
@NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) {
if (SdkLevel.isAtLeastV() && Flags.roleControllerInSystemServer()) {
int userId = getContextUserIfAppropriate().getIdentifier();
+ boolean visible;
try {
- mService.isApplicationVisibleForRoleAsUser(roleName, packageName, userId);
+ visible = mService.isApplicationVisibleForRoleAsUser(roleName, packageName, userId);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
+ executor.execute(() -> {
+ final long token = Binder.clearCallingIdentity();
+ try {
+ callback.accept(visible);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ });
} else {
getRoleControllerManager().isApplicationVisibleForRole(roleName, packageName, executor,
callback);