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

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

Merge "Add reset for preview support in SpaEnvironmentFactory."

parents c10e369a d5a7a045
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntry
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.gallery.R
@@ -76,6 +77,7 @@ object HomePageProvider : SettingsPageProvider {
@Preview(showBackground = true)
@Composable
private fun HomeScreenPreview() {
    SpaEnvironmentFactory.resetForPreview()
    SettingsTheme {
        HomePageProvider.Page(null)
    }
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import com.android.settingslib.spa.framework.common.SettingsEntry
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPage
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.gallery.SettingsPageProviderEnum
@@ -115,6 +116,7 @@ object ArgumentPageProvider : SettingsPageProvider {
@Preview(showBackground = true)
@Composable
private fun ArgumentPagePreview() {
    SpaEnvironmentFactory.resetForPreview()
    SettingsTheme {
        ArgumentPageProvider.Page(
            ArgumentPageModel.buildArgument(stringParam = "foo", intParam = 0)
+1 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ object PreferencePageProvider : SettingsPageProvider {
@Preview(showBackground = true)
@Composable
private fun PreferencePagePreview() {
    SpaEnvironmentFactory.resetForPreview()
    SettingsTheme {
        PreferencePageProvider.Page(null)
    }
+19 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.settingslib.spa.framework.common
import android.app.Activity
import android.content.Context
import android.util.Log
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext

private const val TAG = "SpaEnvironment"

@@ -30,6 +32,20 @@ object SpaEnvironmentFactory {
        Log.d(TAG, "reset")
    }

    @Composable
    fun resetForPreview() {
        val context = LocalContext.current
        spaEnvironment = object : SpaEnvironment(context) {
            override val pageProviderRepository = lazy {
                SettingsPageProviderRepository(
                    allPageProviders = emptyList(),
                    rootPages = emptyList()
                )
            }
        }
        Log.d(TAG, "resetForPreview")
    }

    val instance: SpaEnvironment
        get() {
            if (spaEnvironment == null)
@@ -38,11 +54,13 @@ object SpaEnvironmentFactory {
        }
}

abstract class SpaEnvironment(val context: Context) {
abstract class SpaEnvironment(context: Context) {
    abstract val pageProviderRepository: Lazy<SettingsPageProviderRepository>

    val entryRepository = lazy { SettingsEntryRepository(pageProviderRepository.value) }

    val appContext: Context = context.applicationContext

    open val browseActivityClass: Class<out Activity>? = null

    open val entryProviderAuthorities: String? = null