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(