From 5ae84662b5851b05e37e56c23ca74d9a362f9ffb Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Mon, 22 Apr 2024 12:49:40 +0800 Subject: [PATCH] Check isConvertedPsimSubscription in new UI Bug: 326896614 Test: manual test Change-Id: I0d3c87a863f58a9e962fb87df5b8001be9edb767 --- .../settings/network/SubscriptionUtil.java | 21 ++++++++++++------- .../settings/spa/network/SimsSection.kt | 17 ++++++++++++++- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java index f3eb5190319..682d1541f1f 100644 --- a/src/com/android/settings/network/SubscriptionUtil.java +++ b/src/com/android/settings/network/SubscriptionUtil.java @@ -919,15 +919,22 @@ public class SubscriptionUtil { SubscriptionManager.class); List allSubInofs = subscriptionManager.getAllSubscriptionInfoList(); for (SubscriptionInfo subInfo : allSubInofs) { - if (subInfo != null) { - if (com.android.internal.telephony.flags.Flags.supportPsimToEsimConversion() - && subInfo.getSubscriptionId() == subId - && !subInfo.isEmbedded() - && subInfo.getTransferStatus() == TRANSFER_STATUS_CONVERTED) { - return true; - } + if (subInfo != null && subInfo.getSubscriptionId() == subId + && isConvertedPsimSubscription(subInfo)) { + return true; } } return false; } + + /** + * Checks if the subscription is converted pSIM. + */ + public static boolean isConvertedPsimSubscription(@NonNull SubscriptionInfo subInfo) { + Log.d(TAG, "isConvertedPsimSubscription: isEmbedded " + subInfo.isEmbedded()); + Log.d(TAG, "isConvertedPsimSubscription: getTransferStatus " + subInfo.getTransferStatus()); + return com.android.internal.telephony.flags.Flags.supportPsimToEsimConversion() + && !subInfo.isEmbedded() + && subInfo.getTransferStatus() == TRANSFER_STATUS_CONVERTED; + } } diff --git a/src/com/android/settings/spa/network/SimsSection.kt b/src/com/android/settings/spa/network/SimsSection.kt index df92b37e0cb..5f6810d9f5d 100644 --- a/src/com/android/settings/spa/network/SimsSection.kt +++ b/src/com/android/settings/spa/network/SimsSection.kt @@ -28,6 +28,7 @@ import androidx.compose.material.icons.outlined.SimCard import androidx.compose.material.icons.outlined.SimCardDownload import androidx.compose.runtime.Composable import androidx.compose.runtime.State +import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource @@ -44,6 +45,7 @@ import com.android.settingslib.spa.widget.ui.SettingsIcon import com.android.settingslib.spaprivileged.model.enterprise.Restrictions import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference import com.android.settingslib.spaprivileged.template.preference.RestrictedTwoTargetSwitchPreference +import kotlinx.coroutines.flow.flow @Composable fun SimsSection(subscriptionInfoList: List) { @@ -63,11 +65,23 @@ private fun SimPreference(subInfo: SubscriptionInfo) { context.isSubscriptionEnabledFlow(subInfo.subscriptionId) }.collectAsStateWithLifecycle(initialValue = false) val phoneNumber = phoneNumber(subInfo) + val isConvertedPsim by remember(subInfo) { + flow { + emit(SubscriptionUtil.isConvertedPsimSubscription(subInfo)) + } + }.collectAsStateWithLifecycle(initialValue = false) RestrictedTwoTargetSwitchPreference( model = object : SwitchPreferenceModel { override val title = subInfo.displayName.toString() - override val summary = { phoneNumber.value ?: "" } + override val summary = { + if (isConvertedPsim) { + context.getString(R.string.sim_category_converted_sim) + } else { + phoneNumber.value ?: "" + } + } override val icon = @Composable { SimIcon(subInfo.isEmbedded) } + override val changeable = { !isConvertedPsim } override val checked = { checked.value } override val onCheckedChange = { newChecked: Boolean -> SubscriptionUtil.startToggleSubscriptionDialogActivity( @@ -78,6 +92,7 @@ private fun SimPreference(subInfo: SubscriptionInfo) { } }, restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)), + primaryEnabled = { !isConvertedPsim }, ) { MobileNetworkUtils.launchMobileNetworkSettings(context, subInfo) }