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

Commit bf210b98 authored by SongFerng Wang's avatar SongFerng Wang Committed by Android (Google) Code Review
Browse files

Merge "Replace the bottomsheet with dialog" into main

parents f5d8f4af 0dbe9799
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -11778,10 +11778,10 @@
    <string name="dsds_activation_failure_body_msg2">Try turning on the SIM again. If the problem continues, restart your device.</string>
    <!-- Strings for dual SIM onboarding -->
    <!-- Title of dual sim onboarding's bottom sheets. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_bottomsheets_title">Set up your SIM</string>
    <!-- Body text of dual sim onboarding's bottom sheets. [CHAR LIMIT=NONE] -->
    <string name="sim_onboarding_bottomsheets_msg">Set your mobile network preferences to use multiple SIMs on this device</string>
    <!-- Title of dual sim onboarding's dialog for starting. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_dialog_starting_title">Set your SIM preferences</string>
    <!-- Body text of dual sim onboarding's dialog for starting. [CHAR LIMIT=NONE] -->
    <string name="sim_onboarding_dialog_starting_msg">Set your mobile network preferences to use multiple SIMs on this device</string>
    <!-- Title of dual sim onboarding's label sim page. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_label_sim_title">Label your SIMs</string>
    <!-- Body text of dual sim onboarding's label sim page. [CHAR LIMIT=NONE] -->
@@ -11822,7 +11822,9 @@
    <string name="sim_onboarding_phoneNumber_data_only">Data only</string>
    <!-- Button on the dual sim onboarding to start to set up sim. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_setup">Set up</string>
    <string name="sim_onboarding_setup">Get started</string>
    <!-- button on the dual sim onboarding dialog for closing dialog. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_close">Close</string>
    <!-- Button on the dual sim onboarding to go to next page. [CHAR LIMIT=30] -->
    <string name="sim_onboarding_next">Next</string>
    <!-- Text on the progressbar of dual sim onboarding for turning sim on. [CHAR LIMIT=30] -->
+36 −51
Original line number Diff line number Diff line
@@ -31,16 +31,12 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.SignalCellularAlt
import androidx.compose.material3.AlertDialogDefaults
import androidx.compose.material3.BasicAlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.SheetState
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableState
@@ -52,7 +48,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import com.android.settings.R
import com.android.settings.SidecarFragment
import com.android.settings.network.telephony.SubscriptionActionDialogActivity
@@ -63,6 +58,7 @@ import com.android.settingslib.spa.SpaBaseDialogActivity
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import com.android.settingslib.spa.widget.dialog.AlertDialogButton
import com.android.settingslib.spa.widget.dialog.SettingsAlertDialogWithIcon
import com.android.settingslib.spa.widget.dialog.getDialogWidth
import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
import com.android.settingslib.spa.widget.ui.SettingsTitle
@@ -77,7 +73,7 @@ import kotlinx.coroutines.launch

class SimOnboardingActivity : SpaBaseDialogActivity() {
    lateinit var scope: CoroutineScope
    lateinit var showBottomSheet: MutableState<Boolean>
    lateinit var showStartingDialog: MutableState<Boolean>
    lateinit var showError: MutableState<ErrorType>
    lateinit var showProgressDialog: MutableState<Boolean>
    lateinit var showDsdsProgressDialog: MutableState<Boolean>
@@ -138,7 +134,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
            }

            CallbackType.CALLBACK_ONBOARDING_COMPLETE -> {
                showBottomSheet.value = false
                showStartingDialog.value = false
                setProgressDialog(true)
                scope.launch {
                    // TODO: refactor the Sidecar
@@ -181,7 +177,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
    @OptIn(ExperimentalMaterial3Api::class)
    @Composable
    override fun Content() {
        showBottomSheet = remember { mutableStateOf(false) }
        showStartingDialog = remember { mutableStateOf(false) }
        showError = remember { mutableStateOf(ErrorType.ERROR_NONE) }
        showProgressDialog = remember { mutableStateOf(false) }
        showDsdsProgressDialog = remember { mutableStateOf(false) }
@@ -194,14 +190,12 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
        RestartDialogImpl()
        LaunchedEffect(Unit) {
            if (onboardingService.activeSubInfoList.isNotEmpty()) {
                showBottomSheet.value = true
                showStartingDialog.value = true
            }
        }

        if (showBottomSheet.value) {
            var sheetState = rememberModalBottomSheetState()
            BottomSheetImpl(
                sheetState = sheetState,
        if (showStartingDialog.value) {
            StartingDialogImpl(
                nextAction = {
                    if (onboardingService.isDsdsConditionSatisfied()) {
                        // TODO: if the phone is SS mode and the isDsdsConditionSatisfied is true,
@@ -468,9 +462,23 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
    }

    @Composable
    fun BottomSheetBody(nextAction: () -> Unit) {
        Column(horizontalAlignment = Alignment.CenterHorizontally,
            modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical)) {
    fun StartingDialogImpl(
        nextAction: () -> Unit,
        cancelAction: () -> Unit,
    ) {
        SettingsAlertDialogWithIcon(
            onDismissRequest = cancelAction,
            confirmButton = AlertDialogButton(
                getString(R.string.sim_onboarding_setup),
                nextAction
            ),
            dismissButton =
                AlertDialogButton(
                    getString(R.string.sim_onboarding_close),
                    cancelAction
                ),
            title = stringResource(R.string.sim_onboarding_dialog_starting_title),
            icon = {
                Icon(
                    imageVector = Icons.Outlined.SignalCellularAlt,
                    contentDescription = null,
@@ -478,38 +486,15 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
                        .size(SettingsDimension.iconLarge),
                    tint = MaterialTheme.colorScheme.primary,
                )
            SettingsTitle(stringResource(R.string.sim_onboarding_bottomsheets_title))
            Column(Modifier.padding(SettingsDimension.itemPadding)) {
            },
            text = {
                Text(
                    text = stringResource(R.string.sim_onboarding_bottomsheets_msg),
                    color = MaterialTheme.colorScheme.onSurfaceVariant,
                    style = MaterialTheme.typography.bodyMedium,
                    overflow = TextOverflow.Ellipsis,
                    stringResource(R.string.sim_onboarding_dialog_starting_msg),
                    modifier = Modifier.fillMaxWidth(),
                    textAlign = TextAlign.Center
                )
            }
            Button(onClick = nextAction) {
                Text(stringResource(R.string.sim_onboarding_setup))
            }
        }
    }
            })

    @OptIn(ExperimentalMaterial3Api::class)
    @Composable
    fun BottomSheetImpl(
        sheetState: SheetState,
        nextAction: () -> Unit,
        cancelAction: () -> Unit,
    ) {
        ModalBottomSheet(
            onDismissRequest = cancelAction,
            sheetState = sheetState,
        ) {
            BottomSheetBody(nextAction = nextAction)
        }
        LaunchedEffect(Unit) {
            sheetState.show()
        }
    }

    fun setProgressState(state: Int) {