Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 575bb381 authored by Johan Redestig's avatar Johan Redestig
Browse files

Consider RTL layout in DPAD navigation in AbsSeekBar

Changes the behavior of onKeyDown for DPAD_LEFT/RIGHT when in RTL
to move the progress in same direction as the DPAD key suggest.

Change-Id: I776a48711571884a10ef9315de78bf4ebffd6e4b
parent 71f83672
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -704,21 +704,22 @@ public abstract class AbsSeekBar extends ProgressBar {
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (isEnabled()) {
            int progress = getProgress();
            int increment = mKeyProgressIncrement;
            switch (keyCode) {
                case KeyEvent.KEYCODE_DPAD_LEFT:
                    if (progress <= 0) break;
                    animateSetProgress(progress - mKeyProgressIncrement);
                    onKeyChange();
                    return true;

                    increment = -increment;
                    // fallthrough
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                    if (progress >= getMax()) break;
                    animateSetProgress(progress + mKeyProgressIncrement);
                    increment = isLayoutRtl() ? -increment : increment;
                    int progress = getProgress() + increment;
                    if (progress > -mKeyProgressIncrement &&
                        progress < getMax() + mKeyProgressIncrement) {
                        animateSetProgress(progress);
                        onKeyChange();
                        return true;
                    }
            }
        }

        return super.onKeyDown(keyCode, event);
    }