Loading res/values/strings.xml +7 −5 Original line number Diff line number Diff line Loading @@ -11700,10 +11700,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] --> Loading Loading @@ -11744,7 +11744,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] --> src/com/android/settings/network/SimOnboardingActivity.kt +36 −51 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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> Loading Loading @@ -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 Loading Loading @@ -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) } Loading @@ -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, Loading Loading @@ -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, Loading @@ -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) { Loading Loading
res/values/strings.xml +7 −5 Original line number Diff line number Diff line Loading @@ -11700,10 +11700,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] --> Loading Loading @@ -11744,7 +11744,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] -->
src/com/android/settings/network/SimOnboardingActivity.kt +36 −51 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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> Loading Loading @@ -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 Loading Loading @@ -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) } Loading @@ -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, Loading Loading @@ -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, Loading @@ -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) { Loading