I have a problem with my app that if the user clicks the button multiple times quickly, then multiple events are generated before even my dialog holding the button disappear
Similar Solution using RxJava
import android.view.View;
import java.util.concurrent.TimeUnit;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.subjects.PublishSubject;
public abstract class SingleClickListener implements View.OnClickListener {
private static final long THRESHOLD_MILLIS = 600L;
private final PublishSubject viewPublishSubject = PublishSubject.create();
public SingleClickListener() {
viewPublishSubject.throttleFirst(THRESHOLD_MILLIS, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1() {
@Override
public void call(View view) {
onClicked(view);
}
});
}
@Override
public void onClick(View v) {
viewPublishSubject.onNext(v);
}
public abstract void onClicked(View v);
}