Skip to content

Commit b0929d9

Browse files
Merge pull request #90 from Fbada006/emmanuelmuturia/task/disable-erase-button-without-drawing
Toggle Eraser Button Based On Drawing Presence
2 parents 1faefe9 + 59df959 commit b0929d9

5 files changed

Lines changed: 14 additions & 3 deletions

File tree

artmaker/src/main/java/io/artmaker/ArtMaker.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ fun ArtMaker(
8080
finishedImage?.let { onFinishDrawing(it) }
8181
}
8282

83+
LaunchedEffect(key1 = state.canErase) {
84+
if (!state.canErase) {
85+
isEraserActive = false
86+
}
87+
}
88+
8389
Scaffold(
8490
floatingActionButton = {
8591
AnimatedVisibility(

artmaker/src/main/java/io/artmaker/ArtMakerUIState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ data class ArtMakerUIState(
2828
val canRedo: Boolean = false,
2929
val canUndo: Boolean = false,
3030
val canClear: Boolean = false,
31+
val canErase: Boolean = false,
3132
val shouldUseStylusOnly: Boolean = false,
3233
val shouldDetectPressure: Boolean = false,
3334
val canShowEnableStylusDialog: Boolean = true,

artmaker/src/main/java/io/artmaker/ArtMakerViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ internal class ArtMakerViewModel(
104104
canRedo = state.canRedo,
105105
canUndo = state.canUndo,
106106
canClear = state.canClear,
107+
canErase = state.canErase,
107108
)
108109
}
109110
}

artmaker/src/main/java/io/artmaker/composables/ArtMakerControlMenu.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ internal fun ArtMakerControlMenu(
150150
)
151151
},
152152
onItemClicked = onActivateEraser,
153+
enabled = state.canErase,
153154
)
154155
MenuItem(
155156
imageVector = ImageVector.vectorResource(id = R.drawable.ic_undo),

artmaker/src/main/java/io/artmaker/drawing/DrawingManager.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,11 @@ internal class DrawingManager {
7272
}
7373

7474
private fun updateCurrentShape(offset: Offset, pressure: Float) {
75-
val idx = _pathList.lastIndex
76-
_pathList[idx].points.add(offset)
77-
_pathList[idx].alphas.add(pressure)
75+
if (pathList.isNotEmpty()) {
76+
val idx = _pathList.lastIndex
77+
_pathList[idx].points.add(offset)
78+
_pathList[idx].alphas.add(pressure)
79+
}
7880
}
7981

8082
private fun undoLastShapePoint() {

0 commit comments

Comments
 (0)