Implement checkCarrierPrivilegesForPackageAnyPhone
Checks if the provided package has carrier privileges
for any active phone.
Change-Id: I3d521142d4891a03cd3b0b0cf788ce30722d35fd
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 9628b92..500e173 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2042,13 +2042,33 @@
}
@Override
- public int checkCarrierPrivilegesForPackage(String pkgname) {
+ public int checkCarrierPrivilegesForPackage(String pkgName) {
UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
if (card == null) {
loge("checkCarrierPrivilegesForPackage: No UICC");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
}
- return card.getCarrierPrivilegeStatus(mPhone.getContext().getPackageManager(), pkgname);
+ return card.getCarrierPrivilegeStatus(mPhone.getContext().getPackageManager(), pkgName);
+ }
+
+ @Override
+ public int checkCarrierPrivilegesForPackageAnyPhone(String pkgName) {
+ int result = TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
+ for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ UiccCard card = UiccController.getInstance().getUiccCard(i);
+ if (card == null) {
+ loge("checkCarrierPrivilegesForPackageAnyPhones: No UICC");
+ continue;
+ }
+
+ result = card.getCarrierPrivilegeStatus(
+ mPhone.getContext().getPackageManager(), pkgName);
+ if (result == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+ break;
+ }
+ }
+
+ return result;
}
@Override