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

Commit b7d375e1 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Add 4dp round corner for SettingsCardContent" into main

parents 0da9b54f 9ac4a04a
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -17,24 +17,32 @@
package com.android.settingslib.spa.gallery.card

import android.os.Bundle
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Error
import androidx.compose.material.icons.outlined.PowerOff
import androidx.compose.material.icons.outlined.Shield
import androidx.compose.material.icons.outlined.WarningAmber
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.gallery.R
import com.android.settingslib.spa.widget.card.CardButton
import com.android.settingslib.spa.widget.card.CardModel
import com.android.settingslib.spa.widget.card.SettingsCard
import com.android.settingslib.spa.widget.card.SettingsCollapsibleCard
import com.android.settingslib.spa.widget.card.SettingsCardContent
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -50,6 +58,7 @@ object CardPageProvider : SettingsPageProvider {
            SettingsCardWithIcon()
            SettingsCardWithoutIcon()
            SampleSettingsCollapsibleCard()
            SampleSettingsCardContent()
        }
    }

@@ -108,6 +117,32 @@ object CardPageProvider : SettingsPageProvider {
        )
    }

    @Composable
    fun SampleSettingsCardContent() {
        SettingsCard {
            SettingsCardContent {
                Box(
                    Modifier
                        .fillMaxWidth()
                        .clickable { }
                        .padding(SettingsDimension.dialogItemPadding),
                ) {
                    Text(text = "Abc")
                }
            }
            SettingsCardContent {
                Box(
                    Modifier
                        .fillMaxWidth()
                        .clickable { }
                        .padding(SettingsDimension.dialogItemPadding),
                ) {
                    Text(text = "123")
                }
            }
        }
    }

    fun buildInjectEntry(): SettingsEntryBuilder {
        return SettingsEntryBuilder.createInject(owner = createSettingsPage())
            .setUiLayoutFn {
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.ui.unit.dp

object SettingsShape {
    val CornerExtraSmall = RoundedCornerShape(4.dp)

    val CornerMedium = RoundedCornerShape(12.dp)

    val CornerExtraLarge = RoundedCornerShape(28.dp)
+28 −9
Original line number Diff line number Diff line
@@ -36,10 +36,13 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp
import com.android.settingslib.spa.debug.UiModePreviews
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsShape.CornerExtraLarge
import com.android.settingslib.spa.framework.theme.SettingsShape.CornerExtraSmall
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.ui.SettingsBody
import com.android.settingslib.spa.widget.ui.SettingsTitle
@@ -49,7 +52,7 @@ fun SettingsCard(content: @Composable ColumnScope.() -> Unit) {
    Card(
        shape = CornerExtraLarge,
        colors = CardDefaults.cardColors(
            containerColor = SettingsTheme.colorScheme.surface,
            containerColor = Color.Transparent,
        ),
        modifier = Modifier
            .fillMaxWidth()
@@ -61,6 +64,20 @@ fun SettingsCard(content: @Composable ColumnScope.() -> Unit) {
    )
}

@Composable
fun SettingsCardContent(content: @Composable ColumnScope.() -> Unit) {
    Card(
        shape = CornerExtraSmall,
        colors = CardDefaults.cardColors(
            containerColor = SettingsTheme.colorScheme.surface,
        ),
        modifier = Modifier
            .fillMaxWidth()
            .padding(vertical = 1.dp),
        content = content,
    )
}

@Composable
fun SettingsCard(model: CardModel) {
    SettingsCard {
@@ -70,6 +87,7 @@ fun SettingsCard(model: CardModel) {

@Composable
internal fun SettingsCardImpl(model: CardModel) {
    SettingsCardContent {
        Column(
            modifier = Modifier.padding(SettingsDimension.itemPaddingStart),
            verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround)
@@ -80,6 +98,7 @@ internal fun SettingsCardImpl(model: CardModel) {
            Buttons(model.buttons)
        }
    }
}

@Composable
private fun CardIcon(imageVector: ImageVector?) {
+4 −7
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Error
import androidx.compose.material.icons.outlined.PowerOff
import androidx.compose.material.icons.outlined.Shield
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
@@ -54,18 +53,16 @@ import com.android.settingslib.spa.widget.ui.SettingsTitleSmall
fun SettingsCollapsibleCard(
    title: String,
    imageVector: ImageVector,
    models: List<CardModel>
    models: List<CardModel>,
) {
    var expanded by rememberSaveable { mutableStateOf(false) }
    SettingsCard {
        SettingsCardContent {
            Header(title, imageVector, models.size, expanded) { expanded = it }
        }
        AnimatedVisibility(expanded) {
            Column {
                for (model in models) {
                    HorizontalDivider(
                        thickness = SettingsDimension.paddingSmall,
                        color = MaterialTheme.colorScheme.surface,
                    )
                    SettingsCardImpl(model)
                }
            }