Fix PrimarySim show the same sim in the preference list
Bug: 327425969
Test: manual test, verify the UI
Change-Id: I0d3c2163a43a00ec0e4e627b34281e95cc611751
diff --git a/src/com/android/settings/network/SimOnboardingService.kt b/src/com/android/settings/network/SimOnboardingService.kt
index d37b2ec..5387ad4 100644
--- a/src/com/android/settings/network/SimOnboardingService.kt
+++ b/src/com/android/settings/network/SimOnboardingService.kt
@@ -219,8 +219,12 @@
return renameMutableMap[subInfo.subscriptionId] ?: subInfo.displayName.toString()
}
- fun addCurrentItemForSelectedSim(){
- userSelectedSubInfoList.addAll(activeSubInfoList)
+ fun addCurrentItemForSelectedSim() {
+ if (userSelectedSubInfoList.size < getActiveModemCount) {
+ userSelectedSubInfoList.addAll(activeSubInfoList)
+ Log.d(TAG, "addCurrentItemForSelectedSim: userSelectedSubInfoList:" +
+ ", $userSelectedSubInfoList")
+ }
}
fun addItemForSelectedSim(selectedSubInfo: SubscriptionInfo) {
diff --git a/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt b/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt
index c60ac88..cc17f93 100644
--- a/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt
+++ b/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt
@@ -24,6 +24,7 @@
import android.util.Log
import androidx.annotation.VisibleForTesting
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.platform.LocalContext
import androidx.navigation.NavHostController
import androidx.navigation.NavType
@@ -101,10 +102,13 @@
) {
composable(route = SimOnboardingScreen.LabelSim.name) {
val nextPage =
- if (onboardingService.isMultipleEnabledProfilesSupported && onboardingService.isAllOfSlotAssigned) {
+ if (onboardingService.isMultipleEnabledProfilesSupported
+ && onboardingService.isAllOfSlotAssigned) {
SimOnboardingScreen.SelectSim.name
} else {
- onboardingService.addCurrentItemForSelectedSim()
+ LaunchedEffect(Unit) {
+ onboardingService.addCurrentItemForSelectedSim()
+ }
SimOnboardingScreen.PrimarySim.name
}
SimOnboardingLabelSimImpl(