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

Commit 9869f758 authored by Vadim Tryshev's avatar Vadim Tryshev
Browse files

Handling arrow keys in Overview

Bug: 73090995
Test: Tab, Shift-Tab, left, right: when overview is opened via Alt+Tab
or via touch.

Change-Id: Ifb05027da2f6b9c2a9a2320cec7015e5cc82d633
parent 81bd3f57
Loading
Loading
Loading
Loading
+17 −8
Original line number Diff line number Diff line
@@ -609,6 +609,10 @@ public abstract class RecentsView<T extends BaseActivity>
        set.play(anim);
    }

    private void snapToPageRelative(int delta) {
        snapToPage((getNextPage() + getPageCount() + delta) % getPageCount());
    }

    @Override
    public void onVisibilityAggregated(boolean isVisible) {
        super.onVisibilityAggregated(isVisible);
@@ -621,19 +625,24 @@ public abstract class RecentsView<T extends BaseActivity>

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_TAB
                && event.getAction() == KeyEvent.ACTION_DOWN) {
            snapToPage((getNextPage()
                    + (event.isShiftPressed() ? getPageCount() - 1 : 1)) % getPageCount());
            loadVisibleTaskData();
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (event.getKeyCode()) {
                case KeyEvent.KEYCODE_TAB:
                    snapToPageRelative(event.isShiftPressed() ? -1 : 1);
                    return true;
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                    snapToPageRelative(mIsRtl ? -1 : 1);
                    return true;
                case KeyEvent.KEYCODE_DPAD_LEFT:
                    snapToPageRelative(mIsRtl ? 1 : -1);
                    return true;
            }
        }
        return super.dispatchKeyEvent(event);
    }

    public void snapToTaskAfterNext() {
        snapToPage((getNextPage() + 1) % getPageCount());
        loadVisibleTaskData();
        snapToPageRelative(1);
    }

    public void launchNextTask() {