[automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" am: e7cfa488d7 -s ours am: a2c57f54f5 -s ours am: b6a15fd79d -s ours am: 15fdac4f3a -s ours am: b67222e71c -s ours
am skip reason: subject contains skip directive
Original change: https://android-review.googlesource.com/c/platform/packages/providers/TelephonyProvider/+/1420254
Change-Id: Iccb67f44db02a5aad2173206326093379ea37b68
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 98bc81e..499a18e 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -2930,6 +2930,7 @@
checkPermissionCompat(match, projectionIn);
switch (match) {
case URL_TELEPHONY_USING_SUBID: {
+ // The behaves exactly same as URL_SIM_APN_LIST_ID.
subIdString = url.getLastPathSegment();
try {
subId = Integer.parseInt(subIdString);
@@ -2938,13 +2939,13 @@
return null;
}
if (DBG) log("subIdString = " + subIdString + " subId = " + subId);
- TelephonyManager telephonyManager = getContext()
- .getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
- constraints.add(NUMERIC + " = '" + telephonyManager.getSimOperator() + "'");
+ qb.appendWhereStandalone(IS_NOT_OWNED_BY_DPC);
+ return getSubscriptionMatchingAPNList(qb, projectionIn, selection, selectionArgs,
+ sort, subId);
+
// TODO b/74213956 turn this back on once insertion includes correct sub id
// constraints.add(SUBSCRIPTION_ID + "=" + subIdString);
}
- // intentional fall through from above case
case URL_TELEPHONY: {
constraints.add(IS_NOT_OWNED_BY_DPC);
break;
@@ -3203,10 +3204,19 @@
data.add(ret.getString(ret.getColumnIndex(column)));
}
+ boolean isCurrentSimOperator;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ isCurrentSimOperator = tm.matchesCurrentSimOperator(
+ ret.getString(numericIndex),
+ getMvnoTypeIntFromString(ret.getString(mvnoIndex)),
+ ret.getString(mvnoDataIndex));
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+
boolean isMVNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
- && tm.matchesCurrentSimOperator(ret.getString(numericIndex),
- getMvnoTypeIntFromString(ret.getString(mvnoIndex)),
- ret.getString(mvnoDataIndex));
+ && isCurrentSimOperator;
boolean isMNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
&& ret.getString(numericIndex).equals(mccmnc)
&& TextUtils.isEmpty(ret.getString(mvnoIndex));