Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08e06a77 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Improve the number on "Label SIM" page

Bug: 318310357
Test: manual - on Mobile Settings
Change-Id: I79149db550e8d84dd2104cbfd72e144dddeb81cd
parent 8cad1172
Loading
Loading
Loading
Loading
+42 −38
Original line number Diff line number Diff line
@@ -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,28 +64,32 @@ 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()) {
        LabelSimPreference(onboardingService, subInfo)
    }
}

@Composable
private fun LabelSimPreference(
    onboardingService: SimOnboardingService,
    subInfo: SubscriptionInfo,
) {
    var titleSimName by remember {
            mutableStateOf(
                onboardingService.getSubscriptionInfoDisplayName(subInfo)
            )
        mutableStateOf(onboardingService.getSubscriptionInfoDisplayName(subInfo))
    }
        var summaryNumber = subInfo.number
            // TODO using the SubscriptionUtil.getFormattedPhoneNumber
    val phoneNumber = phoneNumber(subInfo)
    val alertDialogPresenter = rememberAlertDialogPresenter(
            confirmButton = AlertDialogButton(
                stringResource(R.string.mobile_network_sim_name_rename)
            ) {
        confirmButton = AlertDialogButton(stringResource(R.string.mobile_network_sim_name_rename)) {
            onboardingService.addItemForRenaming(subInfo, titleSimName)
        },
        dismissButton = AlertDialogButton(stringResource(R.string.cancel)) {
@@ -92,12 +97,13 @@ private fun labelSimBody(onboardingService: SimOnboardingService) {
        },
        title = stringResource(R.string.sim_onboarding_label_sim_dialog_title),
        text = {
                Text(summaryNumber,
                    modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical))
            Text(
                phoneNumber.value ?: "",
                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
@@ -106,9 +112,7 @@ private fun labelSimBody(onboardingService: SimOnboardingService) {
    )
    Preference(object : PreferenceModel {
        override val title = titleSimName
            override val summary: () -> String
                get() = { summaryNumber }
        override val summary = { phoneNumber.value ?: "" }
        override val onClick = alertDialogPresenter::open
    })
}
}
 No newline at end of file
+10 −3
Original line number Diff line number Diff line
@@ -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<String?> {
    val context = LocalContext.current
    return remember(subInfo) {
        context.phoneNumberFlow(subInfo)
    }.collectAsStateWithLifecycle(initialValue = null)
}

@Composable
private fun AddSim() {
    val context = LocalContext.current