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

Commit ea31999b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add RegularScaffold for SpaLib"

parents 50bb9897 ba27898d
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settingslib.spa.gallery.page
package com.android.settingslib.spa.gallery.page


import android.os.Bundle
import android.os.Bundle
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation.NavType
import androidx.navigation.NavType
@@ -28,12 +27,14 @@ import com.android.settingslib.spa.framework.compose.toState
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold


private const val TITLE = "Sample page with arguments"
private const val STRING_PARAM_NAME = "stringParam"
private const val STRING_PARAM_NAME = "stringParam"
private const val INT_PARAM_NAME = "intParam"
private const val INT_PARAM_NAME = "intParam"


object ArgumentPageProvider : SettingsPageProvider {
object ArgumentPageProvider : SettingsPageProvider {
    override val name = Destinations.Argument
    override val name = "Argument"


    override val arguments = listOf(
    override val arguments = listOf(
        navArgument(STRING_PARAM_NAME) { type = NavType.StringType },
        navArgument(STRING_PARAM_NAME) { type = NavType.StringType },
@@ -51,17 +52,17 @@ object ArgumentPageProvider : SettingsPageProvider {
    @Composable
    @Composable
    fun EntryItem(stringParam: String, intParam: Int) {
    fun EntryItem(stringParam: String, intParam: Int) {
        Preference(object : PreferenceModel {
        Preference(object : PreferenceModel {
            override val title = "Sample page with arguments"
            override val title = TITLE
            override val summary =
            override val summary =
                "$STRING_PARAM_NAME=$stringParam, $INT_PARAM_NAME=$intParam".toState()
                "$STRING_PARAM_NAME=$stringParam, $INT_PARAM_NAME=$intParam".toState()
            override val onClick = navigator("${Destinations.Argument}/$stringParam/$intParam")
            override val onClick = navigator("$name/$stringParam/$intParam")
        })
        })
    }
    }
}
}


@Composable
@Composable
fun ArgumentPage(stringParam: String, intParam: Int) {
fun ArgumentPage(stringParam: String, intParam: Int) {
    Column {
    RegularScaffold(title = TITLE) {
        Preference(object : PreferenceModel {
        Preference(object : PreferenceModel {
            override val title = "String param value"
            override val title = "String param value"
            override val summary = stringParam.toState()
            override val summary = stringParam.toState()
+5 −6
Original line number Original line Diff line number Diff line
@@ -17,12 +17,8 @@
package com.android.settingslib.spa.gallery.page
package com.android.settingslib.spa.gallery.page


import android.os.Bundle
import android.os.Bundle
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.api.SettingsPageProvider
import com.android.settingslib.spa.framework.api.SettingsPageProvider
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.compose.navigator
@@ -30,8 +26,11 @@ import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Footer
import com.android.settingslib.spa.widget.ui.Footer


private const val TITLE = "Sample Footer"

object FooterPageProvider : SettingsPageProvider {
object FooterPageProvider : SettingsPageProvider {
    override val name = "Footer"
    override val name = "Footer"


@@ -43,7 +42,7 @@ object FooterPageProvider : SettingsPageProvider {
    @Composable
    @Composable
    fun EntryItem() {
    fun EntryItem() {
        Preference(object : PreferenceModel {
        Preference(object : PreferenceModel {
            override val title = "Sample Footer"
            override val title = TITLE
            override val onClick = navigator(name)
            override val onClick = navigator(name)
        })
        })
    }
    }
@@ -51,7 +50,7 @@ object FooterPageProvider : SettingsPageProvider {


@Composable
@Composable
private fun FooterPage() {
private fun FooterPage() {
    Column(Modifier.verticalScroll(rememberScrollState())) {
    RegularScaffold(title = TITLE) {
        Preference(remember {
        Preference(remember {
            object : PreferenceModel {
            object : PreferenceModel {
                override val title = "Some Preference"
                override val title = "Some Preference"
+1 −1
Original line number Original line Diff line number Diff line
@@ -31,7 +31,7 @@ import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.gallery.R
import com.android.settingslib.spa.gallery.R


object HomePageProvider : SettingsPageProvider {
object HomePageProvider : SettingsPageProvider {
    override val name = Destinations.Home
    override val name = "Home"


    @Composable
    @Composable
    override fun Page(arguments: Bundle?) {
    override fun Page(arguments: Bundle?) {
+1 −9
Original line number Original line Diff line number Diff line
@@ -18,14 +18,6 @@ package com.android.settingslib.spa.gallery.page


import com.android.settingslib.spa.framework.api.SettingsPageRepository
import com.android.settingslib.spa.framework.api.SettingsPageRepository


object Destinations {
    const val Home = "Home"
    const val Preference = "Preference"
    const val SwitchPreference = "SwitchPreference"
    const val Argument = "Argument"
    const val Slider = "Slider"
}

val galleryPageRepository = SettingsPageRepository(
val galleryPageRepository = SettingsPageRepository(
    allPages = listOf(
    allPages = listOf(
        HomePageProvider,
        HomePageProvider,
@@ -36,5 +28,5 @@ val galleryPageRepository = SettingsPageRepository(
        SettingsPagerPageProvider,
        SettingsPagerPageProvider,
        FooterPageProvider,
        FooterPageProvider,
    ),
    ),
    startDestination = Destinations.Home,
    startDestination = HomePageProvider.name,
)
)
+7 −8
Original line number Original line Diff line number Diff line
@@ -17,9 +17,6 @@
package com.android.settingslib.spa.gallery.page
package com.android.settingslib.spa.gallery.page


import android.os.Bundle
import android.os.Bundle
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.DisabledByDefault
import androidx.compose.material.icons.outlined.DisabledByDefault
import androidx.compose.material.icons.outlined.TouchApp
import androidx.compose.material.icons.outlined.TouchApp
@@ -31,7 +28,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.produceState
import androidx.compose.runtime.produceState
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.api.SettingsPageProvider
import com.android.settingslib.spa.framework.api.SettingsPageProvider
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.compose.navigator
@@ -39,11 +35,14 @@ import com.android.settingslib.spa.framework.compose.toState
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.SettingsIcon
import com.android.settingslib.spa.widget.ui.SettingsIcon
import kotlinx.coroutines.delay
import kotlinx.coroutines.delay


private const val TITLE = "Sample Preference"

object PreferencePageProvider : SettingsPageProvider {
object PreferencePageProvider : SettingsPageProvider {
    override val name = Destinations.Preference
    override val name = "Preference"


    @Composable
    @Composable
    override fun Page(arguments: Bundle?) {
    override fun Page(arguments: Bundle?) {
@@ -53,15 +52,15 @@ object PreferencePageProvider : SettingsPageProvider {
    @Composable
    @Composable
    fun EntryItem() {
    fun EntryItem() {
        Preference(object : PreferenceModel {
        Preference(object : PreferenceModel {
            override val title = "Sample Preference"
            override val title = TITLE
            override val onClick = navigator(Destinations.Preference)
            override val onClick = navigator(name)
        })
        })
    }
    }
}
}


@Composable
@Composable
private fun PreferencePage() {
private fun PreferencePage() {
    Column(Modifier.verticalScroll(rememberScrollState())) {
    RegularScaffold(title = TITLE) {
        Preference(object : PreferenceModel {
        Preference(object : PreferenceModel {
            override val title = "Preference"
            override val title = "Preference"
        })
        })
Loading