package support.ui.adapters.debounced;
import android.os.SystemClock;
import android.view.View;
class DebouncedClickHandler {
final static long MINIMUM_INTERVAL_MILLIS = 300;
private long previousClickTimestamp;
private final DebouncedListener debouncedOnClickListener;
public DebouncedClickHandler(DebouncedListener debouncedOnClickListener) {
this.debouncedOnClickListener = debouncedOnClickListener;
}
public boolean invokeDebouncedClick(int position, View view) {
long currentTimestamp = SystemClock.uptimeMillis();
boolean handled = false;
if (currentTimestamp - previousClickTimestamp > MINIMUM_INTERVAL_MILLIS) {
handled = debouncedOnClickListener.onDebouncedClick(view, position);
}
previousClickTimestamp = currentTimestamp;
return handled;
}
}