Merge "Refactor SppRepo"
This commit is contained in:
@@ -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()
|
||||
)
|
||||
|
||||
@@ -59,6 +59,8 @@ class SettingsEntryRepository(sppRepository: SettingsPageProviderRepository) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
logMsg("Initialize Completed: ${entryMap.size} entries in ${pageToEntryListMap.size} pages")
|
||||
}
|
||||
|
||||
fun printAllPages() {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user