diff --git a/src/com/android/settings/spa/app/AppsMain.kt b/src/com/android/settings/spa/app/AppsMain.kt index 152ad2b3832..6fcc48042be 100644 --- a/src/com/android/settings/spa/app/AppsMain.kt +++ b/src/com/android/settings/spa/app/AppsMain.kt @@ -27,6 +27,8 @@ import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider +import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory +import com.android.settingslib.spa.framework.common.createSettingsPage import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.widget.preference.Preference @@ -36,41 +38,38 @@ import com.android.settingslib.spa.widget.ui.SettingsIcon object AppsMainPageProvider : SettingsPageProvider { override val name = "AppsMain" + private val owner = createSettingsPage() @Composable override fun Page(arguments: Bundle?) { - AppsMain() - } - - @Composable - fun EntryItem() { - Preference(object : PreferenceModel { - override val title = stringResource(R.string.apps_dashboard_title) - override val summary = - stringResource(R.string.app_and_notification_dashboard_summary).toState() - override val onClick = navigator(name) - override val icon = @Composable { - SettingsIcon(imageVector = Icons.Outlined.Apps) - } - }) + RegularScaffold(title = getTitle(arguments)) { + AllAppListPageProvider.buildInjectEntry().build().UiLayout() + SpecialAppAccessPageProvider.EntryItem() + } } fun buildInjectEntry() = - SettingsEntryBuilder.createInject(owner = SettingsPage.create(name)).setIsAllowSearch(false) + SettingsEntryBuilder.createInject(owner = owner).setIsAllowSearch(false) + .setUiLayoutFn { + Preference(object : PreferenceModel { + override val title = stringResource(R.string.apps_dashboard_title) + override val summary = + stringResource(R.string.app_and_notification_dashboard_summary).toState() + override val onClick = navigator(name) + override val icon = @Composable { + SettingsIcon(imageVector = Icons.Outlined.Apps) + } + }) + } + + override fun getTitle(arguments: Bundle?): String { + return SpaEnvironmentFactory.instance.appContext.getString(R.string.apps_dashboard_title) + } override fun buildEntry(arguments: Bundle?): List { - val owner = SettingsPage.create(name, parameter = parameter, arguments = arguments) return listOf( AllAppListPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), SpecialAppAccessPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), ) } } - -@Composable -private fun AppsMain() { - RegularScaffold(title = stringResource(R.string.apps_dashboard_title)) { - AllAppListPageProvider.buildInjectEntry().build().UiLayout() - SpecialAppAccessPageProvider.EntryItem() - } -} diff --git a/src/com/android/settings/spa/home/HomePage.kt b/src/com/android/settings/spa/home/HomePage.kt index 3c16f5a0111..e33fedcf4df 100644 --- a/src/com/android/settings/spa/home/HomePage.kt +++ b/src/com/android/settings/spa/home/HomePage.kt @@ -17,38 +17,28 @@ package com.android.settings.spa.home import android.os.Bundle -import androidx.compose.runtime.Composable -import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.spa.app.AppsMainPageProvider import com.android.settings.spa.notification.NotificationMainPageProvider import com.android.settings.spa.system.SystemMainPageProvider import com.android.settingslib.spa.framework.common.SettingsEntry -import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider -import com.android.settingslib.spa.widget.scaffold.HomeScaffold +import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory +import com.android.settingslib.spa.framework.common.createSettingsPage object HomePageProvider : SettingsPageProvider { override val name = "Home" - - @Composable - override fun Page(arguments: Bundle?) { - HomePage() - } + private val owner = createSettingsPage() override fun buildEntry(arguments: Bundle?): List { - val owner = SettingsPage.create(name, parameter = parameter, arguments = arguments) return listOf( AppsMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), + NotificationMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), + SystemMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), ) } -} -@Composable -private fun HomePage() { - HomeScaffold(title = stringResource(R.string.settings_label)) { - AppsMainPageProvider.EntryItem() - NotificationMainPageProvider.EntryItem() - SystemMainPageProvider.EntryItem() + override fun getTitle(arguments: Bundle?): String { + return SpaEnvironmentFactory.instance.appContext.getString(R.string.settings_label) } } diff --git a/src/com/android/settings/spa/notification/NotificationMain.kt b/src/com/android/settings/spa/notification/NotificationMain.kt index 46246b5329d..5a0634cb8b1 100644 --- a/src/com/android/settings/spa/notification/NotificationMain.kt +++ b/src/com/android/settings/spa/notification/NotificationMain.kt @@ -22,38 +22,43 @@ import androidx.compose.material.icons.outlined.Notifications import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.android.settings.R +import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPageProvider +import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.scaffold.RegularScaffold import com.android.settingslib.spa.widget.ui.SettingsIcon +import com.android.settingslib.spa.framework.common.createSettingsPage object NotificationMainPageProvider : SettingsPageProvider { override val name = "NotificationMain" + private val owner = createSettingsPage() @Composable override fun Page(arguments: Bundle?) { - NotificationMain() + RegularScaffold(title = getTitle(arguments)) { + AppListNotificationsPageProvider.EntryItem() + } } - @Composable - fun EntryItem() { - Preference(object : PreferenceModel { - override val title = stringResource(R.string.configure_notification_settings) - override val summary = stringResource(R.string.notification_dashboard_summary).toState() - override val onClick = navigator(name) - override val icon = @Composable { - SettingsIcon(imageVector = Icons.Outlined.Notifications) + override fun getTitle(arguments: Bundle?): String { + return SpaEnvironmentFactory.instance.appContext.getString(R.string.configure_notification_settings) + } + + fun buildInjectEntry(): SettingsEntryBuilder { + return SettingsEntryBuilder.createInject(owner = owner).setIsAllowSearch(false) + .setUiLayoutFn { + Preference(object : PreferenceModel { + override val title = stringResource(R.string.configure_notification_settings) + override val summary = stringResource(R.string.notification_dashboard_summary).toState() + override val onClick = navigator(name) + override val icon = @Composable { + SettingsIcon(imageVector = Icons.Outlined.Notifications) + } + }) } - }) - } -} - -@Composable -private fun NotificationMain() { - RegularScaffold(title = stringResource(R.string.configure_notification_settings)) { - AppListNotificationsPageProvider.EntryItem() } } diff --git a/src/com/android/settings/spa/system/SystemMain.kt b/src/com/android/settings/spa/system/SystemMain.kt index 2832468a1c0..a004103bb3a 100644 --- a/src/com/android/settings/spa/system/SystemMain.kt +++ b/src/com/android/settings/spa/system/SystemMain.kt @@ -23,8 +23,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settingslib.spa.framework.common.SettingsEntryBuilder -import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider +import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory +import com.android.settingslib.spa.framework.common.createSettingsPage import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.widget.preference.Preference @@ -34,31 +35,30 @@ import com.android.settingslib.spa.widget.ui.SettingsIcon object SystemMainPageProvider : SettingsPageProvider { override val name = "SystemMain" + private val owner = createSettingsPage() @Composable override fun Page(arguments: Bundle?) { - SystemMain() + RegularScaffold(title = getTitle(arguments)) { + LanguageAndInputPageProvider.EntryItem() + } } - @Composable - fun EntryItem() { - Preference(object : PreferenceModel { - override val title = stringResource(R.string.header_category_system) - override val summary = stringResource(R.string.system_dashboard_summary).toState() - override val onClick = navigator(name) - override val icon = @Composable { - SettingsIcon(imageVector = Icons.Outlined.Info) + override fun getTitle(arguments: Bundle?): String { + return SpaEnvironmentFactory.instance.appContext.getString(R.string.header_category_system) + } + + fun buildInjectEntry(): SettingsEntryBuilder { + return SettingsEntryBuilder.createInject(owner = owner).setIsAllowSearch(false) + .setUiLayoutFn { + Preference(object : PreferenceModel { + override val title = stringResource(R.string.header_category_system) + override val summary = stringResource(R.string.system_dashboard_summary).toState() + override val onClick = navigator(name) + override val icon = @Composable { + SettingsIcon(imageVector = Icons.Outlined.Info) + } + }) } - }) } - - fun buildInjectEntry() = - SettingsEntryBuilder.createInject(owner = SettingsPage.create(name)).setIsAllowSearch(false) } - -@Composable -private fun SystemMain() { - RegularScaffold(title = stringResource(R.string.header_category_system)) { - LanguageAndInputPageProvider.EntryItem() - } -} \ No newline at end of file