aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Davidson <jpd@google.com>2019-05-30 13:40:59 -0700
committerJeff Davidson <jpd@google.com>2019-05-30 20:56:48 +0000
commit449139f4080c1968be9c7e5d962f8f15a25bd0db (patch)
treebaa302c3baa0f961ab04deb00c7e6e5d114a2245
parent4387625574c26c8431d23d0f94018264046c866b (diff)
downloadContactsProvider-449139f4080c1968be9c7e5d962f8f15a25bd0db.tar.gz
Allow carrier apps for non-default subs to access voicemail.
The previous implementation only permitted carrier apps on the default subscription. However, even if a carrier's subscription is not default, it may still legitimately need to access the voicemail provider to insert new messages, since these subs can still be used for voice calls and since voicemails can come in asynchronously. Test: Build, TreeHugger Fixes: 133265596 Change-Id: Ifc3e587d07fa926246456546c17742ad8fd6a34e
-rw-r--r--src/com/android/providers/contacts/VoicemailPermissions.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/com/android/providers/contacts/VoicemailPermissions.java b/src/com/android/providers/contacts/VoicemailPermissions.java
index ed3815dc..7e409eaf 100644
--- a/src/com/android/providers/contacts/VoicemailPermissions.java
+++ b/src/com/android/providers/contacts/VoicemailPermissions.java
@@ -124,8 +124,7 @@ public class VoicemailPermissions {
(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
String[] packages = mContext.getPackageManager().getPackagesForUid(Binder.getCallingUid());
for (String packageName : packages) {
- if (tm.checkCarrierPrivilegesForPackageAnyPhone(packageName)
- == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+ if (packageHasCarrierPrivileges(tm, packageName)) {
return true;
}
}
@@ -136,6 +135,11 @@ public class VoicemailPermissions {
private boolean packageHasCarrierPrivileges(String packageName) {
TelephonyManager tm =
(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
- return tm.getPackagesWithCarrierPrivileges().contains(packageName);
+ return packageHasCarrierPrivileges(tm, packageName);
+ }
+
+ private static boolean packageHasCarrierPrivileges(TelephonyManager tm, String packageName) {
+ return tm.checkCarrierPrivilegesForPackageAnyPhone(packageName)
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
}
}