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

Commit e47fc657 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixing arrow navigation in task carousel" into ub-launcher3-edmonton

parents 39ac1610 8fbd56e1
Loading
Loading
Loading
Loading
+14 −20
Original line number Diff line number Diff line
@@ -930,11 +930,16 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        set.play(anim);
    }

    private void snapToPageRelative(int delta) {
    private boolean snapToPageRelative(int delta, boolean cycle) {
        if (getPageCount() == 0) {
            return;
            return false;
        }
        final int newPageUnbound = getNextPage() + delta;
        if (!cycle && (newPageUnbound < 0 || newPageUnbound >= getChildCount())) {
            return false;
        }
        snapToPage((getNextPage() + getPageCount() + delta) % getPageCount());
        snapToPage((newPageUnbound + getPageCount()) % getPageCount());
        return true;
    }

    @Override
@@ -970,21 +975,12 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (event.getKeyCode()) {
                case KeyEvent.KEYCODE_TAB:
                    if (!event.isAltPressed() &&
                            getNextPage() ==
                                    (event.isShiftPressed() ? 0 : getChildCount() - 1)) {
                        // If not Alt-Tab navigation, don't loop forever in the carousel and leave
                        // it once we reached the end.
                        return false;
                    }
                    snapToPageRelative(event.isShiftPressed() ? -1 : 1);
                    return true;
                    return snapToPageRelative(event.isShiftPressed() ? -1 : 1,
                            event.isAltPressed() /* cycle */);
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                    snapToPageRelative(mIsRtl ? -1 : 1);
                    return true;
                    return snapToPageRelative(mIsRtl ? -1 : 1, false /* cycle */);
                case KeyEvent.KEYCODE_DPAD_LEFT:
                    snapToPageRelative(mIsRtl ? 1 : -1);
                    return true;
                    return snapToPageRelative(mIsRtl ? 1 : -1, false /* cycle */);
                case KeyEvent.KEYCODE_DEL:
                case KeyEvent.KEYCODE_FORWARD_DEL:
                    dismissTask((TaskView) getChildAt(getNextPage()), true /*animateTaskView*/,
@@ -1012,16 +1008,14 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
                    setCurrentPage(0);
                    break;
                case FOCUS_BACKWARD:
                case FOCUS_RIGHT:
                case FOCUS_LEFT:
                    setCurrentPage(getChildCount() - 1);
                    break;
            }
        }
    }

    public void snapToTaskAfterNext() {
        snapToPageRelative(1);
    }

    public float getContentAlpha() {
        return mContentAlpha;
    }
+8 −0
Original line number Diff line number Diff line
@@ -70,6 +70,14 @@ public class RecentsViewContainer extends InsettableFrameLayout {

        mRecentsView.setClearAllButton(mClearAllButton);
        mClearAllButton.setRecentsView(mRecentsView);

        if (mRecentsView.isRtl()) {
            mClearAllButton.setNextFocusRightId(mRecentsView.getId());
            mRecentsView.setNextFocusLeftId(mClearAllButton.getId());
        } else {
            mClearAllButton.setNextFocusLeftId(mRecentsView.getId());
            mRecentsView.setNextFocusRightId(mClearAllButton.getId());
        }
    }

    @Override