|
17 | 17 | package com.example.jetnews.ui.interests
|
18 | 18 |
|
19 | 19 | import androidx.compose.Composable
|
| 20 | +import androidx.compose.Pivotal |
20 | 21 | import androidx.ui.core.Modifier
|
21 |
| -import androidx.ui.foundation.Box |
22 | 22 | import androidx.ui.foundation.Icon
|
23 | 23 | import androidx.ui.foundation.shape.corner.CircleShape
|
24 | 24 | import androidx.ui.layout.padding
|
25 | 25 | import androidx.ui.layout.preferredSize
|
26 |
| -import androidx.ui.material.ColorPalette |
| 26 | +import androidx.ui.material.EmphasisAmbient |
27 | 27 | import androidx.ui.material.MaterialTheme
|
28 |
| -import androidx.ui.res.vectorResource |
| 28 | +import androidx.ui.material.ProvideEmphasis |
| 29 | +import androidx.ui.material.Surface |
| 30 | +import androidx.ui.material.icons.Icons |
| 31 | +import androidx.ui.material.icons.filled.Add |
| 32 | +import androidx.ui.material.icons.filled.Done |
29 | 33 | import androidx.ui.tooling.preview.Preview
|
30 | 34 | import androidx.ui.unit.dp
|
31 |
| -import com.example.jetnews.R |
32 | 35 | import com.example.jetnews.ui.ThemedPreview
|
33 |
| -import com.example.jetnews.ui.darkThemeColors |
34 |
| -import com.example.jetnews.ui.lightThemeColors |
35 | 36 |
|
36 | 37 | @Composable
|
37 | 38 | fun SelectTopicButton(
|
38 | 39 | modifier: Modifier = Modifier,
|
39 |
| - selected: Boolean = false |
| 40 | + @Pivotal selected: Boolean = false |
40 | 41 | ) {
|
41 |
| - if (selected) { |
42 |
| - SelectTopicButtonOn(modifier.preferredSize(36.dp, 36.dp)) |
| 42 | + val icon = if (selected) Icons.Filled.Done else Icons.Filled.Add |
| 43 | + val backgroundColor = if (selected) { |
| 44 | + MaterialTheme.colors.primary |
43 | 45 | } else {
|
44 |
| - SelectTopicButtonOff(modifier.preferredSize(36.dp, 36.dp)) |
| 46 | + MaterialTheme.colors.onSurface.copy(alpha = 0.12f) |
45 | 47 | }
|
46 |
| -} |
47 |
| - |
48 |
| -@Composable |
49 |
| -private fun SelectTopicButtonOn(modifier: Modifier = Modifier) { |
50 |
| - Box( |
51 |
| - backgroundColor = MaterialTheme.colors.primary, |
52 |
| - shape = CircleShape, |
53 |
| - modifier = modifier |
54 |
| - ) { |
55 |
| - Icon(vectorResource(R.drawable.ic_check)) |
56 |
| - } |
57 |
| -} |
58 |
| - |
59 |
| -@Composable |
60 |
| -private fun SelectTopicButtonOff(modifier: Modifier = Modifier) { |
61 |
| - val borderColor = MaterialTheme.colors.onSurface.copy(alpha = 0.12f) |
62 |
| - Box( |
63 |
| - backgroundColor = borderColor, |
| 48 | + Surface( |
| 49 | + color = backgroundColor, |
64 | 50 | shape = CircleShape,
|
65 |
| - modifier = modifier |
| 51 | + modifier = modifier.preferredSize(36.dp, 36.dp) |
66 | 52 | ) {
|
67 |
| - Icon(vectorResource(R.drawable.ic_add)) |
| 53 | + ProvideEmphasis(EmphasisAmbient.current.high) { |
| 54 | + Icon(icon) |
| 55 | + } |
68 | 56 | }
|
69 | 57 | }
|
70 | 58 |
|
71 | 59 | @Preview("Off")
|
72 | 60 | @Composable
|
73 | 61 | fun SelectTopicButtonPreviewOff() {
|
74 | 62 | SelectTopicButtonPreviewTemplate(
|
75 |
| - lightThemeColors, |
76 |
| - false |
| 63 | + darkTheme = false, |
| 64 | + selected = false |
77 | 65 | )
|
78 | 66 | }
|
79 | 67 |
|
80 | 68 | @Preview("On")
|
81 | 69 | @Composable
|
82 | 70 | fun SelectTopicButtonPreviewOn() {
|
83 | 71 | SelectTopicButtonPreviewTemplate(
|
84 |
| - lightThemeColors, |
85 |
| - true |
| 72 | + darkTheme = false, |
| 73 | + selected = true |
86 | 74 | )
|
87 | 75 | }
|
88 | 76 |
|
89 | 77 | @Preview("Off - dark theme")
|
90 | 78 | @Composable
|
91 | 79 | fun SelectTopicButtonPreviewOffDark() {
|
92 | 80 | SelectTopicButtonPreviewTemplate(
|
93 |
| - darkThemeColors, |
94 |
| - false |
| 81 | + darkTheme = true, |
| 82 | + selected = false |
95 | 83 | )
|
96 | 84 | }
|
97 | 85 |
|
98 | 86 | @Preview("On - dark theme")
|
99 | 87 | @Composable
|
100 | 88 | fun SelectTopicButtonPreviewOnDark() {
|
101 | 89 | SelectTopicButtonPreviewTemplate(
|
102 |
| - darkThemeColors, |
103 |
| - true |
| 90 | + darkTheme = true, |
| 91 | + selected = true |
104 | 92 | )
|
105 | 93 | }
|
106 | 94 |
|
107 | 95 | @Composable
|
108 |
| -private fun SelectTopicButtonPreviewTemplate(themeColors: ColorPalette, selected: Boolean) { |
109 |
| - ThemedPreview(themeColors) { |
| 96 | +private fun SelectTopicButtonPreviewTemplate( |
| 97 | + darkTheme: Boolean = false, |
| 98 | + selected: Boolean |
| 99 | +) { |
| 100 | + ThemedPreview(darkTheme) { |
110 | 101 | SelectTopicButton(
|
111 | 102 | modifier = Modifier.padding(32.dp),
|
112 | 103 | selected = selected
|
|
0 commit comments