Skip to content

Commit 30e1fcf

Browse files
committed
feat: Update Setting pref icon color
Signed-off-by: Hu Shenghao <dede.hu@qq.com>
1 parent b09e98c commit 30e1fcf

File tree

2 files changed

+38
-12
lines changed
  • app/src/main/java/com/dede/android_eggs/views/settings/compose/basic
  • core/settings/src/main/java/com/dede/android_eggs/views/settings/compose/prefs

2 files changed

+38
-12
lines changed

app/src/main/java/com/dede/android_eggs/views/settings/compose/basic/SettingPref.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ fun SettingPref(
8080
SettingPrefIcon(
8181
icon = leadingIcon,
8282
contentDescription = title,
83-
modifier = Modifier.padding(start = 14.dp),
83+
modifier = Modifier.padding(start = 12.dp),
8484
)
8585
},
8686
title = title,

core/settings/src/main/java/com/dede/android_eggs/views/settings/compose/prefs/SettingPrefIcon.kt

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1+
@file:OptIn(ExperimentalMaterial3ExpressiveApi::class)
2+
13
package com.dede.android_eggs.views.settings.compose.prefs
24

3-
import androidx.compose.foundation.layout.padding
4-
import androidx.compose.material3.Card
5-
import androidx.compose.material3.CardDefaults
5+
import androidx.compose.foundation.layout.Box
6+
import androidx.compose.foundation.layout.size
7+
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
68
import androidx.compose.material3.Icon
9+
import androidx.compose.material3.IconButtonDefaults
710
import androidx.compose.material3.MaterialTheme.colorScheme
11+
import androidx.compose.material3.Surface
812
import androidx.compose.runtime.Composable
13+
import androidx.compose.runtime.Immutable
914
import androidx.compose.runtime.LaunchedEffect
1015
import androidx.compose.runtime.getValue
1116
import androidx.compose.runtime.mutableStateOf
1217
import androidx.compose.runtime.remember
1318
import androidx.compose.runtime.setValue
19+
import androidx.compose.ui.Alignment
1420
import androidx.compose.ui.Modifier
21+
import androidx.compose.ui.graphics.Color
1522
import androidx.compose.ui.graphics.Shape
1623
import androidx.compose.ui.graphics.vector.ImageVector
17-
import androidx.compose.ui.unit.dp
1824
import androidx.graphics.shapes.RoundedPolygon
1925
import com.dede.android_eggs.views.settings.compose.basic.SettingPrefUtil
2026
import com.dede.android_eggs.views.settings.compose.prefs.IconShapePrefUtil.toShapePlus
@@ -38,22 +44,42 @@ fun SettingPrefIcon(
3844
)
3945
}
4046

47+
object SettingPrefIconDefaults {
48+
@Composable
49+
fun defaultColors() = SettingPrefIconColors(
50+
containerColor = colorScheme.secondaryContainer,
51+
contentColor = colorScheme.onSecondaryContainer,
52+
)
53+
}
54+
55+
@Immutable
56+
class SettingPrefIconColors(
57+
val containerColor: Color,
58+
val contentColor: Color,
59+
)
60+
4161
@Composable
4262
fun SettingPrefIcon(
4363
icon: ImageVector,
4464
shape: Shape,
4565
modifier: Modifier = Modifier,
4666
contentDescription: String? = null,
67+
colors: SettingPrefIconColors = SettingPrefIconDefaults.defaultColors(),
4768
) {
48-
Card(
69+
Surface(
4970
modifier = modifier,
5071
shape = shape,
51-
colors = CardDefaults.cardColors(containerColor = colorScheme.primaryContainer)
72+
color = colors.containerColor,
73+
contentColor = colors.contentColor,
5274
) {
53-
Icon(
54-
imageVector = icon,
55-
contentDescription = contentDescription,
56-
modifier = Modifier.padding(6.dp)
57-
)
75+
Box(
76+
modifier = Modifier.size(IconButtonDefaults.smallContainerSize()),
77+
contentAlignment = Alignment.Center,
78+
) {
79+
Icon(
80+
imageVector = icon,
81+
contentDescription = contentDescription,
82+
)
83+
}
5884
}
5985
}

0 commit comments

Comments
 (0)