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
|
package com.android.settings.network.telephony
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.telephony.SubscriptionInfo
|
||||||
import android.telephony.SubscriptionManager
|
import android.telephony.SubscriptionManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import com.android.settings.network.SubscriptionUtil
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.asExecutor
|
import kotlinx.coroutines.asExecutor
|
||||||
import kotlinx.coroutines.channels.awaitClose
|
import kotlinx.coroutines.channels.awaitClose
|
||||||
@@ -36,6 +38,10 @@ fun Context.isSubscriptionEnabledFlow(subId: Int) = subscriptionsChangedFlow().m
|
|||||||
subscriptionManager?.isSubscriptionEnabled(subId) ?: false
|
subscriptionManager?.isSubscriptionEnabled(subId) ?: false
|
||||||
}.flowOn(Dispatchers.Default)
|
}.flowOn(Dispatchers.Default)
|
||||||
|
|
||||||
|
fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo) = subscriptionsChangedFlow().map {
|
||||||
|
SubscriptionUtil.getFormattedPhoneNumber(this, subscriptionInfo)
|
||||||
|
}.flowOn(Dispatchers.Default)
|
||||||
|
|
||||||
fun Context.subscriptionsChangedFlow() = callbackFlow {
|
fun Context.subscriptionsChangedFlow() = callbackFlow {
|
||||||
val subscriptionManager = getSystemService(SubscriptionManager::class.java)!!
|
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.SubscriptionUtil
|
||||||
import com.android.settings.network.telephony.MobileNetworkUtils
|
import com.android.settings.network.telephony.MobileNetworkUtils
|
||||||
import com.android.settings.network.telephony.isSubscriptionEnabledFlow
|
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.PreferenceModel
|
||||||
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
|
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
|
||||||
import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference
|
import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference
|
||||||
@@ -57,11 +58,14 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
|
|||||||
val checked = remember(subInfo.subscriptionId) {
|
val checked = remember(subInfo.subscriptionId) {
|
||||||
context.isSubscriptionEnabledFlow(subInfo.subscriptionId)
|
context.isSubscriptionEnabledFlow(subInfo.subscriptionId)
|
||||||
}.collectAsStateWithLifecycle(initialValue = false)
|
}.collectAsStateWithLifecycle(initialValue = false)
|
||||||
|
val phoneNumber = remember(subInfo) {
|
||||||
|
context.phoneNumberFlow(subInfo)
|
||||||
|
}.collectAsStateWithLifecycle(initialValue = null)
|
||||||
//TODO: Add the Restricted TwoTargetSwitchPreference in SPA
|
//TODO: Add the Restricted TwoTargetSwitchPreference in SPA
|
||||||
TwoTargetSwitchPreference(
|
TwoTargetSwitchPreference(
|
||||||
object : SwitchPreferenceModel {
|
object : SwitchPreferenceModel {
|
||||||
override val title = subInfo.displayName.toString()
|
override val title = subInfo.displayName.toString()
|
||||||
override val summary = { subInfo.number }
|
override val summary = { phoneNumber.value ?: "" }
|
||||||
override val checked = { checked.value }
|
override val checked = { checked.value }
|
||||||
override val onCheckedChange = { newChecked: Boolean ->
|
override val onCheckedChange = { newChecked: Boolean ->
|
||||||
SubscriptionUtil.startToggleSubscriptionDialogActivity(
|
SubscriptionUtil.startToggleSubscriptionDialogActivity(
|
||||||
|
Reference in New Issue
Block a user