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

Commit 597e9949 authored by Zekan Qian's avatar Zekan Qian Committed by Android (Google) Code Review
Browse files

Merge "Refactor SppRepo"

parents 264350b0 8f6ea62c
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)
}