Merge remote-tracking branch 'origin/sm7225_r_fp4' into fp4-r-rebase
Change-Id: Ia63b7584e6a1311e48c8544158f2674313a26fe7
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index aca1edb..fe648cb 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -140,6 +140,12 @@
import java.util.zip.CheckedInputStream;
import java.util.zip.CRC32;
+//Add Begin by cheng-he for FP4-915 on 2021/06/18
+import com.android.internal.telephony.dataconnection.ApnSettingUtils;
+import com.android.internal.telephony.uicc.IccRecords;
+import com.android.internal.telephony.uicc.UiccController;
+//Add End by cheng-he for FP4-915 on 2021/06/18
+
public class TelephonyProvider extends ContentProvider
{
private static final String DATABASE_NAME = "telephony.db";
@@ -3186,8 +3192,14 @@
// For query db one time, append all conditions in one selection and separate results after
// the query is completed. IMSI has special match rule, so just query the MCC / MNC and
// filter the MVNO by ourselves
- qb.appendWhereStandalone(NUMERIC + " = '" + mccmnc + "' OR " +
- CARRIER_ID + " = '" + carrierId + "'");
+ //Modified Begin by cheng-he for FP4-915 on 2021/07/01
+ if (carrierId != TelephonyManager.UNKNOWN_CARRIER_ID) {
+ qb.appendWhereStandalone(NUMERIC + " = '" + mccmnc + "' OR " + CARRIER_ID + " = '" + carrierId + "'");
+ }
+ else {
+ qb.appendWhereStandalone(NUMERIC + " = '" + mccmnc + "'");
+ }
+ //Modified End by cheng-he for FP4-915 on 2021/07/01
ret = qb.query(db, null, selection, selectionArgs, null, null, sort);
if (ret == null) {
@@ -3197,6 +3209,15 @@
if (DBG) log("match current APN size: " + ret.getCount());
+ //Add Begin by cheng-he for FP4-915 on 2021/06/18
+ IccRecords iccRecords = UiccController.getInstance().getIccRecords(
+ SubscriptionManager.getPhoneId(subId), UiccController.APP_FAM_3GPP);
+ if (iccRecords == null) {
+ loge("iccRecords is null");
+ return null;
+ }
+ //Add End by cheng-he for FP4-915 on 2021/06/18
+
String[] columnNames = projectionIn != null ? projectionIn : ret.getColumnNames();
MatrixCursor currentCursor = new MatrixCursor(columnNames);
MatrixCursor parentCursor = new MatrixCursor(columnNames);
@@ -3214,10 +3235,15 @@
data.add(ret.getString(ret.getColumnIndex(column)));
}
- boolean isMVNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
+ //Modified Begin by cheng-he for FP4-915 on 2021/06/18
+ /*boolean isMVNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
&& tm.matchesCurrentSimOperator(ret.getString(numericIndex),
getMvnoTypeIntFromString(ret.getString(mvnoIndex)),
- ret.getString(mvnoDataIndex));
+ ret.getString(mvnoDataIndex));*/
+ boolean isMVNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
+ && ApnSettingUtils.mvnoMatches(iccRecords,
+ ret.getString(mvnoIndex), ret.getString(mvnoDataIndex), subId);
+ //Modified End by cheng-he for FP4-915 on 2021/06/18
boolean isMNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex))
&& ret.getString(numericIndex).equals(mccmnc)
&& TextUtils.isEmpty(ret.getString(mvnoIndex));
@@ -4087,6 +4113,10 @@
+ " AND " + IS_NOT_OWNED_BY_DPC;
}
}
+
+ // add by T2M.dengxiangyu for FP4-1630 2021-07-09, apn of MVNO maybe more than 1
+ where = NUMERIC + "='" + simOperator + "'"
+ + " AND " + IS_NOT_OWNED_BY_DPC;
return where;
}