Move role API into framework-permission-s.

Bug: 158736025
Test: m -j
Change-Id: I1a7b7a7f02ee966e3e125dc9642926cfb286642c
diff --git a/30/public/api/framework-permission-s.txt b/30/public/api/framework-permission-s.txt
index d802177..4ecc989 100644
--- a/30/public/api/framework-permission-s.txt
+++ b/30/public/api/framework-permission-s.txt
@@ -1 +1,19 @@
 // Signature format: 2.0
+package android.app.role {
+
+  public final class RoleManager {
+    method @NonNull public android.content.Intent createRequestRoleIntent(@NonNull String);
+    method public boolean isRoleAvailable(@NonNull String);
+    method public boolean isRoleHeld(@NonNull String);
+    field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT";
+    field public static final String ROLE_BROWSER = "android.app.role.BROWSER";
+    field public static final String ROLE_CALL_REDIRECTION = "android.app.role.CALL_REDIRECTION";
+    field public static final String ROLE_CALL_SCREENING = "android.app.role.CALL_SCREENING";
+    field public static final String ROLE_DIALER = "android.app.role.DIALER";
+    field public static final String ROLE_EMERGENCY = "android.app.role.EMERGENCY";
+    field public static final String ROLE_HOME = "android.app.role.HOME";
+    field public static final String ROLE_SMS = "android.app.role.SMS";
+  }
+
+}
+
diff --git a/30/system/api/framework-permission-s.txt b/30/system/api/framework-permission-s.txt
index d802177..4e32862 100644
--- a/30/system/api/framework-permission-s.txt
+++ b/30/system/api/framework-permission-s.txt
@@ -1 +1,37 @@
 // Signature format: 2.0
+package android.app.role {
+
+  public interface OnRoleHoldersChangedListener {
+    method public void onRoleHoldersChanged(@NonNull String, @NonNull android.os.UserHandle);
+  }
+
+  public abstract class RoleControllerService extends android.app.Service {
+    ctor public RoleControllerService();
+    method @WorkerThread public abstract boolean onAddRoleHolder(@NonNull String, @NonNull String, int);
+    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 @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";
+  }
+
+  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, 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 addRoleHolderFromController(@NonNull String, @NonNull String);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+    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, 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 void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>);
+    field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1
+  }
+
+}
+
diff --git a/31/public/api/incompatibilities.txt b/31/public/api/incompatibilities.txt
index 89332e7..d1a2ff2 100644
--- a/31/public/api/incompatibilities.txt
+++ b/31/public/api/incompatibilities.txt
@@ -174,3 +174,6 @@
 
 RemovedField: android.telephony.CarrierConfigManager.Apn#KEY_PREFIX:
     Removed field android.telephony.CarrierConfigManager.Apn.KEY_PREFIX
+
+RemovedPackage: android.app.role:
+    Removed package android.app.role
diff --git a/31/system/api/incompatibilities.txt b/31/system/api/incompatibilities.txt
index 61a4f9e..7035bcb 100644
--- a/31/system/api/incompatibilities.txt
+++ b/31/system/api/incompatibilities.txt
@@ -1,3 +1,6 @@
 // Baseline format: 1.0
 ChangedThrows: android.service.euicc.EuiccService#encodeSmdxSubjectAndReasonCode(String, String):
     Method android.service.euicc.EuiccService.encodeSmdxSubjectAndReasonCode no longer throws exception java.lang.IllegalArgumentException
+
+RemovedPackage: android.app.role:
+    Removed package android.app.role