Skip to content

Commit f20b621

Browse files
committed
Integrate setDebouncedOnClickListener
1 parent 5b42891 commit f20b621

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

app/src/main/kotlin/com/w2sv/autocrop/ui/screen/comparison/ComparisonFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.w2sv.autocrop.ui.util.hideSystemBars
2727
import com.w2sv.autocrop.ui.util.postponeEnterTransition
2828
import com.w2sv.autocrop.ui.util.registerOnBackPressedHandler
2929
import com.w2sv.autocrop.ui.util.showSystemBars
30+
import com.w2sv.autocrop.ui.util.view.setDebouncedOnClickListener
3031
import com.w2sv.autocrop.ui.views.FadeOutTextView
3132
import com.w2sv.kotlinutils.coroutines.flow.collectLatestOn
3233
import com.w2sv.kotlinutils.coroutines.launchDelayed
@@ -71,7 +72,7 @@ class ComparisonFragment : ViewBoundAppFragment<ComparisonBinding>(ComparisonBin
7172
initializeScreenshotViewAndCropViewScaleAndPositioning()
7273
initializeCropView()
7374
setOnTouchEventListener()
74-
backButton.setOnClickListener { onBack() }
75+
backButton.setDebouncedOnClickListener { onBack() }
7576

7677
viewModel.fadeOutTextArgs.collectLatestOn(lifecycleScope) {
7778
displayedImageTv.setAndShow(it)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.w2sv.autocrop.ui.util.view
2+
3+
import android.view.View
4+
5+
// TODO: move to AndroidUtils
6+
fun View.setDebouncedOnClickListener(interval: Long = 500L, onClick: (View) -> Unit) {
7+
var lastClickTime = 0L
8+
setOnClickListener { v ->
9+
val now = System.currentTimeMillis()
10+
if (now - lastClickTime >= interval) {
11+
lastClickTime = now
12+
onClick(v)
13+
}
14+
}
15+
}

0 commit comments

Comments
 (0)