Java:
public abstract class OnSingleClickListener implements View.OnClickListener {
private static final long MIN_CLICK_INTERVAL = 800;
private long mLastClickTime;
public abstract void onSingleClick(View view);
@Override
public final void onClick(View view) {
long currentClickTime = SystemClock.uptimeMillis();
long elapsedTime = currentClickTime - mLastClickTime;
mLastClickTime = currentClickTime;
if(elapsedTime < MIN_CLICK_INTERVAL)
return;
onSingleClick(view);
}
}
Kotlin:
abstract class OnSingleClickListener : View.OnClickListener {
private var mLastClickTime: Long = 0
abstract fun onSingleClick(view: View)
override fun onClick(view: View) {
val currentClickTime = SystemClock.uptimeMillis()
val elapsedTime = currentClickTime - mLastClickTime
mLastClickTime = currentClickTime
if (elapsedTime < MIN_CLICK_INTERVAL)
return
onSingleClick(view)
}
companion object {
private const val MIN_CLICK_INTERVAL: Long = 800
}
}