Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08319b18 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Use simSpecificCarrierId for new apn" into main

parents 9260350b 5b474891
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -21,10 +21,10 @@ import android.content.Context
import android.database.Cursor
import android.net.Uri
import android.provider.Telephony
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import android.util.Log
import com.android.settings.R
import com.android.settings.network.telephony.telephonyManager
import com.android.settingslib.utils.ThreadUtils
import java.util.Locale

@@ -178,12 +178,11 @@ fun isItemExist(apnData: ApnData, context: Context): String? {
}

fun Context.getApnIdMap(subId: Int): Map<String, Any> {
    val subInfo = getSystemService(SubscriptionManager::class.java)!!
        .getActiveSubscriptionInfo(subId)
    val carrierId = subInfo.carrierId
    val telephonyManager = telephonyManager(subId)
    val carrierId = telephonyManager.simSpecificCarrierId
    return if (carrierId != TelephonyManager.UNKNOWN_CARRIER_ID) {
        mapOf(Telephony.Carriers.CARRIER_ID to carrierId)
    } else {
        mapOf(Telephony.Carriers.NUMERIC to subInfo.mccString + subInfo.mncString)
        mapOf(Telephony.Carriers.NUMERIC to telephonyManager.simOperator)
    }.also { Log.d(TAG, "[$subId] New APN item with id: $it") }
}
+13 −21
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@ import android.content.Context
import android.database.MatrixCursor
import android.net.Uri
import android.provider.Telephony
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -40,19 +38,15 @@ class ApnRepositoryTest {

    private val contentResolver = mock<ContentResolver>()

    private val mockSubscriptionInfo = mock<SubscriptionInfo> {
        on { mccString } doReturn MCC
        on { mncString } doReturn MNC
    }

    private val mockSubscriptionManager = mock<SubscriptionManager> {
        on { getActiveSubscriptionInfo(SUB_ID) } doReturn mockSubscriptionInfo
    }
    private val mockTelephonyManager =
        mock<TelephonyManager> { on { createForSubscriptionId(SUB_ID) } doReturn mock }

    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
    private val context: Context =
        spy(ApplicationProvider.getApplicationContext()) {
            on { contentResolver } doReturn contentResolver
        on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
            on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
        }

    private val uri = mock<Uri> {}

    @Test
@@ -91,9 +85,7 @@ class ApnRepositoryTest {

    @Test
    fun getApnIdMap_knownCarrierId() {
        mockSubscriptionInfo.stub {
            on { carrierId } doReturn CARRIER_ID
        }
        mockTelephonyManager.stub { on { simSpecificCarrierId } doReturn CARRIER_ID }

        val idMap = context.getApnIdMap(SUB_ID)

@@ -102,19 +94,19 @@ class ApnRepositoryTest {

    @Test
    fun getApnIdMap_unknownCarrierId() {
        mockSubscriptionInfo.stub {
            on { carrierId } doReturn TelephonyManager.UNKNOWN_CARRIER_ID
        mockTelephonyManager.stub {
            on { simSpecificCarrierId } doReturn TelephonyManager.UNKNOWN_CARRIER_ID
            on { simOperator } doReturn SIM_OPERATOR
        }

        val idMap = context.getApnIdMap(SUB_ID)

        assertThat(idMap).containsExactly(Telephony.Carriers.NUMERIC, MCC + MNC)
        assertThat(idMap).containsExactly(Telephony.Carriers.NUMERIC, SIM_OPERATOR)
    }

    private companion object {
        const val SUB_ID = 2
        const val CARRIER_ID = 10
        const val MCC = "310"
        const val MNC = "101"
        const val SIM_OPERATOR = "310101"
    }
}