Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -853,6 +853,7 @@ package android.app.role { method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public boolean addRoleHolderFromController(java.lang.String, java.lang.String); method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public java.util.List<java.lang.String> getHeldRolesFromController(java.lang.String); method public java.util.List<java.lang.String> getRoleHolders(java.lang.String); method public java.util.List<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle); method public void removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle); Loading core/java/android/app/role/IRoleManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -48,4 +48,6 @@ interface IRoleManager { boolean addRoleHolderFromController(in String roleName, in String packageName); boolean removeRoleHolderFromController(in String roleName, in String packageName); List<String> getHeldRolesFromController(in String packageName); } core/java/android/app/role/RoleManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,27 @@ public final class RoleManager { } } /** * Returns the list of all roles that the given package is currently holding * * @param packageName the package name * @return the list of role names * * @hide */ @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi @NonNull public List<String> getHeldRolesFromController(@NonNull String packageName) { Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); try { return mService.getHeldRolesFromController(packageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } private static class RoleManagerCallbackDelegate extends IRoleManagerCallback.Stub { @NonNull Loading services/core/java/com/android/server/role/RoleManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -503,6 +503,18 @@ public class RoleManagerService extends SystemService implements RoleUserState.C return userState.removeRoleHolder(roleName, packageName); } @Override public List<String> getHeldRolesFromController(@NonNull String packageName) { Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); getContext().enforceCallingOrSelfPermission( RoleManager.PERMISSION_MANAGE_ROLES_FROM_CONTROLLER, "getRolesHeldFromController"); int userId = UserHandle.getCallingUserId(); RoleUserState userState = getOrCreateUserState(userId); return userState.getHeldRoles(packageName); } @CheckResult private int handleIncomingUser(@UserIdInt int userId, @NonNull String name) { return ActivityManager.handleIncomingUser(getCallingPid(), getCallingUid(), userId, Loading services/core/java/com/android/server/role/RoleManagerShellCommand.java +3 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.app.role.IRoleManagerCallback; import android.os.RemoteException; import android.os.ShellCommand; import android.os.UserHandle; import android.util.Log; import java.io.PrintWriter; import java.util.concurrent.CompletableFuture; Loading @@ -47,7 +48,8 @@ class RoleManagerShellCommand extends ShellCommand { mResult.get(5, TimeUnit.SECONDS); return 0; } catch (Exception e) { getErrPrintWriter().println("Error: " + e.toString()); getErrPrintWriter().println("Error: see logcat for details.\n" + Log.getStackTraceString(e)); return -1; } } Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -853,6 +853,7 @@ package android.app.role { method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public boolean addRoleHolderFromController(java.lang.String, java.lang.String); method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public java.util.List<java.lang.String> getHeldRolesFromController(java.lang.String); method public java.util.List<java.lang.String> getRoleHolders(java.lang.String); method public java.util.List<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle); method public void removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle); Loading
core/java/android/app/role/IRoleManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -48,4 +48,6 @@ interface IRoleManager { boolean addRoleHolderFromController(in String roleName, in String packageName); boolean removeRoleHolderFromController(in String roleName, in String packageName); List<String> getHeldRolesFromController(in String packageName); }
core/java/android/app/role/RoleManager.java +21 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,27 @@ public final class RoleManager { } } /** * Returns the list of all roles that the given package is currently holding * * @param packageName the package name * @return the list of role names * * @hide */ @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi @NonNull public List<String> getHeldRolesFromController(@NonNull String packageName) { Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); try { return mService.getHeldRolesFromController(packageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } private static class RoleManagerCallbackDelegate extends IRoleManagerCallback.Stub { @NonNull Loading
services/core/java/com/android/server/role/RoleManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -503,6 +503,18 @@ public class RoleManagerService extends SystemService implements RoleUserState.C return userState.removeRoleHolder(roleName, packageName); } @Override public List<String> getHeldRolesFromController(@NonNull String packageName) { Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty"); getContext().enforceCallingOrSelfPermission( RoleManager.PERMISSION_MANAGE_ROLES_FROM_CONTROLLER, "getRolesHeldFromController"); int userId = UserHandle.getCallingUserId(); RoleUserState userState = getOrCreateUserState(userId); return userState.getHeldRoles(packageName); } @CheckResult private int handleIncomingUser(@UserIdInt int userId, @NonNull String name) { return ActivityManager.handleIncomingUser(getCallingPid(), getCallingUid(), userId, Loading
services/core/java/com/android/server/role/RoleManagerShellCommand.java +3 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.app.role.IRoleManagerCallback; import android.os.RemoteException; import android.os.ShellCommand; import android.os.UserHandle; import android.util.Log; import java.io.PrintWriter; import java.util.concurrent.CompletableFuture; Loading @@ -47,7 +48,8 @@ class RoleManagerShellCommand extends ShellCommand { mResult.get(5, TimeUnit.SECONDS); return 0; } catch (Exception e) { getErrPrintWriter().println("Error: " + e.toString()); getErrPrintWriter().println("Error: see logcat for details.\n" + Log.getStackTraceString(e)); return -1; } } Loading