Create phoneNumberFlow
Bug: 318310357 Test: manual - on Mobile Settings Change-Id: Ib80b6c510ebd89650557240add23d914934ba6c9
This commit is contained in:
@@ -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)!!
|
||||
|
||||
|
@@ -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(
|
||||
|
Reference in New Issue
Block a user