Я работаю на AndroidTv, где я использую стандарт seekBar
для воспроизведения.
Вот как я использую RxSeekBar
RxSeekBar.changeEvents(seekBar)
.debounce(SEEKBAR_DEBOUNCE_TIME, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SeekBarChangeEvent>() {
@Override
public void onSubscribe(Disposable disposable) {
compositeDisposable.add(disposable);
}
@Override
public void onNext(SeekBarChangeEvent seekBarChangeEvent) {
if (seekBarChangeEvent instanceof SeekBarProgressChangeEvent) {
if (seekBar.hasFocus()) {
DebugLog.d(TAG, "(PROGRESS) SeekBarProgressChangeEvent");
seekBarSeekProgress = seekBarChangeEvent.getView().getProgress();
onSeek();
}
}
}
@Override
public void onError(Throwable e) {
DebugLog.d(TAG, "RxSeek error - " + e.getMessage());
}
@Override
public void onComplete() {
}
});
По сути, я хочу обновить вещи после истечения времени ожидания. Это прекрасно работает 7/10
раз, но иногда onNext
вызывается преждевременно, и все идет не так, как надо.
Я что-то здесь не так делаю?