diff options
author | 2024-01-26 14:38:06 +0000 | |
---|---|---|
committer | 2024-02-14 01:26:25 +0000 | |
commit | 4675be8559d10d1fb60bfde9bfe4214ec5ad2c64 (patch) | |
tree | 0cf1a7e3b90d20329861cd115166d28cc6376cd4 /framework-s/java | |
parent | 516e07ac988a28443fb579ba945e82909c5de6d9 (diff) |
Add getEmergencyRoleHolder SystemApi to RoleManager.
This API then enables TelephonyManager to expose the emergency
role holder to priviliged clients via getEmergencyAssistancePackageName.
Bug: 323157319
Test: atest RoleManagerTest
LOW_COVERAGE_REASON=Flagged test added but flag not enabled
Change-Id: I91089701248a32a720b488147405b2566cca2be9
Diffstat (limited to 'framework-s/java')
-rw-r--r-- | framework-s/java/android/app/role/IRoleManager.aidl | 2 | ||||
-rw-r--r-- | framework-s/java/android/app/role/RoleManager.java | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/framework-s/java/android/app/role/IRoleManager.aidl b/framework-s/java/android/app/role/IRoleManager.aidl index 0aef871e6..522967630 100644 --- a/framework-s/java/android/app/role/IRoleManager.aidl +++ b/framework-s/java/android/app/role/IRoleManager.aidl @@ -74,6 +74,8 @@ interface IRoleManager { String getSmsRoleHolder(int userId); + String getEmergencyRoleHolder(int userId); + boolean isRoleVisibleAsUser(in String roleName, int userId); boolean isApplicationVisibleForRoleAsUser(in String roleName, in String packageName, diff --git a/framework-s/java/android/app/role/RoleManager.java b/framework-s/java/android/app/role/RoleManager.java index fe27d50f3..4b8c9b388 100644 --- a/framework-s/java/android/app/role/RoleManager.java +++ b/framework-s/java/android/app/role/RoleManager.java @@ -975,6 +975,28 @@ public final class RoleManager { } /** + * Allows getting the role holder for {@link #ROLE_EMERGENCY} without requiring + * {@link Manifest.permission#OBSERVE_ROLE_HOLDERS}. + * + * @param userId the user ID to get the default emergency package for + * @return the package name of the default emergency app, or {@code null} if none + * + * @hide + */ + @FlaggedApi(Flags.FLAG_GET_EMERGENCY_ROLE_HOLDER_API_ENABLED) + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + @Nullable + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + public String getEmergencyRoleHolder(@UserIdInt int userId) { + try { + return mService.getEmergencyRoleHolder(userId); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** * Check whether a role should be visible to user. * * @param roleName name of the role to check for |