Merge changes I0d3c2163,I5602713b,Ica2a26ea into main
* changes: Fix PrimarySim show the same sim in the preference list Start simOnboarding when active sim > 0 [SimOnbarding] correct the sim name at the Primary Sim
This commit is contained in:
committed by
Android (Google) Code Review
commit
f27877d155
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.android.settings.network
|
package com.android.settings.network
|
||||||
|
|
||||||
import android.app.ProgressDialog
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -51,7 +50,6 @@ import androidx.compose.runtime.remember
|
|||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
|
||||||
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
|
||||||
@@ -59,6 +57,7 @@ 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
|
||||||
|
import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity
|
||||||
import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
|
import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
|
||||||
import com.android.settings.spa.network.SimOnboardingPageProvider.getRoute
|
import com.android.settings.spa.network.SimOnboardingPageProvider.getRoute
|
||||||
import com.android.settingslib.spa.SpaBaseDialogActivity
|
import com.android.settingslib.spa.SpaBaseDialogActivity
|
||||||
@@ -79,7 +78,7 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
lateinit var scope: CoroutineScope
|
lateinit var scope: CoroutineScope
|
||||||
lateinit var showBottomSheet: MutableState<Boolean>
|
lateinit var showBottomSheet: MutableState<Boolean>
|
||||||
lateinit var showError: MutableState<Boolean>
|
lateinit var showError: MutableState<Boolean>
|
||||||
lateinit var showDialog: MutableState<Boolean>
|
lateinit var showProgressDialog: MutableState<Boolean>
|
||||||
|
|
||||||
private var switchToEuiccSubscriptionSidecar: SwitchToEuiccSubscriptionSidecar? = null
|
private var switchToEuiccSubscriptionSidecar: SwitchToEuiccSubscriptionSidecar? = null
|
||||||
private var switchToRemovableSlotSidecar: SwitchToRemovableSlotSidecar? = null
|
private var switchToRemovableSlotSidecar: SwitchToRemovableSlotSidecar? = null
|
||||||
@@ -101,6 +100,16 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (onboardingService.activeSubInfoList.isEmpty()) {
|
||||||
|
// TODO: refactor and replace the ToggleSubscriptionDialogActivity
|
||||||
|
Log.e(TAG, "onboardingService.activeSubInfoList is empty" +
|
||||||
|
", start ToggleSubscriptionDialogActivity")
|
||||||
|
this.startActivity(ToggleSubscriptionDialogActivity
|
||||||
|
.getIntent(this.applicationContext, targetSubId, true))
|
||||||
|
finish()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
switchToEuiccSubscriptionSidecar = SwitchToEuiccSubscriptionSidecar.get(fragmentManager)
|
switchToEuiccSubscriptionSidecar = SwitchToEuiccSubscriptionSidecar.get(fragmentManager)
|
||||||
switchToRemovableSlotSidecar = SwitchToRemovableSlotSidecar.get(fragmentManager)
|
switchToRemovableSlotSidecar = SwitchToRemovableSlotSidecar.get(fragmentManager)
|
||||||
enableMultiSimSidecar = EnableMultiSimSidecar.get(fragmentManager)
|
enableMultiSimSidecar = EnableMultiSimSidecar.get(fragmentManager)
|
||||||
@@ -153,7 +162,10 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun setProgressDialog(enable: Boolean) {
|
fun setProgressDialog(enable: Boolean) {
|
||||||
showDialog.value = enable
|
if (!this::showProgressDialog.isInitialized) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
showProgressDialog.value = enable
|
||||||
val progressState = if (enable) {
|
val progressState = if (enable) {
|
||||||
SubscriptionActionDialogActivity.PROGRESS_IS_SHOWING
|
SubscriptionActionDialogActivity.PROGRESS_IS_SHOWING
|
||||||
} else {
|
} else {
|
||||||
@@ -165,9 +177,9 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
override fun Content() {
|
override fun Content() {
|
||||||
showBottomSheet = remember { mutableStateOf(true) }
|
showBottomSheet = remember { mutableStateOf(false) }
|
||||||
showError = remember { mutableStateOf(false) }
|
showError = remember { mutableStateOf(false) }
|
||||||
showDialog = remember { mutableStateOf(false) }
|
showProgressDialog = remember { mutableStateOf(false) }
|
||||||
scope = rememberCoroutineScope()
|
scope = rememberCoroutineScope()
|
||||||
|
|
||||||
registerSidecarReceiverFlow()
|
registerSidecarReceiverFlow()
|
||||||
@@ -176,6 +188,11 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
// show error
|
// show error
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
LaunchedEffect(Unit) {
|
||||||
|
if (onboardingService.activeSubInfoList.isNotEmpty()) {
|
||||||
|
showBottomSheet.value = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (showBottomSheet.value) {
|
if (showBottomSheet.value) {
|
||||||
var sheetState = rememberModalBottomSheetState()
|
var sheetState = rememberModalBottomSheetState()
|
||||||
@@ -195,7 +212,9 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
},
|
},
|
||||||
cancelAction = { finish() },
|
cancelAction = { finish() },
|
||||||
)
|
)
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
if(showProgressDialog.value) {
|
||||||
ProgressDialogImpl()
|
ProgressDialogImpl()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,34 +222,32 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
|
|||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun ProgressDialogImpl() {
|
fun ProgressDialogImpl() {
|
||||||
if(showDialog.value) {
|
// TODO: Create the SPA's ProgressDialog and using SPA's widget
|
||||||
// TODO: Create the SPA's ProgressDialog and using SPA's widget
|
BasicAlertDialog(
|
||||||
BasicAlertDialog(
|
onDismissRequest = {},
|
||||||
onDismissRequest = {},
|
modifier = Modifier.width(
|
||||||
modifier = Modifier.width(
|
getDialogWidth()
|
||||||
getDialogWidth()
|
),
|
||||||
),
|
) {
|
||||||
|
Surface(
|
||||||
|
color = AlertDialogDefaults.containerColor,
|
||||||
|
shape = AlertDialogDefaults.shape
|
||||||
) {
|
) {
|
||||||
Surface(
|
Row(
|
||||||
color = AlertDialogDefaults.containerColor,
|
modifier = Modifier
|
||||||
shape = AlertDialogDefaults.shape
|
|
||||||
) {
|
|
||||||
Row(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(SettingsDimension.itemPaddingStart),
|
.padding(SettingsDimension.itemPaddingStart),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
CircularProgressIndicator()
|
CircularProgressIndicator()
|
||||||
Column(modifier = Modifier
|
Column(modifier = Modifier
|
||||||
.padding(start = SettingsDimension.itemPaddingStart)) {
|
.padding(start = SettingsDimension.itemPaddingStart)) {
|
||||||
SettingsTitle(
|
SettingsTitle(
|
||||||
stringResource(
|
stringResource(
|
||||||
R.string.sim_onboarding_progressbar_turning_sim_on,
|
R.string.sim_onboarding_progressbar_turning_sim_on,
|
||||||
onboardingService.targetSubInfo?.displayName ?: ""
|
onboardingService.targetSubInfo?.displayName ?: ""
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -141,18 +141,16 @@ class SimOnboardingService {
|
|||||||
subscriptionManager = context.getSystemService(SubscriptionManager::class.java)
|
subscriptionManager = context.getSystemService(SubscriptionManager::class.java)
|
||||||
telephonyManager = context.getSystemService(TelephonyManager::class.java)
|
telephonyManager = context.getSystemService(TelephonyManager::class.java)
|
||||||
Log.d(
|
Log.d(
|
||||||
TAG, "startInit: targetSubId:$targetSubId"
|
TAG, "startInit: targetSubId:$targetSubId, activeSubInfoList: $activeSubInfoList"
|
||||||
)
|
)
|
||||||
|
activeSubInfoList = SubscriptionUtil.getActiveSubscriptions(subscriptionManager)
|
||||||
|
|
||||||
ThreadUtils.postOnBackgroundThread {
|
ThreadUtils.postOnBackgroundThread {
|
||||||
activeSubInfoList = SubscriptionUtil.getActiveSubscriptions(subscriptionManager)
|
|
||||||
availableSubInfoList = SubscriptionUtil.getAvailableSubscriptions(context)
|
availableSubInfoList = SubscriptionUtil.getAvailableSubscriptions(context)
|
||||||
targetSubInfo =
|
targetSubInfo =
|
||||||
availableSubInfoList.find { subInfo -> subInfo.subscriptionId == targetSubId }
|
availableSubInfoList.find { subInfo -> subInfo.subscriptionId == targetSubId }
|
||||||
targetSubInfo?.let { userSelectedSubInfoList.add(it) }
|
targetSubInfo?.let { userSelectedSubInfoList.add(it) }
|
||||||
Log.d(
|
Log.d(TAG, "targetSubId: $targetSubId , targetSubInfo: $targetSubInfo")
|
||||||
TAG, "targetSubId: $targetSubId" + ", targetSubInfo: $targetSubInfo" +
|
|
||||||
". activeSubInfoList: $activeSubInfoList"
|
|
||||||
)
|
|
||||||
slotInfoList = telephonyManager?.uiccSlotsInfo?.toList() ?: listOf()
|
slotInfoList = telephonyManager?.uiccSlotsInfo?.toList() ?: listOf()
|
||||||
Log.d(TAG, "slotInfoList: $slotInfoList.")
|
Log.d(TAG, "slotInfoList: $slotInfoList.")
|
||||||
uiccCardInfoList = telephonyManager?.uiccCardsInfo!!
|
uiccCardInfoList = telephonyManager?.uiccCardsInfo!!
|
||||||
@@ -196,6 +194,16 @@ class SimOnboardingService {
|
|||||||
return userSelectedSubInfoList.toList()
|
return userSelectedSubInfoList.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getSelectedSubscriptionInfoListWithRenaming(): List<SubscriptionInfo> {
|
||||||
|
if (userSelectedSubInfoList.isEmpty()){
|
||||||
|
Log.d(TAG, "userSelectedSubInfoList is empty")
|
||||||
|
return activeSubInfoList
|
||||||
|
}
|
||||||
|
return userSelectedSubInfoList.map {
|
||||||
|
SubscriptionInfo.Builder(it).setDisplayName(getSubscriptionInfoDisplayName(it)).build()
|
||||||
|
}.toList()
|
||||||
|
}
|
||||||
|
|
||||||
fun addItemForRenaming(subInfo: SubscriptionInfo, newName: String) {
|
fun addItemForRenaming(subInfo: SubscriptionInfo, newName: String) {
|
||||||
if (subInfo.displayName == newName) {
|
if (subInfo.displayName == newName) {
|
||||||
return
|
return
|
||||||
@@ -211,8 +219,12 @@ class SimOnboardingService {
|
|||||||
return renameMutableMap[subInfo.subscriptionId] ?: subInfo.displayName.toString()
|
return renameMutableMap[subInfo.subscriptionId] ?: subInfo.displayName.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addCurrentItemForSelectedSim(){
|
fun addCurrentItemForSelectedSim() {
|
||||||
userSelectedSubInfoList.addAll(activeSubInfoList)
|
if (userSelectedSubInfoList.size < getActiveModemCount) {
|
||||||
|
userSelectedSubInfoList.addAll(activeSubInfoList)
|
||||||
|
Log.d(TAG, "addCurrentItemForSelectedSim: userSelectedSubInfoList:" +
|
||||||
|
", $userSelectedSubInfoList")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addItemForSelectedSim(selectedSubInfo: SubscriptionInfo) {
|
fun addItemForSelectedSim(selectedSubInfo: SubscriptionInfo) {
|
||||||
|
@@ -24,6 +24,7 @@ import android.os.Bundle
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.annotation.VisibleForTesting
|
import androidx.annotation.VisibleForTesting
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.NavType
|
import androidx.navigation.NavType
|
||||||
@@ -101,10 +102,13 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo
|
|||||||
) {
|
) {
|
||||||
composable(route = SimOnboardingScreen.LabelSim.name) {
|
composable(route = SimOnboardingScreen.LabelSim.name) {
|
||||||
val nextPage =
|
val nextPage =
|
||||||
if (onboardingService.isMultipleEnabledProfilesSupported && onboardingService.isAllOfSlotAssigned) {
|
if (onboardingService.isMultipleEnabledProfilesSupported
|
||||||
|
&& onboardingService.isAllOfSlotAssigned) {
|
||||||
SimOnboardingScreen.SelectSim.name
|
SimOnboardingScreen.SelectSim.name
|
||||||
} else {
|
} else {
|
||||||
onboardingService.addCurrentItemForSelectedSim()
|
LaunchedEffect(Unit) {
|
||||||
|
onboardingService.addCurrentItemForSelectedSim()
|
||||||
|
}
|
||||||
SimOnboardingScreen.PrimarySim.name
|
SimOnboardingScreen.PrimarySim.name
|
||||||
}
|
}
|
||||||
SimOnboardingLabelSimImpl(
|
SimOnboardingLabelSimImpl(
|
||||||
|
@@ -77,7 +77,8 @@ fun SimOnboardingPrimarySimImpl(
|
|||||||
SettingsBody(stringResource(id = R.string.sim_onboarding_primary_sim_msg))
|
SettingsBody(stringResource(id = R.string.sim_onboarding_primary_sim_msg))
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectedSubscriptionInfoList = onboardingService.getSelectedSubscriptionInfoList()
|
var selectedSubscriptionInfoList =
|
||||||
|
onboardingService.getSelectedSubscriptionInfoListWithRenaming()
|
||||||
callsSelectedId.intValue = onboardingService.targetPrimarySimCalls
|
callsSelectedId.intValue = onboardingService.targetPrimarySimCalls
|
||||||
textsSelectedId.intValue = onboardingService.targetPrimarySimTexts
|
textsSelectedId.intValue = onboardingService.targetPrimarySimTexts
|
||||||
mobileDataSelectedId.intValue = onboardingService.targetPrimarySimMobileData
|
mobileDataSelectedId.intValue = onboardingService.targetPrimarySimMobileData
|
||||||
|
Reference in New Issue
Block a user