From 57956a8bb8be4a5711af032911055562efed5c6c Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Tue, 4 Jun 2024 13:55:30 +0800 Subject: [PATCH] [Apn] Copy network type into lingering network type The lingering network type is actually the bit that controls network torn down. UNKNOWN here means the APN can work on any RAT. Just copy network type into lingering network type, so network torn down can work normally. Fix: 341006308 Test: unit test Change-Id: Ia60ad3e012bec7364aa35535de1363cd7c0ccdda --- src/com/android/settings/network/apn/ApnStatus.kt | 2 ++ .../android/settings/network/apn/ApnStatusTest.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt index 2f41f238d38..dc50452a995 100644 --- a/src/com/android/settings/network/apn/ApnStatus.kt +++ b/src/com/android/settings/network/apn/ApnStatus.kt @@ -70,6 +70,8 @@ data class ApnData( Telephony.Carriers.ROAMING_PROTOCOL to context.convertOptions2Protocol(apnRoaming), Telephony.Carriers.TYPE to apnType, Telephony.Carriers.NETWORK_TYPE_BITMASK to networkType, + // Copy network type into lingering network type. + Telephony.Carriers.LINGERING_NETWORK_TYPE_BITMASK to networkType, Telephony.Carriers.CARRIER_ENABLED to apnEnable, Telephony.Carriers.EDITED_STATUS to Telephony.Carriers.USER_EDITED, ) diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt index 6b61eba0f9b..fcfa13b8a75 100644 --- a/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt @@ -16,9 +16,12 @@ package com.android.settings.network.apn +import android.content.Context import android.os.PersistableBundle import android.provider.Telephony import android.telephony.CarrierConfigManager +import android.telephony.TelephonyManager +import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat import org.junit.Test @@ -46,6 +49,8 @@ class ApnStatusTest { } doReturn p } + private val context: Context = ApplicationProvider.getApplicationContext() + @Test fun getCarrierCustomizedConfig_test() { assert(getCarrierCustomizedConfig(apnData, configManager).isAddApnAllowed) @@ -81,4 +86,14 @@ class ApnStatusTest { assertThat(apnData.isFieldEnabled(Telephony.Carriers.PROXY)).isFalse() assertThat(apnData.isFieldEnabled(Telephony.Carriers.APN)).isTrue() } + + @Test + fun getContentValueMap_copyNetworkTypeIntoLingeringNetworkType() { + val apnData = ApnData(networkType = TelephonyManager.NETWORK_TYPE_NR.toLong()) + + val contentValueMap = apnData.getContentValueMap(context) + + assertThat(contentValueMap.getValue(Telephony.Carriers.LINGERING_NETWORK_TYPE_BITMASK)) + .isEqualTo(TelephonyManager.NETWORK_TYPE_NR.toLong()) + } }