diff --git a/src/com/android/settings/network/telephony/SubscriptionRepository.kt b/src/com/android/settings/network/telephony/SubscriptionRepository.kt index 9a462727bb6..e44b577de02 100644 --- a/src/com/android/settings/network/telephony/SubscriptionRepository.kt +++ b/src/com/android/settings/network/telephony/SubscriptionRepository.kt @@ -17,8 +17,10 @@ package com.android.settings.network.telephony import android.content.Context +import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager import android.util.Log +import com.android.settings.network.SubscriptionUtil import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.asExecutor import kotlinx.coroutines.channels.awaitClose @@ -36,6 +38,10 @@ fun Context.isSubscriptionEnabledFlow(subId: Int) = subscriptionsChangedFlow().m subscriptionManager?.isSubscriptionEnabled(subId) ?: false }.flowOn(Dispatchers.Default) +fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo) = subscriptionsChangedFlow().map { + SubscriptionUtil.getFormattedPhoneNumber(this, subscriptionInfo) +}.flowOn(Dispatchers.Default) + fun Context.subscriptionsChangedFlow() = callbackFlow { val subscriptionManager = getSystemService(SubscriptionManager::class.java)!! diff --git a/src/com/android/settings/spa/network/SimsSection.kt b/src/com/android/settings/spa/network/SimsSection.kt index cc8a5d1c527..334ca61bc9b 100644 --- a/src/com/android/settings/spa/network/SimsSection.kt +++ b/src/com/android/settings/spa/network/SimsSection.kt @@ -33,6 +33,7 @@ import com.android.settings.R import com.android.settings.network.SubscriptionUtil import com.android.settings.network.telephony.MobileNetworkUtils import com.android.settings.network.telephony.isSubscriptionEnabledFlow +import com.android.settings.network.telephony.phoneNumberFlow import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference @@ -57,11 +58,14 @@ private fun SimPreference(subInfo: SubscriptionInfo) { val checked = remember(subInfo.subscriptionId) { context.isSubscriptionEnabledFlow(subInfo.subscriptionId) }.collectAsStateWithLifecycle(initialValue = false) + val phoneNumber = remember(subInfo) { + context.phoneNumberFlow(subInfo) + }.collectAsStateWithLifecycle(initialValue = null) //TODO: Add the Restricted TwoTargetSwitchPreference in SPA TwoTargetSwitchPreference( object : SwitchPreferenceModel { override val title = subInfo.displayName.toString() - override val summary = { subInfo.number } + override val summary = { phoneNumber.value ?: "" } override val checked = { checked.value } override val onCheckedChange = { newChecked: Boolean -> SubscriptionUtil.startToggleSubscriptionDialogActivity(