From 8b2305acd405244459b617e43035a16447f75322 Mon Sep 17 00:00:00 2001 From: songferngwang Date: Mon, 6 May 2024 07:18:13 +0000 Subject: [PATCH] Add the OtherSection for NetworkCellularGroupProvider Bug: 338914255 Test: Verified the SIMs UI Change-Id: I49d5e4126e43054b5d147de15d35805d1e445c38 --- .../network/MobileNetworkListFragment.kt | 2 +- .../settings/spa/SettingsSpaEnvironment.kt | 2 +- .../network/NetworkCellularGroupProvider.kt | 71 +++++++++---------- 3 files changed, 34 insertions(+), 41 deletions(-) diff --git a/src/com/android/settings/network/MobileNetworkListFragment.kt b/src/com/android/settings/network/MobileNetworkListFragment.kt index e7228666da7..eb0d16cef09 100644 --- a/src/com/android/settings/network/MobileNetworkListFragment.kt +++ b/src/com/android/settings/network/MobileNetworkListFragment.kt @@ -47,7 +47,7 @@ class MobileNetworkListFragment : DashboardFragment() { super.onCreate(icicle) if (Flags.isDualSimOnboardingEnabled()) { - context?.startSpaActivity(NetworkCellularGroupProvider.name); + context?.startSpaActivity(NetworkCellularGroupProvider.fileName) finish() } } diff --git a/src/com/android/settings/spa/SettingsSpaEnvironment.kt b/src/com/android/settings/spa/SettingsSpaEnvironment.kt index bcac8d50000..5dbc8dc7099 100644 --- a/src/com/android/settings/spa/SettingsSpaEnvironment.kt +++ b/src/com/android/settings/spa/SettingsSpaEnvironment.kt @@ -118,7 +118,7 @@ open class SettingsSpaEnvironment(context: Context) : SpaEnvironment(context) { ApnEditPageProvider, SimOnboardingPageProvider, BatteryOptimizationModeAppListPageProvider, - NetworkCellularGroupProvider, + NetworkCellularGroupProvider(), WifiPrivacyPageProvider, ) diff --git a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt index 640ad7a5dd6..7b7c85d23d6 100644 --- a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt +++ b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt @@ -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( - subscriptionViewModel.selectableSubscriptionInfoListFlow, - callsSelectedId, - textsSelectedId, - mobileDataSelectedId, - nonDdsRemember - ) + 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, + ) + + 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>, - 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)