Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ae84662 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Check isConvertedPsimSubscription in new UI

Bug: 326896614
Test: manual test
Change-Id: I0d3c87a863f58a9e962fb87df5b8001be9edb767
parent 2ecc77ef
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -919,15 +919,22 @@ public class SubscriptionUtil {
                SubscriptionManager.class);
        List<SubscriptionInfo> 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) {
            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;
    }
}
+16 −1
Original line number Diff line number Diff line
@@ -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<SubscriptionInfo>) {
@@ -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)
    }