Check isActivationChangeableFlow in SimPreference

Fix: 336209156
Test: manual - SimPreference
Change-Id: I8745e05dbab9701b9c046137fe76d98880a7b20a
This commit is contained in:
Chaohui Wang
2024-04-30 16:25:00 +08:00
parent 72ba6ec2ca
commit 377a7a3054

View File

@@ -37,6 +37,7 @@ import com.android.settings.R
import com.android.settings.Utils import com.android.settings.Utils
import com.android.settings.network.SubscriptionUtil import com.android.settings.network.SubscriptionUtil
import com.android.settings.network.telephony.MobileNetworkUtils import com.android.settings.network.telephony.MobileNetworkUtils
import com.android.settings.network.telephony.SubscriptionActivationRepository
import com.android.settings.network.telephony.isSubscriptionEnabledFlow import com.android.settings.network.telephony.isSubscriptionEnabledFlow
import com.android.settings.network.telephony.phoneNumberFlow import com.android.settings.network.telephony.phoneNumberFlow
import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -70,6 +71,9 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
emit(SubscriptionUtil.isConvertedPsimSubscription(subInfo)) emit(SubscriptionUtil.isConvertedPsimSubscription(subInfo))
} }
}.collectAsStateWithLifecycle(initialValue = false) }.collectAsStateWithLifecycle(initialValue = false)
val isActivationChangeable by remember {
SubscriptionActivationRepository(context).isActivationChangeableFlow()
}.collectAsStateWithLifecycle(initialValue = false)
RestrictedTwoTargetSwitchPreference( RestrictedTwoTargetSwitchPreference(
model = object : SwitchPreferenceModel { model = object : SwitchPreferenceModel {
override val title = subInfo.displayName.toString() override val title = subInfo.displayName.toString()
@@ -81,7 +85,7 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
} }
} }
override val icon = @Composable { SimIcon(subInfo.isEmbedded) } override val icon = @Composable { SimIcon(subInfo.isEmbedded) }
override val changeable = { !isConvertedPsim } override val changeable = { isActivationChangeable && !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(