Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f6ea62c authored by Zekan Qian's avatar Zekan Qian
Browse files

Refactor SppRepo

1. rename allPages to allPageProviders
2. deprecate rootPages (which is the page name list), and rename rootPageData to rootPages.

Bug: 244122804
Test: manual - build Spa gallery
Change-Id: I23aa1e9bb6a7654e6ef40efedcfef98fa2331caf
parent d22225ef
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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()
        )
+2 −0
Original line number Diff line number Diff line
@@ -59,6 +59,8 @@ class SettingsEntryRepository(sppRepository: SettingsPageProviderRepository) {
                }
            }
        }

        logMsg("Initialize Completed: ${entryMap.size} entries in ${pageToEntryListMap.size} pages")
    }

    fun printAllPages() {
+18 −12
Original line number Diff line number Diff line
@@ -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)
}