[Networking] Add [SubscriptionModel.provisioningClass] field for tracking
This will enable us to filter out certain subscriptions based on
provisioning class.
Test: all tests in statusbar/pipeline
Flag: NONE
Bug: 300018361
Change-Id: I6ed7a94bdc0de5c9238b2f1b20452e9fab3c0fc1
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/SubscriptionModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/SubscriptionModel.kt
index 27f6df4..d9d909a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/SubscriptionModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/SubscriptionModel.kt
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.pipeline.mobile.data.model
import android.os.ParcelUuid
+import android.telephony.SubscriptionManager.ProfileClass
/**
* SystemUI representation of [SubscriptionInfo]. Currently we only use two fields on the
@@ -37,4 +38,7 @@
/** Text representing the name for this connection */
val carrierName: String,
+
+ /** Allow us to filter out PROVISIONING profiles. See [SubscriptionInfo.getProfileClass] */
+ @ProfileClass val profileClass: Int
)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt
index c7987e2..205dc1c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt
@@ -18,6 +18,7 @@
import android.content.Context
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.util.Log
import com.android.settingslib.SignalIcon
import com.android.settingslib.mobile.MobileMappings
@@ -96,6 +97,7 @@
subscriptionId = subId,
isOpportunistic = false,
carrierName = DEFAULT_CARRIER_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
.also { subscriptionInfoCache[subId] = it }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
index ecb80f2..2caf33b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
@@ -408,6 +408,7 @@
isOpportunistic = isOpportunistic,
groupUuid = groupUuid,
carrierName = carrierName.toString(),
+ profileClass = profileClass,
)
companion object {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
index df38f93..f98267b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
@@ -1,5 +1,6 @@
package com.android.systemui.shade.ui.viewmodel
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -151,12 +152,14 @@
subscriptionId = 1,
isOpportunistic = false,
carrierName = "Carrier 1",
+ profileClass = PROFILE_CLASS_UNSET,
)
private val SUB_2 =
SubscriptionModel(
subscriptionId = 2,
isOpportunistic = false,
carrierName = "Carrier 2",
+ profileClass = PROFILE_CLASS_UNSET,
)
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt
index 4d4f33b..9b6940e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt
@@ -18,6 +18,7 @@
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.telephony.TelephonyManager
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -249,11 +250,13 @@
mock<SubscriptionInfo>().also {
whenever(it.subscriptionId).thenReturn(SUB_1_ID)
whenever(it.carrierName).thenReturn(SUB_1_NAME)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
private val MODEL_1 =
SubscriptionModel(
subscriptionId = SUB_1_ID,
carrierName = SUB_1_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
private const val SUB_2_ID = 2
@@ -262,11 +265,13 @@
mock<SubscriptionInfo>().also {
whenever(it.subscriptionId).thenReturn(SUB_2_ID)
whenever(it.carrierName).thenReturn(SUB_2_NAME)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
private val MODEL_2 =
SubscriptionModel(
subscriptionId = SUB_2_ID,
carrierName = SUB_2_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
index 1c21ebe..787a266 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
@@ -19,6 +19,7 @@
import android.net.ConnectivityManager
import android.telephony.ServiceState
import android.telephony.SignalStrength
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.telephony.TelephonyCallback
import android.telephony.TelephonyManager
import androidx.test.filters.SmallTest
@@ -88,6 +89,7 @@
SubscriptionModel(
subscriptionId = SUB_ID,
carrierName = DEFAULT_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
)
@@ -737,7 +739,7 @@
private companion object {
const val SUB_ID = 42
- private val DEFAULT_NAME = "default name"
+ private const val DEFAULT_NAME = "default name"
private val DEFAULT_NAME_MODEL = NetworkNameModel.Default(DEFAULT_NAME)
private const val SEP = "-"
private const val BUFFER_SEPARATOR = "|"
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
index ba64265..a90bd48 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
@@ -32,13 +32,13 @@
import android.telephony.ServiceState.STATE_IN_SERVICE
import android.telephony.ServiceState.STATE_OUT_OF_SERVICE
import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.telephony.TelephonyCallback
import android.telephony.TelephonyCallback.DataActivityListener
import android.telephony.TelephonyCallback.ServiceStateListener
import android.telephony.TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA
import android.telephony.TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE
import android.telephony.TelephonyManager
-import android.telephony.TelephonyManager.ACTION_SERVICE_PROVIDERS_UPDATED
import android.telephony.TelephonyManager.DATA_ACTIVITY_DORMANT
import android.telephony.TelephonyManager.DATA_ACTIVITY_IN
import android.telephony.TelephonyManager.DATA_ACTIVITY_INOUT
@@ -132,6 +132,7 @@
SubscriptionModel(
subscriptionId = SUB_1_ID,
carrierName = DEFAULT_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
)
@@ -677,6 +678,7 @@
SubscriptionModel(
subscriptionId = SUB_1_ID,
carrierName = DEFAULT_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
assertThat(latest?.name).isEqualTo(DEFAULT_NAME)
@@ -686,6 +688,7 @@
SubscriptionModel(
subscriptionId = SUB_1_ID,
carrierName = updatedName,
+ profileClass = PROFILE_CLASS_UNSET,
)
assertThat(latest?.name).isEqualTo(updatedName)
@@ -980,9 +983,9 @@
companion object {
private const val SUB_1_ID = 1
- private val DEFAULT_NAME = "Fake Mobile Network"
+ private const val DEFAULT_NAME = "Fake Mobile Network"
private val DEFAULT_NAME_MODEL = NetworkNameModel.Default(DEFAULT_NAME)
- private val SEP = "-"
+ private const val SEP = "-"
private const val SPN = "testSpn"
private const val PLMN = "testPlmn"
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
index 18ba6c4..936c58e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
@@ -31,6 +31,7 @@
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.telephony.TelephonyCallback
import android.telephony.TelephonyCallback.ActiveDataSubscriptionIdListener
import android.telephony.TelephonyManager
@@ -1223,12 +1224,14 @@
whenever(it.subscriptionId).thenReturn(SUB_1_ID)
whenever(it.groupUuid).thenReturn(GROUP_1)
whenever(it.carrierName).thenReturn(SUB_1_NAME)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
private val MODEL_1 =
SubscriptionModel(
subscriptionId = SUB_1_ID,
groupUuid = GROUP_1,
carrierName = SUB_1_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
// Subscription 2
@@ -1240,12 +1243,14 @@
whenever(it.subscriptionId).thenReturn(SUB_2_ID)
whenever(it.groupUuid).thenReturn(GROUP_2)
whenever(it.carrierName).thenReturn(SUB_2_NAME)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
private val MODEL_2 =
SubscriptionModel(
subscriptionId = SUB_2_ID,
groupUuid = GROUP_2,
carrierName = SUB_2_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
// Subs 3 and 4 are considered to be in the same group ------------------------------------
@@ -1257,6 +1262,7 @@
mock<SubscriptionInfo>().also {
whenever(it.subscriptionId).thenReturn(SUB_3_ID_GROUPED)
whenever(it.groupUuid).thenReturn(GROUP_ID_3_4)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
// Subscription 4
@@ -1265,6 +1271,7 @@
mock<SubscriptionInfo>().also {
whenever(it.subscriptionId).thenReturn(SUB_4_ID_GROUPED)
whenever(it.groupUuid).thenReturn(GROUP_ID_3_4)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
// Subs 3 and 4 are considered to be in the same group ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1279,9 +1286,14 @@
mock<SubscriptionInfo>().also {
whenever(it.subscriptionId).thenReturn(SUB_CM_ID)
whenever(it.carrierName).thenReturn(SUB_CM_NAME)
+ whenever(it.profileClass).thenReturn(PROFILE_CLASS_UNSET)
}
private val MODEL_CM =
- SubscriptionModel(subscriptionId = SUB_CM_ID, carrierName = SUB_CM_NAME)
+ SubscriptionModel(
+ subscriptionId = SUB_CM_ID,
+ carrierName = SUB_CM_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
+ )
private val WIFI_INFO_CM =
mock<WifiInfo>().apply {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconInteractorTest.kt
index e2f9119..20d5c5d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconInteractorTest.kt
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.pipeline.mobile.domain.interactor
import android.telephony.CellSignalStrength
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN
import androidx.test.filters.SmallTest
import com.android.settingslib.mobile.MobileIconCarrierIdOverrides
@@ -65,6 +66,7 @@
SubscriptionModel(
subscriptionId = SUB_1_ID,
carrierName = DEFAULT_NAME,
+ profileClass = PROFILE_CLASS_UNSET,
)
)
@@ -649,9 +651,9 @@
private const val SUB_1_ID = 1
- private val DEFAULT_NAME = "test default name"
+ private const val DEFAULT_NAME = "test default name"
private val DEFAULT_NAME_MODEL = NetworkNameModel.Default(DEFAULT_NAME)
- private val DERIVED_NAME = "test derived name"
+ private const val DERIVED_NAME = "test derived name"
private val DERIVED_NAME_MODEL = NetworkNameModel.IntentDerived(DERIVED_NAME)
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
index b4c7578..12d5702 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
@@ -18,6 +18,7 @@
import android.os.ParcelUuid
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import androidx.test.filters.SmallTest
import com.android.settingslib.mobile.MobileMappings
import com.android.systemui.SysuiTestCase
@@ -806,7 +807,8 @@
subscriptionId = subscriptionIds.first,
isOpportunistic = opportunistic.first,
groupUuid = groupUuid,
- carrierName = "Carrier ${subscriptionIds.first}"
+ carrierName = "Carrier ${subscriptionIds.first}",
+ profileClass = PROFILE_CLASS_UNSET,
)
val sub2 =
@@ -814,7 +816,8 @@
subscriptionId = subscriptionIds.second,
isOpportunistic = opportunistic.second,
groupUuid = groupUuid,
- carrierName = "Carrier ${opportunistic.second}"
+ carrierName = "Carrier ${opportunistic.second}",
+ profileClass = PROFILE_CLASS_UNSET,
)
return Pair(sub1, sub2)
@@ -824,12 +827,20 @@
private const val SUB_1_ID = 1
private val SUB_1 =
- SubscriptionModel(subscriptionId = SUB_1_ID, carrierName = "Carrier $SUB_1_ID")
+ SubscriptionModel(
+ subscriptionId = SUB_1_ID,
+ carrierName = "Carrier $SUB_1_ID",
+ profileClass = PROFILE_CLASS_UNSET,
+ )
private val CONNECTION_1 = FakeMobileConnectionRepository(SUB_1_ID, mock())
private const val SUB_2_ID = 2
private val SUB_2 =
- SubscriptionModel(subscriptionId = SUB_2_ID, carrierName = "Carrier $SUB_2_ID")
+ SubscriptionModel(
+ subscriptionId = SUB_2_ID,
+ carrierName = "Carrier $SUB_2_ID",
+ profileClass = PROFILE_CLASS_UNSET,
+ )
private val CONNECTION_2 = FakeMobileConnectionRepository(SUB_2_ID, mock())
private const val SUB_3_ID = 3
@@ -838,7 +849,8 @@
subscriptionId = SUB_3_ID,
isOpportunistic = true,
groupUuid = ParcelUuid(UUID.randomUUID()),
- carrierName = "Carrier $SUB_3_ID"
+ carrierName = "Carrier $SUB_3_ID",
+ profileClass = PROFILE_CLASS_UNSET,
)
private val CONNECTION_3 = FakeMobileConnectionRepository(SUB_3_ID, mock())
@@ -848,7 +860,8 @@
subscriptionId = SUB_4_ID,
isOpportunistic = true,
groupUuid = ParcelUuid(UUID.randomUUID()),
- carrierName = "Carrier $SUB_4_ID"
+ carrierName = "Carrier $SUB_4_ID",
+ profileClass = PROFILE_CLASS_UNSET,
)
private val CONNECTION_4 = FakeMobileConnectionRepository(SUB_4_ID, mock())
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModelTest.kt
index f3e334e..f029152 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModelTest.kt
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.settingslib.mobile.TelephonyIcons
@@ -102,6 +103,7 @@
subscriptionId = 1,
isOpportunistic = false,
carrierName = "Carrier 1",
+ profileClass = PROFILE_CLASS_UNSET,
),
)
assertThat(latest).isEqualTo(listOf(1))
@@ -112,16 +114,19 @@
subscriptionId = 2,
isOpportunistic = false,
carrierName = "Carrier 2",
+ profileClass = PROFILE_CLASS_UNSET,
),
SubscriptionModel(
subscriptionId = 5,
isOpportunistic = true,
carrierName = "Carrier 5",
+ profileClass = PROFILE_CLASS_UNSET,
),
SubscriptionModel(
subscriptionId = 7,
isOpportunistic = true,
carrierName = "Carrier 7",
+ profileClass = PROFILE_CLASS_UNSET,
),
)
assertThat(latest).isEqualTo(listOf(2, 5, 7))
@@ -335,18 +340,21 @@
subscriptionId = 1,
isOpportunistic = false,
carrierName = "Carrier 1",
+ profileClass = PROFILE_CLASS_UNSET,
)
private val SUB_2 =
SubscriptionModel(
subscriptionId = 2,
isOpportunistic = false,
carrierName = "Carrier 2",
+ profileClass = PROFILE_CLASS_UNSET,
)
private val SUB_3 =
SubscriptionModel(
subscriptionId = 3,
isOpportunistic = false,
carrierName = "Carrier 3",
+ profileClass = PROFILE_CLASS_UNSET,
)
}
}