Skip to content

Commit ec94a60

Browse files
committed
Add debounce click extension functions to prevent multiple click events
1 parent f001262 commit ec94a60

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

  • base/src/main/java/com/enginebai/base/extensions

base/src/main/java/com/enginebai/base/extensions/ViewExt.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ import android.content.Context
44
import android.view.View
55
import android.view.inputmethod.InputMethodManager
66

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+
723
//
824
// visibility
925
//

0 commit comments

Comments
 (0)