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

Commit 3e34da5d authored by Zekan Qian's avatar Zekan Qian
Browse files

Followup SppRepo refactor in Settings

Bug: 244122804
Test: manual - build SettingsGoogle
Change-Id: Ib0d75d7a34a6f8d922749916b793dcb81b9fd0fd
parent fc9109c4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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) {
+25 −11
Original line number Diff line number Diff line
@@ -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(
object SpaEnvironment {
    val settingsPageProviders: SettingsPageProviderRepository by
    lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
        val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
            allProviders = listOf(InstallUnknownAppsListProvider),
        )

val settingsPageProviders = SettingsPageProviderRepository(
    allPagesList = listOf(
        SettingsPageProviderRepository(
            allPageProviders = listOf(
                HomePageProvider,
                NotificationMainPageProvider,
                AppListNotificationsPageProvider,
            ) + togglePermissionAppListTemplate.createPageProviders(),
    rootPages = listOf(HomePageProvider.name),
            rootPages = listOf(
                SettingsPage(HomePageProvider.name),
            ),
        )
    }
    val settingsEntryRepository: SettingsEntryRepository by
    lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
        SettingsEntryRepository(settingsPageProviders)
    }

    // TODO: add other environment setup here.
}
+14 −0
Original line number Diff line number Diff line
@@ -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")
        }
    }
}