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

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

Merge "Followup SppRepo refactor in Settings"

parents 62e1f5df 3e34da5d
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")
        }
    }
}