From 08e06a7775b661b063ada01fc5309594c7ee9e5c Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Wed, 13 Mar 2024 14:55:38 +0800 Subject: [PATCH] Improve the number on "Label SIM" page Bug: 318310357 Test: manual - on Mobile Settings Change-Id: I79149db550e8d84dd2104cbfd72e144dddeb81cd --- .../spa/network/SimOnboardingLabelSim.kt | 82 ++++++++++--------- .../settings/spa/network/SimsSection.kt | 13 ++- 2 files changed, 53 insertions(+), 42 deletions(-) diff --git a/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt index 3b2d5ec0d80..94e4a88ae5e 100644 --- a/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt +++ b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt @@ -16,6 +16,7 @@ package com.android.settings.spa.network +import android.telephony.SubscriptionInfo import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons @@ -63,52 +64,55 @@ fun SimOnboardingLabelSimImpl( cancelAction ), ) { - labelSimBody(onboardingService) + LabelSimBody(onboardingService) } } @Composable -private fun labelSimBody(onboardingService: SimOnboardingService) { +private fun LabelSimBody(onboardingService: SimOnboardingService) { Column(Modifier.padding(SettingsDimension.itemPadding)) { SettingsBody(stringResource(R.string.sim_onboarding_label_sim_msg)) } for (subInfo in onboardingService.getSelectableSubscriptionInfoList()) { - var titleSimName by remember { - mutableStateOf( - onboardingService.getSubscriptionInfoDisplayName(subInfo) - ) - } - var summaryNumber = subInfo.number - // TODO using the SubscriptionUtil.getFormattedPhoneNumber - val alertDialogPresenter = rememberAlertDialogPresenter( - confirmButton = AlertDialogButton( - stringResource(R.string.mobile_network_sim_name_rename) - ) { - onboardingService.addItemForRenaming(subInfo, titleSimName) - }, - dismissButton = AlertDialogButton(stringResource(R.string.cancel)) { - titleSimName = onboardingService.getSubscriptionInfoDisplayName(subInfo) - }, - title = stringResource(R.string.sim_onboarding_label_sim_dialog_title), - text = { - Text(summaryNumber, - modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical)) - SettingsOutlinedTextField( - value = titleSimName, - label = stringResource(R.string.sim_onboarding_label_sim_dialog_label), - enabled = true, - shape = MaterialTheme.shapes.extraLarge - ) { - titleSimName = it - } - }, - ) - Preference(object : PreferenceModel { - override val title = titleSimName - override val summary: () -> String - get() = { summaryNumber } - override val onClick = alertDialogPresenter::open - }) + LabelSimPreference(onboardingService, subInfo) } -} \ No newline at end of file +} + +@Composable +private fun LabelSimPreference( + onboardingService: SimOnboardingService, + subInfo: SubscriptionInfo, +) { + var titleSimName by remember { + mutableStateOf(onboardingService.getSubscriptionInfoDisplayName(subInfo)) + } + val phoneNumber = phoneNumber(subInfo) + val alertDialogPresenter = rememberAlertDialogPresenter( + confirmButton = AlertDialogButton(stringResource(R.string.mobile_network_sim_name_rename)) { + onboardingService.addItemForRenaming(subInfo, titleSimName) + }, + dismissButton = AlertDialogButton(stringResource(R.string.cancel)) { + titleSimName = onboardingService.getSubscriptionInfoDisplayName(subInfo) + }, + title = stringResource(R.string.sim_onboarding_label_sim_dialog_title), + text = { + Text( + phoneNumber.value ?: "", + modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical) + ) + SettingsOutlinedTextField( + value = titleSimName, + label = stringResource(R.string.sim_onboarding_label_sim_dialog_label), + shape = MaterialTheme.shapes.extraLarge + ) { + titleSimName = it + } + }, + ) + Preference(object : PreferenceModel { + override val title = titleSimName + override val summary = { phoneNumber.value ?: "" } + override val onClick = alertDialogPresenter::open + }) +} diff --git a/src/com/android/settings/spa/network/SimsSection.kt b/src/com/android/settings/spa/network/SimsSection.kt index 9e4cf9f4c12..0b638c45ae5 100644 --- a/src/com/android/settings/spa/network/SimsSection.kt +++ b/src/com/android/settings/spa/network/SimsSection.kt @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Add import androidx.compose.runtime.Composable +import androidx.compose.runtime.State import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource @@ -58,9 +59,7 @@ 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) + val phoneNumber = phoneNumber(subInfo) RestrictedTwoTargetSwitchPreference( model = object : SwitchPreferenceModel { override val title = subInfo.displayName.toString() @@ -80,6 +79,14 @@ private fun SimPreference(subInfo: SubscriptionInfo) { } } +@Composable +fun phoneNumber(subInfo: SubscriptionInfo): State { + val context = LocalContext.current + return remember(subInfo) { + context.phoneNumberFlow(subInfo) + }.collectAsStateWithLifecycle(initialValue = null) +} + @Composable private fun AddSim() { val context = LocalContext.current