listener.onScrubMove(this, scrubPosition);
private void startScrubbing() { scrubbing = true; setPressed(true); ViewParent parent = getParent(); if (parent != null) { parent.requestDisallowInterceptTouchEvent(true); } for (OnScrubListener listener : listeners) { listener.onScrubStart(this, getScrubberPosition()); } }
private void stopScrubbing(boolean canceled) { scrubbing = false; setPressed(false); ViewParent parent = getParent(); if (parent != null) { parent.requestDisallowInterceptTouchEvent(false); } invalidate(); for (OnScrubListener listener : listeners) { listener.onScrubStop(this, getScrubberPosition(), canceled); } }
@Override public void onStartTrackingTouch(SeekBar seekBar) { if (listener != null) { listener.onScrubStart(this, getProgress()); } }
@Override public void onStopTrackingTouch(SeekBar seekBar) { if (listener != null) { listener.onScrubStop(this, getProgress(), false); } } }
@Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { if (listener != null) { listener.onScrubMove(this, i); } }
/** * Incrementally scrubs the position by {@code positionChange}. * * @param positionChange The change in the scrubber position, in milliseconds. May be negative. * @return Returns whether the scrubber position changed. */ private boolean scrubIncrementally(long positionChange) { if (duration <= 0) { return false; } long scrubberPosition = getScrubberPosition(); scrubPosition = Util.constrainValue(scrubberPosition + positionChange, 0, duration); if (scrubPosition == scrubberPosition) { return false; } if (!scrubbing) { startScrubbing(); } for (OnScrubListener listener : listeners) { listener.onScrubMove(this, scrubPosition); } update(); return true; }