Merge "Refactor SppRepo"

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 22 additions and 14 deletions

View File

@@ -35,7 +35,7 @@ object SpaEnvironment {
val PageProviderRepository: SettingsPageProviderRepository by
lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
SettingsPageProviderRepository(
allPagesList = listOf(
allPageProviders = listOf(
HomePageProvider,
PreferenceMainPageProvider,
PreferencePageProvider,
@@ -48,7 +48,7 @@ object SpaEnvironment {
FooterPageProvider,
IllustrationPageProvider,
),
rootPageData = listOf(
rootPages = listOf(
SettingsPage(HomePageProvider.name)
) + ArgumentPageProvider.buildRootPages()
)

View File

@@ -59,6 +59,8 @@ class SettingsEntryRepository(sppRepository: SettingsPageProviderRepository) {
}
}
}
logMsg("Initialize Completed: ${entryMap.size} entries in ${pageToEntryListMap.size} pages")
}
fun printAllPages() {

View File

@@ -16,28 +16,30 @@
package com.android.settingslib.spa.framework.common
import android.util.Log
class SettingsPageProviderRepository(
allPagesList: List<SettingsPageProvider>,
private val rootPages: List<String> = emptyList(),
// TODO: deprecate rootPages above
private val rootPageData: List<SettingsPage> = emptyList(),
allPageProviders: List<SettingsPageProvider>,
private val rootPages: List<SettingsPage> = emptyList(),
) {
// Map of page name to its provider.
private val pageProviderMap: Map<String, SettingsPageProvider> =
allPagesList.associateBy { it.name }
private val pageProviderMap: Map<String, SettingsPageProvider>
init {
pageProviderMap = allPageProviders.associateBy { it.name }
logMsg("Initialize Completed: ${pageProviderMap.size} spp")
}
fun getDefaultStartPageName(): String {
if (rootPageData.isNotEmpty()) {
return rootPageData[0].name
return if (rootPages.isNotEmpty()) {
rootPages[0].name
} else {
return rootPages.getOrElse(0) {
return ""
}
""
}
}
fun getAllRootPages(): Collection<SettingsPage> {
return rootPageData
return rootPages
}
fun getAllProviders(): Collection<SettingsPageProvider> {
@@ -48,3 +50,7 @@ class SettingsPageProviderRepository(
return pageProviderMap[name]
}
}
private fun logMsg(message: String) {
Log.d("SppRepo", message)
}