Merge "Followup SppRepo refactor in Settings"

This commit is contained in:
Zekan Qian
2022-09-06 12:36:03 +00:00
committed by Android (Google) Code Review
3 changed files with 40 additions and 12 deletions

View File

@@ -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) {

View File

@@ -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.
}

View File

@@ -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")
}
}
}