Skip to content

Commit 39ceaa5

Browse files
committed
clear screen on touch immediately
1 parent ba39d7f commit 39ceaa5

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

app/src/main/java/com/uravgcode/chooser/chooser/presentation/Chooser.kt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,10 @@ class Chooser(
120120

121121
private fun handleActionDown(event: MotionEvent, actionIndex: Int, pointerId: Int) {
122122
if (winnerChosen) {
123-
if (clearOnTouch) resetGame()
123+
if (clearOnTouch) {
124+
circleManager.clear()
125+
restoreDefaultState()
126+
}
124127
return
125128
}
126129

@@ -167,7 +170,6 @@ class Chooser(
167170
}
168171

169172
private fun resetGame() {
170-
circleManager.clear()
171173
colorManager.generateRandomColorPalette(5)
172174

173175
if (!winnerChosen) {
@@ -176,14 +178,7 @@ class Chooser(
176178
}
177179

178180
handler.postDelayed(
179-
{
180-
blackSpeed = 1f
181-
handler.postDelayed({
182-
setButtonVisibility(true)
183-
winnerChosen = false
184-
setBackgroundColor(Color.BLACK)
185-
}, 150)
186-
},
181+
{ restoreDefaultState() },
187182
when (mode) {
188183
Mode.SINGLE -> Circle.circleLifetime
189184
Mode.GROUP -> GroupCircle.circleLifetime
@@ -192,6 +187,15 @@ class Chooser(
192187
)
193188
}
194189

190+
private fun restoreDefaultState() {
191+
blackSpeed = 1f
192+
handler.postDelayed({
193+
setButtonVisibility(true)
194+
winnerChosen = false
195+
setBackgroundColor(Color.BLACK)
196+
}, 150)
197+
}
198+
195199
private fun selectWinner() {
196200
if (circleManager.count <= count) return
197201

app/src/main/java/com/uravgcode/chooser/chooser/presentation/circle/Circle.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ open class Circle(var x: Float, var y: Float, radius: Float, var color: Int) {
102102
}
103103
}
104104

105+
fun removeFingerImmediately() {
106+
hasFinger = false
107+
}
108+
105109
open fun setWinner() {
106110
winnerCircle = true
107111
}

app/src/main/java/com/uravgcode/chooser/chooser/presentation/manager/CircleManager.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,16 @@ class CircleManager {
3838
fun remove(key: Int): Circle? {
3939
return activeCircles.remove(key)?.also {
4040
it.removeFinger()
41-
deadCircles += it
41+
deadCircles.add(it)
4242
}
4343
}
4444

4545
fun clear() {
46+
deadCircles.forEach {
47+
it.removeFingerImmediately()
48+
}
4649
activeCircles.values.forEach { circle ->
47-
circle.removeFinger()
50+
circle.removeFingerImmediately()
4851
deadCircles.add(circle)
4952
}
5053
activeCircles.clear()

0 commit comments

Comments
 (0)