Merge "Followup SppRepo refactor in Settings"
This commit is contained in:
@@ -20,7 +20,7 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.android.settingslib.spa.framework.BrowseActivity
|
||||
|
||||
class SpaActivity : BrowseActivity(settingsPageProviders) {
|
||||
class SpaActivity : BrowseActivity(SpaEnvironment.settingsPageProviders) {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun startSpaActivity(context: Context, startDestination: String) {
|
||||
|
||||
@@ -18,20 +18,34 @@ package com.android.settings.spa
|
||||
|
||||
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
||||
import com.android.settings.spa.home.HomePageProvider
|
||||
import com.android.settingslib.spa.framework.common.SettingsEntryRepository
|
||||
import com.android.settingslib.spa.framework.common.SettingsPage
|
||||
import com.android.settings.spa.notification.AppListNotificationsPageProvider
|
||||
import com.android.settings.spa.notification.NotificationMainPageProvider
|
||||
import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListTemplate
|
||||
|
||||
private val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
|
||||
allProviders = listOf(InstallUnknownAppsListProvider),
|
||||
)
|
||||
object SpaEnvironment {
|
||||
val settingsPageProviders: SettingsPageProviderRepository by
|
||||
lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
|
||||
allProviders = listOf(InstallUnknownAppsListProvider),
|
||||
)
|
||||
SettingsPageProviderRepository(
|
||||
allPageProviders = listOf(
|
||||
HomePageProvider,
|
||||
NotificationMainPageProvider,
|
||||
AppListNotificationsPageProvider,
|
||||
) + togglePermissionAppListTemplate.createPageProviders(),
|
||||
rootPages = listOf(
|
||||
SettingsPage(HomePageProvider.name),
|
||||
),
|
||||
)
|
||||
}
|
||||
val settingsEntryRepository: SettingsEntryRepository by
|
||||
lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
SettingsEntryRepository(settingsPageProviders)
|
||||
}
|
||||
|
||||
val settingsPageProviders = SettingsPageProviderRepository(
|
||||
allPagesList = listOf(
|
||||
HomePageProvider,
|
||||
NotificationMainPageProvider,
|
||||
AppListNotificationsPageProvider,
|
||||
) + togglePermissionAppListTemplate.createPageProviders(),
|
||||
rootPages = listOf(HomePageProvider.name),
|
||||
)
|
||||
// TODO: add other environment setup here.
|
||||
}
|
||||
|
||||
@@ -17,9 +17,12 @@
|
||||
package com.android.settings.spa.home
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.android.settings.R
|
||||
import com.android.settings.spa.SpaEnvironment
|
||||
import com.android.settings.spa.app.InstallUnknownAppsListProvider
|
||||
import com.android.settings.spa.notification.NotificationMainPageProvider
|
||||
import com.android.settingslib.spa.framework.common.SettingsPageProvider
|
||||
@@ -39,5 +42,16 @@ private fun HomePage() {
|
||||
HomeScaffold(title = stringResource(R.string.settings_label)) {
|
||||
InstallUnknownAppsListProvider.EntryItem()
|
||||
NotificationMainPageProvider.EntryItem()
|
||||
|
||||
/**
|
||||
* A test button to generate hierarchy.
|
||||
* TODO: remove it once the content provider is ready.
|
||||
*/
|
||||
Button(onClick = {
|
||||
SpaEnvironment.settingsEntryRepository.printAllPages()
|
||||
SpaEnvironment.settingsEntryRepository.printAllEntries()
|
||||
}) {
|
||||
Text(text = "Generate Entry")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user