[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);
     }