Loading src/com/android/settings/network/SimOnboardingActivity.kt +89 −25 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope Loading @@ -63,7 +64,10 @@ import com.android.settings.spa.network.SimOnboardingPageProvider.getRoute 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.getDialogWidth import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField import com.android.settingslib.spa.widget.ui.SettingsTitle import com.android.settingslib.spaprivileged.framework.common.userManager import kotlinx.coroutines.CoroutineScope Loading @@ -77,7 +81,7 @@ import kotlinx.coroutines.launch class SimOnboardingActivity : SpaBaseDialogActivity() { lateinit var scope: CoroutineScope lateinit var showBottomSheet: MutableState<Boolean> lateinit var showError: MutableState<Boolean> lateinit var showError: MutableState<ErrorType> lateinit var showProgressDialog: MutableState<Boolean> private var switchToEuiccSubscriptionSidecar: SwitchToEuiccSubscriptionSidecar? = null Loading Loading @@ -121,15 +125,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { super.finish() } var callbackListener: (Int) -> Unit = { var callbackListener: (CallbackType) -> Unit = { Log.d(TAG, "Receive the CALLBACK: $it") when (it) { CALLBACK_ERROR -> { CallbackType.CALLBACK_ERROR -> { setProgressDialog(false) showError.value = true } CALLBACK_ONBOARDING_COMPLETE -> { CallbackType.CALLBACK_ONBOARDING_COMPLETE -> { showBottomSheet.value = false setProgressDialog(true) scope.launch { Loading @@ -139,19 +142,19 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } } CALLBACK_SETUP_NAME -> { CallbackType.CALLBACK_SETUP_NAME -> { scope.launch { onboardingService.startSetupName() } } CALLBACK_SETUP_PRIMARY_SIM -> { CallbackType.CALLBACK_SETUP_PRIMARY_SIM -> { scope.launch { onboardingService.startSetupPrimarySim(this@SimOnboardingActivity) } } CALLBACK_FINISH -> { CallbackType.CALLBACK_FINISH -> { finish() } } Loading @@ -174,16 +177,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { @Composable override fun Content() { showBottomSheet = remember { mutableStateOf(false) } showError = remember { mutableStateOf(false) } showError = remember { mutableStateOf(ErrorType.ERROR_NONE) } showProgressDialog = remember { mutableStateOf(false) } scope = rememberCoroutineScope() registerSidecarReceiverFlow() if(showError.value){ // show error return } ErrorDialogImpl() LaunchedEffect(Unit) { if (onboardingService.activeSubInfoList.isNotEmpty()) { showBottomSheet.value = true Loading Loading @@ -250,6 +251,56 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } } @Composable fun ErrorDialogImpl(){ // EuiccSlotSidecar showErrorDialog val errorDialogPresenterForEuiccSlotSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.privileged_action_disable_fail_title), text = { Text(stringResource(R.string.privileged_action_disable_fail_text)) }, ) // RemovableSlotSidecar showErrorDialog val errorDialogPresenterForRemovableSlotSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.sim_action_enable_sim_fail_title), text = { Text(stringResource(R.string.sim_action_enable_sim_fail_text)) }, ) // enableDSDS showErrorDialog val errorDialogPresenterForMultiSimSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.dsds_activation_failure_title), text = { Text(stringResource(R.string.dsds_activation_failure_body_msg2)) }, ) // show error when (showError.value) { ErrorType.ERROR_EUICC_SLOT -> errorDialogPresenterForEuiccSlotSidecar.open() ErrorType.ERROR_REMOVABLE_SLOT -> errorDialogPresenterForRemovableSlotSidecar.open() ErrorType.ERROR_ENABLE_DSDS -> errorDialogPresenterForMultiSimSidecar.open() else -> {} } } @Composable fun registerSidecarReceiverFlow(){ switchToEuiccSubscriptionSidecar?.sidecarReceiverFlow() Loading Loading @@ -317,13 +368,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { SidecarFragment.State.SUCCESS -> { Log.i(TAG, "Successfully enable the eSIM profile.") switchToEuiccSubscriptionSidecar!!.reset() callbackListener(CALLBACK_SETUP_NAME) callbackListener(CallbackType.CALLBACK_SETUP_NAME) } SidecarFragment.State.ERROR -> { Log.i(TAG, "Failed to enable the eSIM profile.") switchToEuiccSubscriptionSidecar!!.reset() callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_EUICC_SLOT callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using privileged_action_disable_fail_title and // privileged_action_disable_fail_text } Loading @@ -336,13 +388,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { Log.i(TAG, "Successfully switched to removable slot.") switchToRemovableSlotSidecar!!.reset() onboardingService.handleTogglePsimAction() callbackListener(CALLBACK_SETUP_NAME) callbackListener(CallbackType.CALLBACK_SETUP_NAME) } SidecarFragment.State.ERROR -> { Log.e(TAG, "Failed switching to removable slot.") switchToRemovableSlotSidecar!!.reset() callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_REMOVABLE_SLOT callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using sim_action_enable_sim_fail_title and // sim_action_enable_sim_fail_text } Loading @@ -360,7 +413,8 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { SidecarFragment.State.ERROR -> { enableMultiSimSidecar!!.reset() Log.i(TAG, "Failed to switch to DSDS without rebooting.") callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_ENABLE_DSDS callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using dsds_activation_failure_title and // dsds_activation_failure_body_msg2 } Loading @@ -383,7 +437,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } Log.i(TAG, "DSDS enabled, start to enable pSIM profile.") onboardingService.handleTogglePsimAction() callbackListener(CALLBACK_FINISH) callbackListener(CallbackType.CALLBACK_FINISH) } @Composable Loading Loading @@ -439,7 +493,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { Log.i(TAG, "setProgressState:$state") } fun initServiceData(context: Context,targetSubId: Int, callback:(Int)->Unit) { fun initServiceData(context: Context,targetSubId: Int, callback:(CallbackType)->Unit) { onboardingService.initData(targetSubId, context,callback) } Loading @@ -458,10 +512,20 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { var onboardingService:SimOnboardingService = SimOnboardingService() const val TAG = "SimOnboardingActivity" const val SUB_ID = "sub_id" const val CALLBACK_ERROR = -1 const val CALLBACK_ONBOARDING_COMPLETE = 1 const val CALLBACK_SETUP_NAME = 2 const val CALLBACK_SETUP_PRIMARY_SIM = 3 const val CALLBACK_FINISH = 4 enum class ErrorType(val value:Int){ ERROR_NONE(-1), ERROR_EUICC_SLOT(1), ERROR_REMOVABLE_SLOT(2), ERROR_ENABLE_DSDS(3) } enum class CallbackType(val value:Int){ CALLBACK_ERROR(-1), CALLBACK_ONBOARDING_COMPLETE(1), CALLBACK_SETUP_NAME(2), CALLBACK_SETUP_PRIMARY_SIM(3), CALLBACK_FINISH(4) } } } No newline at end of file src/com/android/settings/network/SimOnboardingService.kt +8 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.telephony.TelephonyManager import android.telephony.UiccCardInfo import android.telephony.UiccSlotInfo import android.util.Log import com.android.settings.network.SimOnboardingActivity.Companion.CallbackType import com.android.settings.spa.network.setAutomaticData import com.android.settings.spa.network.setDefaultData import com.android.settings.spa.network.setDefaultSms Loading @@ -31,7 +32,6 @@ import com.android.settingslib.utils.ThreadUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext private const val TAG = "SimOnboardingService" private const val INVALID = SubscriptionManager.INVALID_SUBSCRIPTION_ID Loading Loading @@ -60,7 +60,7 @@ class SimOnboardingService { .map { it.subscriptionId } .firstOrNull() ?: SubscriptionManager.INVALID_SUBSCRIPTION_ID } var callback: (Int) -> Unit = {} var callback: (CallbackType) -> Unit = {} var isMultipleEnabledProfilesSupported: Boolean = false get() { Loading Loading @@ -135,7 +135,9 @@ class SimOnboardingService { userSelectedSubInfoList.clear() } fun initData(inputTargetSubId:Int,context: Context, callback: (Int) -> Unit) { fun initData(inputTargetSubId: Int, context: Context, callback: (CallbackType) -> Unit) { this.callback = callback targetSubId = inputTargetSubId subscriptionManager = context.getSystemService(SubscriptionManager::class.java) Loading Loading @@ -261,7 +263,7 @@ class SimOnboardingService { fun startActivatingSim(){ // TODO: start to activate sim callback(SimOnboardingActivity.CALLBACK_FINISH) callback(CallbackType.CALLBACK_FINISH) } suspend fun startSetupName() { Loading @@ -273,7 +275,7 @@ class SimOnboardingService { ) } // next action is SETUP_PRIMARY_SIM callback(SimOnboardingActivity.CALLBACK_SETUP_PRIMARY_SIM) callback(CallbackType.CALLBACK_SETUP_PRIMARY_SIM) } } Loading Loading @@ -302,7 +304,7 @@ class SimOnboardingService { } // no next action, send finish callback(SimOnboardingActivity.CALLBACK_FINISH) callback(CallbackType.CALLBACK_FINISH) } } } No newline at end of file src/com/android/settings/spa/network/SimOnboardingPageProvider.kt +3 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import com.android.settings.R import com.android.settings.network.SimOnboardingActivity import com.android.settings.network.SimOnboardingActivity.Companion.CallbackType import com.android.settings.network.SimOnboardingService import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPageProvider Loading Loading @@ -93,7 +94,7 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo val context = LocalContext.current var finishOnboarding: () -> Unit = { context.getActivity()?.finish() onboardingService.callback(SimOnboardingActivity.CALLBACK_FINISH) onboardingService.callback(CallbackType.CALLBACK_FINISH) } NavHost( Loading @@ -120,7 +121,7 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo composable(route = SimOnboardingScreen.PrimarySim.name) { SimOnboardingPrimarySimImpl( nextAction = { onboardingService.callback(SimOnboardingActivity.CALLBACK_ONBOARDING_COMPLETE) onboardingService.callback(CallbackType.CALLBACK_ONBOARDING_COMPLETE) context.getActivity()?.finish() }, cancelAction = finishOnboarding, Loading Loading
src/com/android/settings/network/SimOnboardingActivity.kt +89 −25 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope Loading @@ -63,7 +64,10 @@ import com.android.settings.spa.network.SimOnboardingPageProvider.getRoute 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.getDialogWidth import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField import com.android.settingslib.spa.widget.ui.SettingsTitle import com.android.settingslib.spaprivileged.framework.common.userManager import kotlinx.coroutines.CoroutineScope Loading @@ -77,7 +81,7 @@ import kotlinx.coroutines.launch class SimOnboardingActivity : SpaBaseDialogActivity() { lateinit var scope: CoroutineScope lateinit var showBottomSheet: MutableState<Boolean> lateinit var showError: MutableState<Boolean> lateinit var showError: MutableState<ErrorType> lateinit var showProgressDialog: MutableState<Boolean> private var switchToEuiccSubscriptionSidecar: SwitchToEuiccSubscriptionSidecar? = null Loading Loading @@ -121,15 +125,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { super.finish() } var callbackListener: (Int) -> Unit = { var callbackListener: (CallbackType) -> Unit = { Log.d(TAG, "Receive the CALLBACK: $it") when (it) { CALLBACK_ERROR -> { CallbackType.CALLBACK_ERROR -> { setProgressDialog(false) showError.value = true } CALLBACK_ONBOARDING_COMPLETE -> { CallbackType.CALLBACK_ONBOARDING_COMPLETE -> { showBottomSheet.value = false setProgressDialog(true) scope.launch { Loading @@ -139,19 +142,19 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } } CALLBACK_SETUP_NAME -> { CallbackType.CALLBACK_SETUP_NAME -> { scope.launch { onboardingService.startSetupName() } } CALLBACK_SETUP_PRIMARY_SIM -> { CallbackType.CALLBACK_SETUP_PRIMARY_SIM -> { scope.launch { onboardingService.startSetupPrimarySim(this@SimOnboardingActivity) } } CALLBACK_FINISH -> { CallbackType.CALLBACK_FINISH -> { finish() } } Loading @@ -174,16 +177,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { @Composable override fun Content() { showBottomSheet = remember { mutableStateOf(false) } showError = remember { mutableStateOf(false) } showError = remember { mutableStateOf(ErrorType.ERROR_NONE) } showProgressDialog = remember { mutableStateOf(false) } scope = rememberCoroutineScope() registerSidecarReceiverFlow() if(showError.value){ // show error return } ErrorDialogImpl() LaunchedEffect(Unit) { if (onboardingService.activeSubInfoList.isNotEmpty()) { showBottomSheet.value = true Loading Loading @@ -250,6 +251,56 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } } @Composable fun ErrorDialogImpl(){ // EuiccSlotSidecar showErrorDialog val errorDialogPresenterForEuiccSlotSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.privileged_action_disable_fail_title), text = { Text(stringResource(R.string.privileged_action_disable_fail_text)) }, ) // RemovableSlotSidecar showErrorDialog val errorDialogPresenterForRemovableSlotSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.sim_action_enable_sim_fail_title), text = { Text(stringResource(R.string.sim_action_enable_sim_fail_text)) }, ) // enableDSDS showErrorDialog val errorDialogPresenterForMultiSimSidecar = rememberAlertDialogPresenter( confirmButton = AlertDialogButton( stringResource(android.R.string.ok) ) { finish() }, title = stringResource(R.string.dsds_activation_failure_title), text = { Text(stringResource(R.string.dsds_activation_failure_body_msg2)) }, ) // show error when (showError.value) { ErrorType.ERROR_EUICC_SLOT -> errorDialogPresenterForEuiccSlotSidecar.open() ErrorType.ERROR_REMOVABLE_SLOT -> errorDialogPresenterForRemovableSlotSidecar.open() ErrorType.ERROR_ENABLE_DSDS -> errorDialogPresenterForMultiSimSidecar.open() else -> {} } } @Composable fun registerSidecarReceiverFlow(){ switchToEuiccSubscriptionSidecar?.sidecarReceiverFlow() Loading Loading @@ -317,13 +368,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { SidecarFragment.State.SUCCESS -> { Log.i(TAG, "Successfully enable the eSIM profile.") switchToEuiccSubscriptionSidecar!!.reset() callbackListener(CALLBACK_SETUP_NAME) callbackListener(CallbackType.CALLBACK_SETUP_NAME) } SidecarFragment.State.ERROR -> { Log.i(TAG, "Failed to enable the eSIM profile.") switchToEuiccSubscriptionSidecar!!.reset() callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_EUICC_SLOT callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using privileged_action_disable_fail_title and // privileged_action_disable_fail_text } Loading @@ -336,13 +388,14 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { Log.i(TAG, "Successfully switched to removable slot.") switchToRemovableSlotSidecar!!.reset() onboardingService.handleTogglePsimAction() callbackListener(CALLBACK_SETUP_NAME) callbackListener(CallbackType.CALLBACK_SETUP_NAME) } SidecarFragment.State.ERROR -> { Log.e(TAG, "Failed switching to removable slot.") switchToRemovableSlotSidecar!!.reset() callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_REMOVABLE_SLOT callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using sim_action_enable_sim_fail_title and // sim_action_enable_sim_fail_text } Loading @@ -360,7 +413,8 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { SidecarFragment.State.ERROR -> { enableMultiSimSidecar!!.reset() Log.i(TAG, "Failed to switch to DSDS without rebooting.") callbackListener(CALLBACK_ERROR) showError.value = ErrorType.ERROR_ENABLE_DSDS callbackListener(CallbackType.CALLBACK_ERROR) // TODO: showErrorDialog and using dsds_activation_failure_title and // dsds_activation_failure_body_msg2 } Loading @@ -383,7 +437,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { } Log.i(TAG, "DSDS enabled, start to enable pSIM profile.") onboardingService.handleTogglePsimAction() callbackListener(CALLBACK_FINISH) callbackListener(CallbackType.CALLBACK_FINISH) } @Composable Loading Loading @@ -439,7 +493,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { Log.i(TAG, "setProgressState:$state") } fun initServiceData(context: Context,targetSubId: Int, callback:(Int)->Unit) { fun initServiceData(context: Context,targetSubId: Int, callback:(CallbackType)->Unit) { onboardingService.initData(targetSubId, context,callback) } Loading @@ -458,10 +512,20 @@ class SimOnboardingActivity : SpaBaseDialogActivity() { var onboardingService:SimOnboardingService = SimOnboardingService() const val TAG = "SimOnboardingActivity" const val SUB_ID = "sub_id" const val CALLBACK_ERROR = -1 const val CALLBACK_ONBOARDING_COMPLETE = 1 const val CALLBACK_SETUP_NAME = 2 const val CALLBACK_SETUP_PRIMARY_SIM = 3 const val CALLBACK_FINISH = 4 enum class ErrorType(val value:Int){ ERROR_NONE(-1), ERROR_EUICC_SLOT(1), ERROR_REMOVABLE_SLOT(2), ERROR_ENABLE_DSDS(3) } enum class CallbackType(val value:Int){ CALLBACK_ERROR(-1), CALLBACK_ONBOARDING_COMPLETE(1), CALLBACK_SETUP_NAME(2), CALLBACK_SETUP_PRIMARY_SIM(3), CALLBACK_FINISH(4) } } } No newline at end of file
src/com/android/settings/network/SimOnboardingService.kt +8 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.telephony.TelephonyManager import android.telephony.UiccCardInfo import android.telephony.UiccSlotInfo import android.util.Log import com.android.settings.network.SimOnboardingActivity.Companion.CallbackType import com.android.settings.spa.network.setAutomaticData import com.android.settings.spa.network.setDefaultData import com.android.settings.spa.network.setDefaultSms Loading @@ -31,7 +32,6 @@ import com.android.settingslib.utils.ThreadUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext private const val TAG = "SimOnboardingService" private const val INVALID = SubscriptionManager.INVALID_SUBSCRIPTION_ID Loading Loading @@ -60,7 +60,7 @@ class SimOnboardingService { .map { it.subscriptionId } .firstOrNull() ?: SubscriptionManager.INVALID_SUBSCRIPTION_ID } var callback: (Int) -> Unit = {} var callback: (CallbackType) -> Unit = {} var isMultipleEnabledProfilesSupported: Boolean = false get() { Loading Loading @@ -135,7 +135,9 @@ class SimOnboardingService { userSelectedSubInfoList.clear() } fun initData(inputTargetSubId:Int,context: Context, callback: (Int) -> Unit) { fun initData(inputTargetSubId: Int, context: Context, callback: (CallbackType) -> Unit) { this.callback = callback targetSubId = inputTargetSubId subscriptionManager = context.getSystemService(SubscriptionManager::class.java) Loading Loading @@ -261,7 +263,7 @@ class SimOnboardingService { fun startActivatingSim(){ // TODO: start to activate sim callback(SimOnboardingActivity.CALLBACK_FINISH) callback(CallbackType.CALLBACK_FINISH) } suspend fun startSetupName() { Loading @@ -273,7 +275,7 @@ class SimOnboardingService { ) } // next action is SETUP_PRIMARY_SIM callback(SimOnboardingActivity.CALLBACK_SETUP_PRIMARY_SIM) callback(CallbackType.CALLBACK_SETUP_PRIMARY_SIM) } } Loading Loading @@ -302,7 +304,7 @@ class SimOnboardingService { } // no next action, send finish callback(SimOnboardingActivity.CALLBACK_FINISH) callback(CallbackType.CALLBACK_FINISH) } } } No newline at end of file
src/com/android/settings/spa/network/SimOnboardingPageProvider.kt +3 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import com.android.settings.R import com.android.settings.network.SimOnboardingActivity import com.android.settings.network.SimOnboardingActivity.Companion.CallbackType import com.android.settings.network.SimOnboardingService import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPageProvider Loading Loading @@ -93,7 +94,7 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo val context = LocalContext.current var finishOnboarding: () -> Unit = { context.getActivity()?.finish() onboardingService.callback(SimOnboardingActivity.CALLBACK_FINISH) onboardingService.callback(CallbackType.CALLBACK_FINISH) } NavHost( Loading @@ -120,7 +121,7 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo composable(route = SimOnboardingScreen.PrimarySim.name) { SimOnboardingPrimarySimImpl( nextAction = { onboardingService.callback(SimOnboardingActivity.CALLBACK_ONBOARDING_COMPLETE) onboardingService.callback(CallbackType.CALLBACK_ONBOARDING_COMPLETE) context.getActivity()?.finish() }, cancelAction = finishOnboarding, Loading