Loading quickstep/src/com/android/quickstep/views/RecentsView.java +14 −20 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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*/, Loading Loading @@ -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; } Loading quickstep/src/com/android/quickstep/views/RecentsViewContainer.java +8 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +14 −20 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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*/, Loading Loading @@ -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; } Loading
quickstep/src/com/android/quickstep/views/RecentsViewContainer.java +8 −0 Original line number Diff line number Diff line Loading @@ -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 Loading