Merge "Add the OtherSection for NetworkCellularGroupProvider" into main

This commit is contained in:
SongFerng Wang
2024-05-07 04:58:28 +00:00
committed by Android (Google) Code Review
3 changed files with 34 additions and 41 deletions

View File

@@ -47,7 +47,7 @@ class MobileNetworkListFragment : DashboardFragment() {
super.onCreate(icicle)
if (Flags.isDualSimOnboardingEnabled()) {
context?.startSpaActivity(NetworkCellularGroupProvider.name);
context?.startSpaActivity(NetworkCellularGroupProvider.fileName)
finish()
}
}

View File

@@ -118,7 +118,7 @@ open class SettingsSpaEnvironment(context: Context) : SpaEnvironment(context) {
ApnEditPageProvider,
SimOnboardingPageProvider,
BatteryOptimizationModeAppListPageProvider,
NetworkCellularGroupProvider,
NetworkCellularGroupProvider(),
WifiPrivacyPageProvider,
)

View File

@@ -75,8 +75,8 @@ import kotlinx.coroutines.withContext
/**
* Showing the sim onboarding which is the process flow of sim switching on.
*/
object NetworkCellularGroupProvider : SettingsPageProvider {
override val name = "NetworkCellularGroupProvider"
open class NetworkCellularGroupProvider : SettingsPageProvider {
override val name = fileName
private val owner = createSettingsPage()
@@ -85,7 +85,7 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
var defaultDataSubId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
var nonDds: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
fun buildInjectEntry() = SettingsEntryBuilder.createInject(owner = owner)
open fun buildInjectEntry() = SettingsEntryBuilder.createInject(owner = owner)
.setUiLayoutFn {
// never using
Preference(object : PreferenceModel {
@@ -123,13 +123,26 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
nonDdsRemember.intValue = nonDds
}
PageImpl(
val selectableSubscriptionInfoList by subscriptionViewModel
.selectableSubscriptionInfoListFlow
.collectAsStateWithLifecycle(initialValue = emptyList())
val stringSims = stringResource(R.string.provider_network_settings_title)
RegularScaffold(title = stringSims) {
SimsSection(selectableSubscriptionInfoList)
MobileDataSectionImpl(mobileDataSelectedId,
nonDdsRemember,
)
PrimarySimSectionImpl(
subscriptionViewModel.selectableSubscriptionInfoListFlow,
callsSelectedId,
textsSelectedId,
mobileDataSelectedId,
nonDdsRemember
)
OtherSection()
}
}
private fun allOfFlows(context: Context,
@@ -139,7 +152,7 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
context.defaultVoiceSubscriptionFlow(),
context.defaultSmsSubscriptionFlow(),
context.defaultDefaultDataSubscriptionFlow(),
NetworkCellularGroupProvider::refreshUiStates,
this::refreshUiStates,
).flowOn(Dispatchers.Default)
private fun refreshUiStates(
@@ -164,32 +177,12 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
Log.d(name, "defaultDataSubId: $defaultDataSubId, nonDds: $nonDds")
}
}
@Composable
fun PageImpl(
selectableSubscriptionInfoListFlow: StateFlow<List<SubscriptionInfo>>,
defaultVoiceSubId: MutableIntState,
defaultSmsSubId: MutableIntState,
defaultDataSubId: MutableIntState,
nonDds: MutableIntState,
) {
val selectableSubscriptionInfoList by selectableSubscriptionInfoListFlow
.collectAsStateWithLifecycle(initialValue = emptyList())
val stringSims = stringResource(R.string.provider_network_settings_title)
RegularScaffold(title = stringSims) {
SimsSection(selectableSubscriptionInfoList)
MobileDataSectionImpl(defaultDataSubId,
nonDds,
)
PrimarySimSectionImpl(
selectableSubscriptionInfoListFlow,
defaultVoiceSubId,
defaultSmsSubId,
defaultDataSubId,
)
@Composable
open fun OtherSection(){
// Do nothing
}
companion object {
const val fileName = "NetworkCellularGroupProvider"
}
}
@@ -417,9 +410,9 @@ suspend fun setMobileData(
enabled: Boolean,
): Unit =
withContext(Dispatchers.Default) {
Log.d(NetworkCellularGroupProvider.name, "setMobileData: $enabled")
Log.d(NetworkCellularGroupProvider.fileName, "setMobileData: $enabled")
if (enabled) {
Log.d(NetworkCellularGroupProvider.name, "setDefaultData: [$subId]")
Log.d(NetworkCellularGroupProvider.fileName, "setDefaultData: [$subId]")
subscriptionManager?.setDefaultDataSubId(subId)
}
TelephonyRepository(context)