• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.airbnb.lottie.sample.compose.player
2 
3 import androidx.compose.foundation.layout.Row
4 import androidx.compose.foundation.layout.Spacer
5 import androidx.compose.foundation.layout.padding
6 import androidx.compose.foundation.layout.size
7 import androidx.compose.foundation.layout.width
8 import androidx.compose.foundation.shape.RoundedCornerShape
9 import androidx.compose.material.Icon
10 import androidx.compose.material.Surface
11 import androidx.compose.material.Text
12 import androidx.compose.runtime.Composable
13 import androidx.compose.runtime.remember
14 import androidx.compose.ui.Alignment
15 import androidx.compose.ui.Modifier
16 import androidx.compose.ui.draw.clipToBounds
17 import androidx.compose.ui.graphics.Color
18 import androidx.compose.ui.graphics.painter.Painter
19 import androidx.compose.ui.res.painterResource
20 import androidx.compose.ui.res.stringResource
21 import androidx.compose.ui.text.TextStyle
22 import androidx.compose.ui.tooling.preview.Preview
23 import androidx.compose.ui.unit.dp
24 import androidx.compose.ui.unit.sp
25 import com.airbnb.lottie.sample.compose.R
26 import com.airbnb.lottie.sample.compose.ui.Teal
27 
28 @Composable
ToolbarChipnull29 fun ToolbarChip(
30     label: String,
31     isActivated: Boolean,
32     onClick: (isActivated: Boolean) -> Unit,
33     modifier: Modifier = Modifier,
34     iconPainter: Painter? = null,
35 ) {
36     val unActivatedColor = remember { Color(0xFF444444) }
37     Surface(
38         onClick = { onClick(!isActivated) },
39         shape = RoundedCornerShape(3.dp),
40         color = if (isActivated) Teal else Color(0xFFEAEAEA),
41         modifier = Modifier
42             .then(modifier)
43             .clipToBounds()
44     ) {
45         Row(
46             verticalAlignment = Alignment.CenterVertically,
47             modifier = Modifier
48                 .padding(horizontal = 8.dp, vertical = 4.dp)
49         ) {
50             if (iconPainter != null) {
51                 Icon(
52                     iconPainter,
53                     tint = if (isActivated) Color.White else unActivatedColor,
54                     modifier = Modifier
55                         .size(12.dp),
56                     contentDescription = null
57                 )
58                 Spacer(modifier = Modifier.width(6.dp))
59             }
60             Text(
61                 label,
62                 color = if (isActivated) Color.White else unActivatedColor,
63                 style = TextStyle(fontSize = 12.sp)
64             )
65         }
66     }
67 }
68 
69 @Preview
70 @Composable
PreviewToolbarChipnull71 fun PreviewToolbarChip() {
72     ToolbarChip(
73         iconPainter = painterResource(R.drawable.ic_border),
74         label = stringResource(R.string.toolbar_item_border),
75         isActivated = false,
76         onClick = {}
77     )
78 }