summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-05-23 18:44:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-05-23 18:44:51 +0000
commite47fc65716173da730f35b6adac749816a0ad52e (patch)
treee49f1387d2d36360dcf7a8a0ff435a0d000cdb7c
parent39ac161095036be4bb3630b73ed44705b9e1024d (diff)
parent8fbd56e1390c874300df882bfa46e74ad32d9514 (diff)
downloadandroid_packages_apps_Trebuchet-e47fc65716173da730f35b6adac749816a0ad52e.tar.gz
android_packages_apps_Trebuchet-e47fc65716173da730f35b6adac749816a0ad52e.tar.bz2
android_packages_apps_Trebuchet-e47fc65716173da730f35b6adac749816a0ad52e.zip
Merge "Fixing arrow navigation in task carousel" into ub-launcher3-edmonton
-rw-r--r--quickstep/src/com/android/quickstep/views/RecentsView.java34
-rw-r--r--quickstep/src/com/android/quickstep/views/RecentsViewContainer.java8
2 files changed, 22 insertions, 20 deletions
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 829ed6c7a..0358028bc 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -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;
}
diff --git a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
index 846c28b56..3391214de 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
@@ -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