diff options
| author | 2023-11-29 16:34:23 +0800 | |
|---|---|---|
| committer | 2023-11-30 14:34:14 +0800 | |
| commit | 9ac4a04ad5f41ebeac01726c429fc65ce14305d5 (patch) | |
| tree | dec9924c120430d2c5c24699b113db3d85494ac4 | |
| parent | a8c95e528c3f8a8fd46f3fe5464bcb6b95a7ab4c (diff) | |
Add 4dp round corner for SettingsCardContent
Bug: 305856149
Test: visual
Change-Id: I0f590ee7798660904aa5fd24c6e0c91f7c17531c
4 files changed, 69 insertions, 16 deletions
diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt index 8386bc1b1ba3..f216abb66a64 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt @@ -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 { diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsShape.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsShape.kt index 8c862d401c6b..f7c5414a420c 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsShape.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsShape.kt @@ -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) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt index 10e26869a76e..43792787c5aa 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt @@ -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() @@ -62,6 +65,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 { SettingsCardImpl(model) @@ -70,14 +87,16 @@ fun SettingsCard(model: CardModel) { @Composable internal fun SettingsCardImpl(model: CardModel) { - Column( - modifier = Modifier.padding(SettingsDimension.itemPaddingStart), - verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround) - ) { - CardIcon(model.imageVector) - SettingsTitle(model.title) - SettingsBody(model.text) - Buttons(model.buttons) + SettingsCardContent { + Column( + modifier = Modifier.padding(SettingsDimension.itemPaddingStart), + verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround) + ) { + CardIcon(model.imageVector) + SettingsTitle(model.title) + SettingsBody(model.text) + Buttons(model.buttons) + } } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt index 7d1064512a64..bf192a18679e 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt @@ -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 { - Header(title, imageVector, models.size, expanded) { expanded = it } + 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) } } |