Merge "Consider RTL layout in DPAD navigation in AbsSeekBar"

This commit is contained in:
Alan Viverette
2014-12-02 19:21:21 +00:00
committed by Gerrit Code Review

View File

@@ -704,19 +704,20 @@ public abstract class AbsSeekBar extends ProgressBar {
@Override @Override
public boolean onKeyDown(int keyCode, KeyEvent event) { public boolean onKeyDown(int keyCode, KeyEvent event) {
if (isEnabled()) { if (isEnabled()) {
int progress = getProgress(); int increment = mKeyProgressIncrement;
switch (keyCode) { switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_DPAD_LEFT:
if (progress <= 0) break; increment = -increment;
animateSetProgress(progress - mKeyProgressIncrement); // fallthrough
onKeyChange();
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_DPAD_RIGHT:
if (progress >= getMax()) break; increment = isLayoutRtl() ? -increment : increment;
animateSetProgress(progress + mKeyProgressIncrement); int progress = getProgress() + increment;
onKeyChange(); if (progress > -mKeyProgressIncrement &&
return true; progress < getMax() + mKeyProgressIncrement) {
animateSetProgress(progress);
onKeyChange();
return true;
}
} }
} }