[Telephony Mainline] To use the new api isMvnoMatched for mainline
Bug: 144977430
Test: make & atest TelephonyProvdierTest
Change-Id: Id4900bee21af992ba55152b8b715a57fc45cca57
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 4040d7c..f58f6c2 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -115,8 +115,6 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.compat.IPlatformCompat;
import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.dataconnection.ApnSettingUtils;
-import com.android.internal.telephony.uicc.IccRecords;
import com.android.internal.telephony.uicc.UiccController;
import com.android.internal.util.XmlUtils;
import android.service.carrier.IApnSourceService;
@@ -3135,13 +3133,6 @@
int mvnoDataIndex = ret.getColumnIndex(MVNO_MATCH_DATA);
int carrierIdIndex = ret.getColumnIndex(CARRIER_ID);
- IccRecords iccRecords = UiccController.getInstance().getIccRecords(
- SubscriptionManager.getPhoneId(subId), UiccController.APP_FAM_3GPP);
- if (iccRecords == null) {
- loge("iccRecords is null");
- return null;
- }
-
//Separate the result into MatrixCursor
while (ret.moveToNext()) {
List<String> data = new ArrayList<>();
@@ -3150,17 +3141,17 @@
}
if (!TextUtils.isEmpty(ret.getString(numericIndex)) &&
- ApnSettingUtils.mvnoMatches(iccRecords,
- getMvnoTypeIntFromString(ret.getString(mvnoIndex)),
- ret.getString(mvnoDataIndex))) {
+ tm.isCurrentSimOperator(ret.getString(numericIndex),
+ getMvnoTypeIntFromString(ret.getString(mvnoIndex)),
+ ret.getString(mvnoDataIndex))) {
// 1. The APN that query based on legacy SIM MCC/MCC and MVNO
currentCursor.addRow(data);
} else if (!TextUtils.isEmpty(ret.getString(numericIndex))
- && TextUtils.isEmpty(ret.getString(mvnoIndex))) {
+ && TextUtils.isEmpty(ret.getString(mvnoIndex))) {
// 2. The APN that query based on SIM MCC/MNC
parentCursor.addRow(data);
} else if (!TextUtils.isEmpty(ret.getString(carrierIdIndex))
- && ret.getString(carrierIdIndex).equals(String.valueOf(carrierId))) {
+ && ret.getString(carrierIdIndex).equals(String.valueOf(carrierId))) {
// The APN that query based on carrier Id (not include the MVNO or MNO APN)
carrierIdCursor.addRow(data);
}
@@ -3949,10 +3940,6 @@
}
private String getWhereClauseForRestoreDefaultApn(SQLiteDatabase db, int subId) {
- IccRecords iccRecords = getIccRecords(subId);
- if (iccRecords == null) {
- return null;
- }
TelephonyManager telephonyManager =
getContext().getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
String simOperator = telephonyManager.getSimOperator();
@@ -3966,8 +3953,8 @@
String mvnoType = cursor.getString(0 /* MVNO_TYPE index */);
String mvnoMatchData = cursor.getString(1 /* MVNO_MATCH_DATA index */);
if (!TextUtils.isEmpty(mvnoType) && !TextUtils.isEmpty(mvnoMatchData)
- && ApnSettingUtils.mvnoMatches(iccRecords,
- getMvnoTypeIntFromString(mvnoType), mvnoMatchData)) {
+ && telephonyManager.isCurrentSimOperator(simOperator,
+ getMvnoTypeIntFromString(mvnoType), mvnoMatchData)) {
where = NUMERIC + "='" + simOperator + "'"
+ " AND " + MVNO_TYPE + "='" + mvnoType + "'"
+ " AND " + MVNO_MATCH_DATA + "='" + mvnoMatchData + "'"
@@ -3987,16 +3974,6 @@
return where;
}
- @VisibleForTesting
- IccRecords getIccRecords(int subId) {
- TelephonyManager telephonyManager =
- getContext().getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
- int family = telephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM ?
- UiccController.APP_FAM_3GPP : UiccController.APP_FAM_3GPP2;
- return UiccController.getInstance().getIccRecords(
- SubscriptionManager.getPhoneId(subId), family);
- }
-
private synchronized void updateApnDb() {
if (apnSourceServiceExists(getContext())) {
loge("called updateApnDb when apn source service exists");
diff --git a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
index 4b61798..efd5120 100644
--- a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
+++ b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
@@ -17,7 +17,9 @@
package com.android.providers.telephony;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
@@ -46,9 +48,6 @@
import androidx.test.InstrumentationRegistry;
-import com.android.internal.telephony.uicc.IccRecords;
-import com.android.internal.telephony.uicc.UiccController;
-
import junit.framework.TestCase;
import org.junit.Test;
@@ -80,12 +79,6 @@
private MockContentResolver mContentResolver;
private TelephonyProviderTestable mTelephonyProviderTestable;
- @Mock
- private UiccController mUiccController;
-
- @Mock
- private IccRecords mIcRecords;
-
private int notifyChangeCount;
private int notifyChangeRestoreCount;
private int notifyWfcCount;
@@ -156,9 +149,6 @@
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
doReturn(TEST_OPERATOR).when(mTelephonyManager).getSimOperator();
- doReturn(mIcRecords).when(mUiccController).getIccRecords(anyInt(), anyInt());
- doReturn(TEST_SPN).when(mIcRecords).getServiceProviderName();
- doReturn(TEST_SPN).when(mIcRecords).getServiceProviderNameWithBrandOverride();
doReturn(TEST_CARRIERID).when(mTelephonyManager).getSimCarrierId();
// Add authority="telephony" to given telephonyProvider
@@ -235,7 +225,6 @@
mTelephonyProviderTestable = new TelephonyProviderTestable();
mContext = new MockContextWithProvider(mTelephonyProviderTestable);
mContentResolver = (MockContentResolver) mContext.getContentResolver();
- replaceInstance(UiccController.class, "mInstance", null, mUiccController);
notifyChangeCount = 0;
notifyChangeRestoreCount = 0;
}
@@ -1374,6 +1363,11 @@
otherValues.put(Carriers.MVNO_TYPE, otherMvnoTyp);
otherValues.put(Carriers.MVNO_MATCH_DATA, otherMvnoMatchData);
+ doReturn(true).when(telephonyManager).isCurrentSimOperator(
+ anyString(), anyInt(), eq(TelephonyProviderTestable.TEST_SPN));
+ doReturn(false).when(telephonyManager).isCurrentSimOperator(
+ anyString(), anyInt(), eq(otherMvnoMatchData));
+
// insert APNs
Log.d(TAG, "testRestoreDefaultApn: Bulk inserting contentValues=" + targetValues + ", "
+ otherValues);
@@ -1484,14 +1478,6 @@
assertEquals(0, notifyWfcCountWithTestSubId);
}
- protected void replaceInstance(final Class c, final String instanceName,
- final Object obj, final Object newValue)
- throws Exception {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
- field.set(obj, newValue);
- }
-
@Test
@SmallTest
public void testSIMAPNLIST_MatchTheMVNOAPN() {
@@ -1518,6 +1504,13 @@
contentValues.put(Carriers.NUMERIC, numeric);
mContentResolver.insert(Carriers.CONTENT_URI, contentValues);
+ TelephonyManager telephonyManager =
+ (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(true).when(telephonyManager).isCurrentSimOperator(
+ anyString(), anyInt(), eq(mvnoData));
+ doReturn(false).when(telephonyManager).isCurrentSimOperator(
+ anyString(), anyInt(), eq(""));
+
// Query DB
final String[] testProjection =
{
diff --git a/tests/src/com/android/providers/telephony/TelephonyProviderTestable.java b/tests/src/com/android/providers/telephony/TelephonyProviderTestable.java
index d9f6ee3..eca7830 100644
--- a/tests/src/com/android/providers/telephony/TelephonyProviderTestable.java
+++ b/tests/src/com/android/providers/telephony/TelephonyProviderTestable.java
@@ -27,7 +27,6 @@
import androidx.test.InstrumentationRegistry;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.uicc.IccRecords;
import com.android.providers.telephony.TelephonyProvider;
/**
@@ -87,15 +86,6 @@
return false;
}
- @Override
- IccRecords getIccRecords(int subId) {
- Log.d(TAG, "getIccRecords called");
- IccRecords iccRecords = mock(IccRecords.class);
- doReturn(TEST_SPN).when(iccRecords).getServiceProviderName();
- doReturn(TEST_SPN).when(iccRecords).getServiceProviderNameWithBrandOverride();
- return iccRecords;
- }
-
public void fakeCallingUid(int uid) {
mMockInjector.fakeCallingUid(uid);
}