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
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 2709f40..db82286 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -609,6 +609,10 @@
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 @@
@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();
- return true;
+ 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() {