diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt index 83e3f786c2000..04d0fe03e1e88 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt @@ -18,7 +18,6 @@ package com.android.settingslib.spa.gallery.home import android.os.Bundle import androidx.compose.runtime.Composable -import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsPageProvider @@ -60,9 +59,13 @@ object HomePageProvider : SettingsPageProvider { ) } + override fun getTitle(arguments: Bundle?): String { + return SpaEnvironmentFactory.instance.appContext.getString(R.string.app_name) + } + @Composable override fun Page(arguments: Bundle?) { - HomeScaffold(title = stringResource(R.string.app_name)) { + HomeScaffold(title = getTitle(arguments)) { for (entry in buildEntry(arguments)) { if (entry.owner.isCreateBy(SettingsPageProviderEnum.ARGUMENT.name)) { entry.UiLayout(ArgumentPageModel.buildArgument(intParam = 0)) diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPage.kt index 60ff3627b33e8..7958d11ad5135 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPage.kt @@ -99,9 +99,13 @@ object ArgumentPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return ArgumentPageModel.genPageTitle() + } + @Composable override fun Page(arguments: Bundle?) { - RegularScaffold(title = ArgumentPageModel.create(arguments).genPageTitle()) { + RegularScaffold(title = getTitle(arguments)) { for (entry in buildEntry(arguments)) { if (entry.toPage != null) { entry.UiLayout(ArgumentPageModel.buildNextArgument(arguments)) diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPageModel.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPageModel.kt index e5e3c679a76a7..5f15865ff7b9a 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPageModel.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ArgumentPageModel.kt @@ -81,6 +81,10 @@ class ArgumentPageModel : PageModel() { return EntrySearchData(title = PAGE_TITLE, keyword = ARGUMENT_PAGE_KEYWORDS) } + fun genPageTitle(): String { + return PAGE_TITLE + } + @Composable fun create(arguments: Bundle?): ArgumentPageModel { val pageModel: ArgumentPageModel = viewModel(key = arguments.toString()) @@ -89,7 +93,6 @@ class ArgumentPageModel : PageModel() { } } - private val title = PAGE_TITLE private var arguments: Bundle? = null private var stringParam: String? = null private var intParam: Int? = null @@ -103,11 +106,6 @@ class ArgumentPageModel : PageModel() { intParam = parameter.getIntArg(INT_PARAM_NAME, arguments) } - @Composable - fun genPageTitle(): String { - return title - } - @Composable fun genStringParamPreferenceModel(): PreferenceModel { return object : PreferenceModel { @@ -131,7 +129,7 @@ class ArgumentPageModel : PageModel() { "$INT_PARAM_NAME=" + intParam!! ) return object : PreferenceModel { - override val title = genPageTitle() + override val title = PAGE_TITLE override val summary = stateOf(summaryArray.joinToString(", ")) override val onClick = navigator( SettingsPageProviderEnum.ARGUMENT.displayName + parameter.navLink(arguments) diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/FooterPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/FooterPage.kt index 0fc2a5f5fda8a..c903cfd96ce36 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/FooterPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/FooterPage.kt @@ -67,9 +67,13 @@ object FooterPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return TITLE + } + @Composable override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { + RegularScaffold(title = getTitle(arguments)) { for (entry in buildEntry(arguments)) { entry.UiLayout() } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/IllustrationPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/IllustrationPage.kt index a64d4a5d3ea60..e10cf3aa07027 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/IllustrationPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/IllustrationPage.kt @@ -31,7 +31,6 @@ import com.android.settingslib.spa.widget.IllustrationModel import com.android.settingslib.spa.widget.ResourceType import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel -import com.android.settingslib.spa.widget.scaffold.RegularScaffold private const val TITLE = "Sample Illustration" @@ -82,13 +81,8 @@ object IllustrationPageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt index dc45df4a0374d..9136b0430c40f 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt @@ -60,6 +60,10 @@ object ProgressBarPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return TITLE + } + @Composable override fun Page(arguments: Bundle?) { // Mocks a loading time of 2 seconds. @@ -69,7 +73,7 @@ object ProgressBarPageProvider : SettingsPageProvider { loading = false } - RegularScaffold(title = TITLE) { + RegularScaffold(title = getTitle(arguments)) { // Auto update the progress and finally jump tp 0.4f. var progress by remember { mutableStateOf(0f) } LaunchedEffect(Unit) { diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt index b38178b0e6f4f..cb58a95e01a6b 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt @@ -49,9 +49,13 @@ object SettingsPagerPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return TITLE + } + @Composable override fun Page(arguments: Bundle?) { - SettingsScaffold(title = TITLE) { paddingValues -> + SettingsScaffold(title = getTitle(arguments)) { paddingValues -> Box(Modifier.padding(paddingValues)) { SettingsPager(listOf("Personal", "Work")) { PlaceholderTitle("Page $it") diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt index 7567c6daf996e..73b34a50a5209 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt @@ -37,7 +37,6 @@ import com.android.settingslib.spa.widget.preference.SliderPreference import com.android.settingslib.spa.widget.preference.SliderPreferenceModel import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel -import com.android.settingslib.spa.widget.scaffold.RegularScaffold private const val TITLE = "Sample Slider" @@ -119,13 +118,8 @@ object SliderPageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/MainSwitchPreferencePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/MainSwitchPreferencePage.kt index a8e49384da970..f38a8d4193b32 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/MainSwitchPreferencePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/MainSwitchPreferencePage.kt @@ -33,7 +33,6 @@ import com.android.settingslib.spa.widget.preference.MainSwitchPreference import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel -import com.android.settingslib.spa.widget.scaffold.RegularScaffold private const val TITLE = "Sample MainSwitchPreference" @@ -72,13 +71,8 @@ object MainSwitchPreferencePageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferenceMain.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferenceMain.kt index 165eaa05c9d50..61925a7b7164a 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferenceMain.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferenceMain.kt @@ -17,7 +17,6 @@ package com.android.settingslib.spa.gallery.preference import android.os.Bundle -import androidx.compose.runtime.Composable import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPageProvider @@ -25,7 +24,6 @@ import com.android.settingslib.spa.framework.common.createSettingsPage import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel -import com.android.settingslib.spa.widget.scaffold.RegularScaffold private const val TITLE = "Category: Preference" @@ -54,12 +52,7 @@ object PreferenceMainPageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt index 2c2782b20e357..bbc0a86d20c3c 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt @@ -49,7 +49,6 @@ import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Compan import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SimplePreferenceMacro -import com.android.settingslib.spa.widget.scaffold.RegularScaffold import com.android.settingslib.spa.widget.ui.SettingsIcon private const val TAG = "PreferencePage" @@ -204,13 +203,8 @@ object PreferencePageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = PAGE_TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return PAGE_TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/SwitchPreferencePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/SwitchPreferencePage.kt index 46b44ca9d6148..367766a34a3c5 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/SwitchPreferencePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/SwitchPreferencePage.kt @@ -34,7 +34,6 @@ import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel -import com.android.settingslib.spa.widget.scaffold.RegularScaffold import kotlinx.coroutines.delay private const val TITLE = "Sample SwitchPreference" @@ -88,13 +87,8 @@ object SwitchPreferencePageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/TwoTargetSwitchPreferencePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/TwoTargetSwitchPreferencePage.kt index b991f59866eb4..22da99c23fc85 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/TwoTargetSwitchPreferencePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/TwoTargetSwitchPreferencePage.kt @@ -34,7 +34,6 @@ import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference -import com.android.settingslib.spa.widget.scaffold.RegularScaffold import kotlinx.coroutines.delay private const val TITLE = "Sample TwoTargetSwitchPreference" @@ -88,13 +87,8 @@ object TwoTargetSwitchPreferencePageProvider : SettingsPageProvider { } } - @Composable - override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { - for (entry in buildEntry(arguments)) { - entry.UiLayout() - } - } + override fun getTitle(arguments: Bundle?): String { + return TITLE } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/CategoryPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/CategoryPage.kt index a4713b993af0d..d87cbe82d9d8f 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/CategoryPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/CategoryPage.kt @@ -48,41 +48,40 @@ object CategoryPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return TITLE + } + @Composable override fun Page(arguments: Bundle?) { - CategoryPage() - } -} - -@Composable -private fun CategoryPage() { - RegularScaffold(title = TITLE) { - CategoryTitle("Category A") - Preference(remember { - object : PreferenceModel { - override val title = "Preference 1" - override val summary = stateOf("Summary 1") - } - }) - Preference(remember { - object : PreferenceModel { - override val title = "Preference 2" - override val summary = stateOf("Summary 2") - } - }) - Category("Category B") { + RegularScaffold(title = getTitle(arguments)) { + CategoryTitle("Category A") Preference(remember { object : PreferenceModel { - override val title = "Preference 3" - override val summary = stateOf("Summary 3") + override val title = "Preference 1" + override val summary = stateOf("Summary 1") } }) Preference(remember { object : PreferenceModel { - override val title = "Preference 4" - override val summary = stateOf("Summary 4") + override val title = "Preference 2" + override val summary = stateOf("Summary 2") } }) + Category("Category B") { + Preference(remember { + object : PreferenceModel { + override val title = "Preference 3" + override val summary = stateOf("Summary 3") + } + }) + Preference(remember { + object : PreferenceModel { + override val title = "Preference 4" + override val summary = stateOf("Summary 4") + } + }) + } } } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/SpinnerPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/SpinnerPage.kt index 03b72d348d407..ec2f436c9e98c 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/SpinnerPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/ui/SpinnerPage.kt @@ -49,9 +49,13 @@ object SpinnerPageProvider : SettingsPageProvider { } } + override fun getTitle(arguments: Bundle?): String { + return TITLE + } + @Composable override fun Page(arguments: Bundle?) { - RegularScaffold(title = TITLE) { + RegularScaffold(title = getTitle(arguments)) { val selectedIndex = rememberSaveable { mutableStateOf(0) } Spinner( options = (1..3).map { "Option $it" }, diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt index f8963b2a88371..151b50cdb5c4b 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPageProvider.kt @@ -19,6 +19,7 @@ package com.android.settingslib.spa.framework.common import android.os.Bundle import androidx.compose.runtime.Composable import androidx.navigation.NamedNavArgument +import com.android.settingslib.spa.widget.scaffold.RegularScaffold /** * An SettingsPageProvider which is used to create Settings page instances. @@ -36,13 +37,19 @@ interface SettingsPageProvider { val parameter: List get() = emptyList() - /** The [Composable] used to render this page. */ - @Composable - fun Page(arguments: Bundle?) + fun getTitle(arguments: Bundle?): String = displayName ?: name fun buildEntry(arguments: Bundle?): List = emptyList() - fun getTitle(arguments: Bundle?): String = displayName ?: name + /** The [Composable] used to render this page. */ + @Composable + fun Page(arguments: Bundle?) { + RegularScaffold(title = getTitle(arguments)) { + for (entry in buildEntry(arguments)) { + entry.UiLayout() + } + } + } } fun SettingsPageProvider.createSettingsPage(arguments: Bundle? = null): SettingsPage {