From c8edb018a491c3f91c70ee5118e069f345947591 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Mon, 4 Mar 2024 13:52:18 +0800 Subject: [PATCH] Create phoneNumberFlow Bug: 318310357 Test: manual - on Mobile Settings Change-Id: Ib80b6c510ebd89650557240add23d914934ba6c9 --- .../settings/network/telephony/SubscriptionRepository.kt | 6 ++++++ src/com/android/settings/spa/network/SimsSection.kt | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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(