We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f001262 commit ec94a60Copy full SHA for ec94a60
1 file changed
base/src/main/java/com/enginebai/base/extensions/ViewExt.kt
@@ -4,6 +4,22 @@ import android.content.Context
4
import android.view.View
5
import android.view.inputmethod.InputMethodManager
6
7
+/**
8
+ * Prevent multiple click in a short period of time. Default interval is 1500 milli-second.
9
+ * @param listener: The click listener
10
+ * @param intervalInMillis: The time interval to trigger next click events.
11
+ */
12
+inline fun View.debounceClick(crossinline listener: (view: View) -> Unit, intervalInMillis: Int = 1500) {
13
+ var lastClick = 0L
14
+ setOnClickListener {
15
+ val diff = System.currentTimeMillis() - lastClick
16
+ lastClick = System.currentTimeMillis()
17
+ if (diff > intervalInMillis) {
18
+ listener(it)
19
+ }
20
21
+}
22
+
23
//
24
// visibility
25
0 commit comments