Merge "Replace the bottomsheet with dialog" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
bf210b9834
@@ -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>
|
<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 -->
|
<!-- Strings for dual SIM onboarding -->
|
||||||
<!-- Title of dual sim onboarding's bottom sheets. [CHAR LIMIT=30] -->
|
<!-- Title of dual sim onboarding's dialog for starting. [CHAR LIMIT=30] -->
|
||||||
<string name="sim_onboarding_bottomsheets_title">Set up your SIM</string>
|
<string name="sim_onboarding_dialog_starting_title">Set your SIM preferences</string>
|
||||||
<!-- Body text of dual sim onboarding's bottom sheets. [CHAR LIMIT=NONE] -->
|
<!-- Body text of dual sim onboarding's dialog for starting. [CHAR LIMIT=NONE] -->
|
||||||
<string name="sim_onboarding_bottomsheets_msg">Set your mobile network preferences to use multiple SIMs on this device</string>
|
<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] -->
|
<!-- Title of dual sim onboarding's label sim page. [CHAR LIMIT=30] -->
|
||||||
<string name="sim_onboarding_label_sim_title">Label your SIMs</string>
|
<string name="sim_onboarding_label_sim_title">Label your SIMs</string>
|
||||||
<!-- Body text of dual sim onboarding's label sim page. [CHAR LIMIT=NONE] -->
|
<!-- 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>
|
<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] -->
|
<!-- 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] -->
|
<!-- Button on the dual sim onboarding to go to next page. [CHAR LIMIT=30] -->
|
||||||
<string name="sim_onboarding_next">Next</string>
|
<string name="sim_onboarding_next">Next</string>
|
||||||
<!-- Text on the progressbar of dual sim onboarding for turning sim on. [CHAR LIMIT=30] -->
|
<!-- Text on the progressbar of dual sim onboarding for turning sim on. [CHAR LIMIT=30] -->
|
||||||
|
@@ -31,16 +31,12 @@ import androidx.compose.material.icons.Icons
|
|||||||
import androidx.compose.material.icons.outlined.SignalCellularAlt
|
import androidx.compose.material.icons.outlined.SignalCellularAlt
|
||||||
import androidx.compose.material3.AlertDialogDefaults
|
import androidx.compose.material3.AlertDialogDefaults
|
||||||
import androidx.compose.material3.BasicAlertDialog
|
import androidx.compose.material3.BasicAlertDialog
|
||||||
import androidx.compose.material3.Button
|
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.ModalBottomSheet
|
|
||||||
import androidx.compose.material3.SheetState
|
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.rememberModalBottomSheetState
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
@@ -52,7 +48,6 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
import androidx.compose.ui.platform.LocalLifecycleOwner
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.SidecarFragment
|
import com.android.settings.SidecarFragment
|
||||||
import com.android.settings.network.telephony.SubscriptionActionDialogActivity
|
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.theme.SettingsDimension
|
||||||
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
|
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
|
||||||
import com.android.settingslib.spa.widget.dialog.AlertDialogButton
|
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.getDialogWidth
|
||||||
import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
|
import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
|
||||||
import com.android.settingslib.spa.widget.ui.SettingsTitle
|
import com.android.settingslib.spa.widget.ui.SettingsTitle
|
||||||
@@ -77,7 +73,7 @@ import kotlinx.coroutines.launch
|
|||||||
|
|
||||||
class SimOnboardingActivity : SpaBaseDialogActivity() {
|
class SimOnboardingActivity : SpaBaseDialogActivity() {
|
||||||
lateinit var scope: CoroutineScope
|
lateinit var scope: CoroutineScope
|
||||||
lateinit var showBottomSheet: MutableState<Boolean>
|
lateinit var showStartingDialog: MutableState<Boolean>
|
||||||
lateinit var showError: MutableState<ErrorType>
|
lateinit var showError: MutableState<ErrorType>
|
||||||
lateinit var showProgressDialog: MutableState<Boolean>
|
lateinit var showProgressDialog: MutableState<Boolean>
|
||||||
lateinit var showDsdsProgressDialog: MutableState<Boolean>
|
lateinit var showDsdsProgressDialog: MutableState<Boolean>
|
||||||
@@ -138,7 +134,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CallbackType.CALLBACK_ONBOARDING_COMPLETE -> {
|
CallbackType.CALLBACK_ONBOARDING_COMPLETE -> {
|
||||||
showBottomSheet.value = false
|
showStartingDialog.value = false
|
||||||
setProgressDialog(true)
|
setProgressDialog(true)
|
||||||
scope.launch {
|
scope.launch {
|
||||||
// TODO: refactor the Sidecar
|
// TODO: refactor the Sidecar
|
||||||
@@ -181,7 +177,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
override fun Content() {
|
override fun Content() {
|
||||||
showBottomSheet = remember { mutableStateOf(false) }
|
showStartingDialog = remember { mutableStateOf(false) }
|
||||||
showError = remember { mutableStateOf(ErrorType.ERROR_NONE) }
|
showError = remember { mutableStateOf(ErrorType.ERROR_NONE) }
|
||||||
showProgressDialog = remember { mutableStateOf(false) }
|
showProgressDialog = remember { mutableStateOf(false) }
|
||||||
showDsdsProgressDialog = remember { mutableStateOf(false) }
|
showDsdsProgressDialog = remember { mutableStateOf(false) }
|
||||||
@@ -194,14 +190,12 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
RestartDialogImpl()
|
RestartDialogImpl()
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
if (onboardingService.activeSubInfoList.isNotEmpty()) {
|
if (onboardingService.activeSubInfoList.isNotEmpty()) {
|
||||||
showBottomSheet.value = true
|
showStartingDialog.value = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showBottomSheet.value) {
|
if (showStartingDialog.value) {
|
||||||
var sheetState = rememberModalBottomSheetState()
|
StartingDialogImpl(
|
||||||
BottomSheetImpl(
|
|
||||||
sheetState = sheetState,
|
|
||||||
nextAction = {
|
nextAction = {
|
||||||
if (onboardingService.isDsdsConditionSatisfied()) {
|
if (onboardingService.isDsdsConditionSatisfied()) {
|
||||||
// TODO: if the phone is SS mode and the isDsdsConditionSatisfied is true,
|
// TODO: if the phone is SS mode and the isDsdsConditionSatisfied is true,
|
||||||
@@ -468,9 +462,23 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BottomSheetBody(nextAction: () -> Unit) {
|
fun StartingDialogImpl(
|
||||||
Column(horizontalAlignment = Alignment.CenterHorizontally,
|
nextAction: () -> Unit,
|
||||||
modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical)) {
|
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(
|
Icon(
|
||||||
imageVector = Icons.Outlined.SignalCellularAlt,
|
imageVector = Icons.Outlined.SignalCellularAlt,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
@@ -478,38 +486,15 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
.size(SettingsDimension.iconLarge),
|
.size(SettingsDimension.iconLarge),
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
SettingsTitle(stringResource(R.string.sim_onboarding_bottomsheets_title))
|
},
|
||||||
Column(Modifier.padding(SettingsDimension.itemPadding)) {
|
text = {
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.sim_onboarding_bottomsheets_msg),
|
stringResource(R.string.sim_onboarding_dialog_starting_msg),
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
modifier = Modifier.fillMaxWidth(),
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
|
||||||
overflow = TextOverflow.Ellipsis,
|
|
||||||
textAlign = TextAlign.Center
|
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) {
|
fun setProgressState(state: Int) {
|
||||||
|
Reference in New Issue
Block a user