Skip to content

Commit 88dce4f

Browse files
add chip sample to list
1 parent d5d924a commit 88dce4f

File tree

6 files changed

+62
-51
lines changed

6 files changed

+62
-51
lines changed

Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/chapter2_material_widgets/Tutorial2_15ChipAndTextLayout.kt

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,16 @@ import com.smarttoolfactory.tutorial1_1basics.ui.Green400
6969
import kotlinx.coroutines.delay
7070
import java.util.UUID
7171

72-
@Immutable
73-
data class ChipData(
74-
val uri: Uri,
75-
val text: String,
76-
val id: String = UUID.randomUUID().toString()
77-
)
72+
@Preview(showBackground = true)
73+
@Composable
74+
fun Tutorial2_15Screen() {
75+
TutorialContent()
76+
}
77+
78+
@Composable
79+
private fun TutorialContent() {
80+
ChipSampleAndTextLayoutSample()
81+
}
7882

7983
@Preview(showBackground = true)
8084
@Composable
@@ -106,7 +110,7 @@ private fun ChipSampleAndTextLayoutSample() {
106110
private fun MyChip(
107111
backgroundColor: Color,
108112
data: ChipData,
109-
onDeleteClick: () -> Unit
113+
onDeleteClick: () -> Unit,
110114
) {
111115
Chip(
112116
modifier = Modifier,
@@ -160,7 +164,7 @@ fun ChipAndTextFieldLayout(
160164
backgroundColor: Color,
161165
list: List<ChipData> = emptyList(),
162166
onChipCreated: (ChipData) -> Unit,
163-
chip: @Composable (data: ChipData, index: Int) -> Unit
167+
chip: @Composable (data: ChipData, index: Int) -> Unit,
164168
) {
165169

166170
var text by remember {
@@ -251,3 +255,10 @@ fun ChipAndTextFieldLayout(
251255
}
252256
}
253257
}
258+
259+
@Immutable
260+
data class ChipData(
261+
val uri: Uri,
262+
val text: String,
263+
val id: String = UUID.randomUUID().toString(),
264+
)

Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/chapter6_graphics/Tutorial6_11EraseProgress.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ fun EraseBitmapSample(imageBitmap: ImageBitmap, modifier: Modifier) {
174174
val canvasWidth = nativeCanvas.width.toFloat()
175175
val canvasHeight = nativeCanvas.height.toFloat()
176176

177-
178177
when (motionEvent) {
179178

180179
MotionEvent.Down -> {
@@ -184,12 +183,11 @@ fun EraseBitmapSample(imageBitmap: ImageBitmap, modifier: Modifier) {
184183
}
185184
MotionEvent.Move -> {
186185

187-
erasePath.quadraticBezierTo(
186+
erasePath.quadraticTo(
188187
previousPosition.x,
189188
previousPosition.y,
190189
(previousPosition.x + currentPosition.x) / 2,
191190
(previousPosition.y + currentPosition.y) / 2
192-
193191
)
194192
previousPosition = currentPosition
195193
}
@@ -206,8 +204,6 @@ fun EraseBitmapSample(imageBitmap: ImageBitmap, modifier: Modifier) {
206204
with(canvas.nativeCanvas) {
207205
drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)
208206

209-
210-
211207
drawImageRect(
212208
image = drawImageBitmap,
213209
dstSize = IntSize(canvasWidth.toInt(), canvasHeight.toInt()),

Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/chapter6_graphics/Tutorial6_27rememberVectorPainter.kt

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ private fun TutorialContent() {
5252

5353
}
5454
}
55+
5556
@Preview
5657
@Composable
5758
private fun CustomVectorDrawableSample() {
@@ -66,7 +67,7 @@ private fun CustomVectorDrawableSample() {
6667
.background(Blue400)
6768
.fillMaxWidth()
6869
.aspectRatio(1f),
69-
index.toInt()
70+
selectedIndex = index.toInt()
7071
)
7172

7273
Slider(
@@ -116,42 +117,24 @@ fun Netherlands(modifier: Modifier = Modifier, selectedIndex: Int) {
116117

117118
val center = pathForSize.getBounds().center
118119

119-
if (selectedIndex == index) {
120-
selectedProvince = province
120+
Group(
121+
name = province,
122+
scaleX = 1.0f,
123+
scaleY = 1.0f,
124+
pivotX = center.x,
125+
pivotY = center.y
126+
) {
127+
for (path in paths) {
128+
androidx.compose.ui.graphics.vector.Path(
129+
stroke = SolidColor(Blue400),
130+
pathData = path,
131+
fill = SolidColor(Color.Black)
132+
)
133+
}
121134
}
122135

123-
if (selectedIndex != index) {
124-
Group(
125-
name = province,
126-
scaleX = 1.0f,
127-
scaleY = 1.0f,
128-
pivotX = center.x,
129-
pivotY = center.y
130-
) {
131-
for (path in paths) {
132-
androidx.compose.ui.graphics.vector.Path(
133-
stroke = SolidColor(Blue400),
134-
pathData = path,
135-
fill = SolidColor(Color.Black),
136-
)
137-
}
138-
}
139-
} else {
140-
Group(
141-
name = province,
142-
scaleX = 1.0f,
143-
scaleY = 1.0f,
144-
pivotX = center.x,
145-
pivotY = center.y
146-
) {
147-
for (path in paths) {
148-
androidx.compose.ui.graphics.vector.Path(
149-
stroke = SolidColor(Blue400),
150-
pathData = path,
151-
fill = SolidColor(Blue400),
152-
)
153-
}
154-
}
136+
if (selectedIndex == index) {
137+
selectedProvince = province
155138
}
156139

157140
index++

Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/chapter6_graphics/Tutorial6_33StoppableInfiniteAnimation.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,14 @@ private fun StoppableInfiniteAnimationSample() {
100100

101101
Spacer(Modifier.height(16.dp))
102102
Text(
103+
modifier = Modifier.padding(horizontal = 16.dp),
103104
text = "Angle: ${rotateAnimationState.angle.toInt()}\n" +
104105
"status: ${rotateAnimationState.rotationStatus}",
105-
fontSize = 16.sp
106+
fontSize = 24.sp
106107
)
107108

108109
Button(
110+
modifier = Modifier.padding(horizontal = 16.dp).fillMaxWidth(),
109111
onClick = {
110112
rotateAnimationState.start()
111113
}
@@ -114,6 +116,7 @@ private fun StoppableInfiniteAnimationSample() {
114116
}
115117

116118
Button(
119+
modifier = Modifier.padding(horizontal = 16.dp).fillMaxWidth(),
117120
onClick = {
118121
rotateAnimationState.stop()
119122
}
@@ -125,7 +128,7 @@ private fun StoppableInfiniteAnimationSample() {
125128

126129
class RotateAnimationState(
127130
val coroutineScope: CoroutineScope,
128-
val duration: Int
131+
val duration: Int,
129132
) {
130133
val angle: Float
131134
get() = animatable.value

Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/tutorial_list/TutorialList.kt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial
2020
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_12Screen
2121
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_13Screen
2222
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_14Screen
23+
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_15Screen
2324
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_1Screen
2425
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_2Screen
2526
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.Tutorial2_3Screen
@@ -642,6 +643,21 @@ fun createComponentTutorialList(onBack: () -> Unit): List<TutorialSectionModel>
642643
)
643644
)
644645

646+
val tutorial2_15 = TutorialSectionModel(
647+
title = stringResource(R.string.title2_15),
648+
description = "Add chips after text is entered and image is selected.",
649+
action = {
650+
Tutorial2_15Screen()
651+
},
652+
tags = listOf(
653+
TAG_COMPOSE,
654+
TAG_CHIP,
655+
TAG_TEXT_FIELD,
656+
TAG_IMAGE,
657+
TAG_SNAPSHOT_STATE_LIST
658+
)
659+
)
660+
645661
return listOf(
646662
tutorial1_1,
647663
tutorial1_2,
@@ -672,7 +688,8 @@ fun createComponentTutorialList(onBack: () -> Unit): List<TutorialSectionModel>
672688
tutorial2_11,
673689
tutorial2_12,
674690
tutorial2_13,
675-
tutorial2_14
691+
tutorial2_14,
692+
tutorial2_15
676693
)
677694
}
678695

Tutorial1-1Basics/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<string name="title2_12">2-12 Dialog</string>
3131
<string name="title2_13">2-13 SwipeToDismiss</string>
3232
<string name="title2_14">2-14 LazyColumn Checkbox</string>
33+
<string name="title2_15">2-15 Chip and TextField</string>
3334
<string name="title3_1_1">3-1-1 Custom Modifier</string>
3435
<string name="title3_1_2">3-1-2 onGloballyPositioned</string>
3536
<string name="title3_1_3">3-1-3 graphicsLayer</string>

0 commit comments

Comments
 (0)