Check isConvertedPsimSubscription in new UI

Bug: 326896614
Test: manual test
Change-Id: I0d3c87a863f58a9e962fb87df5b8001be9edb767
This commit is contained in:
Chaohui Wang
2024-04-22 12:49:40 +08:00
parent 2ecc77ef08
commit 5ae84662b5
2 changed files with 30 additions and 8 deletions

View File

@@ -919,15 +919,22 @@ public class SubscriptionUtil {
SubscriptionManager.class); SubscriptionManager.class);
List<SubscriptionInfo> allSubInofs = subscriptionManager.getAllSubscriptionInfoList(); List<SubscriptionInfo> allSubInofs = subscriptionManager.getAllSubscriptionInfoList();
for (SubscriptionInfo subInfo : allSubInofs) { for (SubscriptionInfo subInfo : allSubInofs) {
if (subInfo != null) { if (subInfo != null && subInfo.getSubscriptionId() == subId
if (com.android.internal.telephony.flags.Flags.supportPsimToEsimConversion() && isConvertedPsimSubscription(subInfo)) {
&& subInfo.getSubscriptionId() == subId return true;
&& !subInfo.isEmbedded()
&& subInfo.getTransferStatus() == TRANSFER_STATUS_CONVERTED) {
return true;
}
} }
} }
return false; 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;
}
} }

View File

@@ -28,6 +28,7 @@ import androidx.compose.material.icons.outlined.SimCard
import androidx.compose.material.icons.outlined.SimCardDownload import androidx.compose.material.icons.outlined.SimCardDownload
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.State import androidx.compose.runtime.State
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource 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.model.enterprise.Restrictions
import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference
import com.android.settingslib.spaprivileged.template.preference.RestrictedTwoTargetSwitchPreference import com.android.settingslib.spaprivileged.template.preference.RestrictedTwoTargetSwitchPreference
import kotlinx.coroutines.flow.flow
@Composable @Composable
fun SimsSection(subscriptionInfoList: List<SubscriptionInfo>) { fun SimsSection(subscriptionInfoList: List<SubscriptionInfo>) {
@@ -63,11 +65,23 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
context.isSubscriptionEnabledFlow(subInfo.subscriptionId) context.isSubscriptionEnabledFlow(subInfo.subscriptionId)
}.collectAsStateWithLifecycle(initialValue = false) }.collectAsStateWithLifecycle(initialValue = false)
val phoneNumber = phoneNumber(subInfo) val phoneNumber = phoneNumber(subInfo)
val isConvertedPsim by remember(subInfo) {
flow {
emit(SubscriptionUtil.isConvertedPsimSubscription(subInfo))
}
}.collectAsStateWithLifecycle(initialValue = false)
RestrictedTwoTargetSwitchPreference( RestrictedTwoTargetSwitchPreference(
model = object : SwitchPreferenceModel { model = object : SwitchPreferenceModel {
override val title = subInfo.displayName.toString() 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 icon = @Composable { SimIcon(subInfo.isEmbedded) }
override val changeable = { !isConvertedPsim }
override val checked = { checked.value } override val checked = { checked.value }
override val onCheckedChange = { newChecked: Boolean -> override val onCheckedChange = { newChecked: Boolean ->
SubscriptionUtil.startToggleSubscriptionDialogActivity( SubscriptionUtil.startToggleSubscriptionDialogActivity(
@@ -78,6 +92,7 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
} }
}, },
restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)), restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)),
primaryEnabled = { !isConvertedPsim },
) { ) {
MobileNetworkUtils.launchMobileNetworkSettings(context, subInfo) MobileNetworkUtils.launchMobileNetworkSettings(context, subInfo)
} }