package org.openlmis.core.view.widget;
import android.os.Handler;
import android.view.View;
import org.openlmis.core.LMISApp;
public abstract class SingleClickButtonListener implements View.OnClickListener {
private long minClickInterval = 500;
public static boolean isViewClicked = false;
private long lastClickTime;
public abstract void onSingleClick(View v);
@Override
public final void onClick(View v) {
long currentClickTime = LMISApp.getInstance().getCurrentTimeMillis();
long elapsedTime = currentClickTime - lastClickTime;
lastClickTime = currentClickTime;
if(elapsedTime <= minClickInterval) {
return;
}
if (!isViewClicked) {
isViewClicked = true;
startTimer();
} else {
return;
}
onSingleClick(v);
}
public void setMinClickInterval(long minClickInterval) {
this.minClickInterval = minClickInterval;
}
private void startTimer() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
isViewClicked = false;
}
}, minClickInterval);
}
}