diff options
author | Tony Wickham <twickham@google.com> | 2015-11-11 17:19:53 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-11-11 17:19:53 +0000 |
commit | 9e163059bba6f6b7424e10b35db3886694ab4bd8 (patch) | |
tree | 2794e3a95bf865bdeb7a2052ec3adf29262cd4e4 /src | |
parent | c908dbaa0a12b94e44bfce42504391728fc0de51 (diff) | |
parent | a43f78fc4b70bf54b9c90758660b6155ef0257aa (diff) | |
download | android_packages_apps_Trebuchet-9e163059bba6f6b7424e10b35db3886694ab4bd8.tar.gz android_packages_apps_Trebuchet-9e163059bba6f6b7424e10b35db3886694ab4bd8.tar.bz2 android_packages_apps_Trebuchet-9e163059bba6f6b7424e10b35db3886694ab4bd8.zip |
Merge "Handle more cases in FocusHelper#handleHotseatButtonKeyEvent()." into ub-launcher3-burnaby-polish
am: a43f78fc4b
* commit 'a43f78fc4b70bf54b9c90758660b6155ef0257aa':
Handle more cases in FocusHelper#handleHotseatButtonKeyEvent().
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/FocusHelper.java | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/src/com/android/launcher3/FocusHelper.java b/src/com/android/launcher3/FocusHelper.java index d7f05edcb..ef351a98f 100644 --- a/src/com/android/launcher3/FocusHelper.java +++ b/src/com/android/launcher3/FocusHelper.java @@ -175,7 +175,7 @@ public class FocusHelper { } /** - * Handles key events in the workspace hot seat (bottom of the screen). + * Handles key events in the workspace hotseat (bottom of the screen). * <p>Currently we don't special case for the phone UI in different orientations, even though * the hotseat is on the side in landscape mode. This is to ensure that accessibility * consistency is maintained across rotations. @@ -264,12 +264,38 @@ public class FocusHelper { countY, matrix, iconIndex, pageIndex, pageCount, Utilities.isRtl(v.getResources())); View newIcon = null; - if (newIconIndex == FocusLogic.NEXT_PAGE_FIRST_ITEM) { - parent = getCellLayoutChildrenForIndex(workspace, pageIndex + 1); - newIcon = parent.getChildAt(0); - // TODO(hyunyoungs): handle cases where the child is not an icon but - // a folder or a widget. - workspace.snapToPage(pageIndex + 1); + switch (newIconIndex) { + case FocusLogic.NEXT_PAGE_FIRST_ITEM: + parent = getCellLayoutChildrenForIndex(workspace, pageIndex + 1); + newIcon = parent.getChildAt(0); + // TODO(hyunyoungs): handle cases where the child is not an icon but + // a folder or a widget. + workspace.snapToPage(pageIndex + 1); + break; + case FocusLogic.PREVIOUS_PAGE_FIRST_ITEM: + parent = getCellLayoutChildrenForIndex(workspace, pageIndex - 1); + newIcon = parent.getChildAt(0); + // TODO(hyunyoungs): handle cases where the child is not an icon but + // a folder or a widget. + workspace.snapToPage(pageIndex - 1); + break; + case FocusLogic.PREVIOUS_PAGE_LAST_ITEM: + parent = getCellLayoutChildrenForIndex(workspace, pageIndex - 1); + newIcon = parent.getChildAt(parent.getChildCount() - 1); + // TODO(hyunyoungs): handle cases where the child is not an icon but + // a folder or a widget. + workspace.snapToPage(pageIndex - 1); + break; + case FocusLogic.PREVIOUS_PAGE_LEFT_COLUMN: + case FocusLogic.PREVIOUS_PAGE_RIGHT_COLUMN: + // Go to the previous page but keep the focus on the same hotseat icon. + workspace.snapToPage(pageIndex - 1); + break; + case FocusLogic.NEXT_PAGE_LEFT_COLUMN: + case FocusLogic.NEXT_PAGE_RIGHT_COLUMN: + // Go to the next page but keep the focus on the same hotseat icon. + workspace.snapToPage(pageIndex + 1); + break; } if (parent == iconParent && newIconIndex >= iconParent.getChildCount()) { newIconIndex -= iconParent.getChildCount(); @@ -369,7 +395,7 @@ public class FocusHelper { if (parent != null) { iconLayout = (CellLayout) parent.getParent(); matrix = FocusLogic.createSparseMatrix(iconLayout, - iconLayout.getCountX(), row); + iconLayout.getCountX(), row); newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX + 1, countY, matrix, FocusLogic.PIVOT, newPageIndex, pageCount, Utilities.isRtl(v.getResources())); |