summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/FocusHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/FocusHelper.java')
-rw-r--r--src/com/android/launcher3/FocusHelper.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/com/android/launcher3/FocusHelper.java b/src/com/android/launcher3/FocusHelper.java
index 678ed0f82..fe50e3a4e 100644
--- a/src/com/android/launcher3/FocusHelper.java
+++ b/src/com/android/launcher3/FocusHelper.java
@@ -92,11 +92,13 @@ public class FocusHelper {
final int pageIndex = pagedView.indexOfChild(cellLayout);
final int pageCount = pagedView.getPageCount();
+ Launcher launcher = (Launcher) v.getContext();
int[][] matrix = FocusLogic.createSparseMatrix(cellLayout);
// Process focus.
- int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX, countY, matrix,
- iconIndex, pageIndex, pageCount);
+ int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX,
+ countY, matrix, iconIndex, pageIndex, pageCount,
+ launcher.getDeviceProfile().isLayoutRtl);
if (newIconIndex == FocusLogic.NOOP) {
handleNoopKey(keyCode, v);
return consume;
@@ -184,7 +186,8 @@ public class FocusHelper {
return consume;
}
- DeviceProfile profile = LauncherAppState.getInstance().getDynamicGrid().getDeviceProfile();
+ DeviceProfile profile = ((Launcher) v.getContext()).getDeviceProfile();
+
if (DEBUG) {
Log.v(TAG, String.format(
"Handle HOTSEAT BUTTONS keyevent=[%s] on hotseat buttons, isVertical=%s",
@@ -248,8 +251,8 @@ public class FocusHelper {
}
// Process the focus.
- int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX, countY, matrix,
- iconIndex, pageIndex, pageCount);
+ int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX,
+ countY, matrix, iconIndex, pageIndex, pageCount, profile.isLayoutRtl);
View newIcon = null;
if (newIconIndex == FocusLogic.NEXT_PAGE_FIRST_ITEM) {
@@ -283,8 +286,8 @@ public class FocusHelper {
return consume;
}
- LauncherAppState app = LauncherAppState.getInstance();
- DeviceProfile profile = app.getDynamicGrid().getDeviceProfile();
+ Launcher launcher = (Launcher) v.getContext();
+ DeviceProfile profile = launcher.getDeviceProfile();
if (DEBUG) {
Log.v(TAG, String.format("Handle WORKSPACE ICONS keyevent=[%s] isVerticalBar=%s",
@@ -295,9 +298,9 @@ public class FocusHelper {
ShortcutAndWidgetContainer parent = (ShortcutAndWidgetContainer) v.getParent();
CellLayout iconLayout = (CellLayout) parent.getParent();
final Workspace workspace = (Workspace) iconLayout.getParent();
- final ViewGroup launcher = (ViewGroup) workspace.getParent();
- final ViewGroup tabs = (ViewGroup) launcher.findViewById(R.id.search_drop_target_bar);
- final Hotseat hotseat = (Hotseat) launcher.findViewById(R.id.hotseat);
+ final ViewGroup dragLayer = (ViewGroup) workspace.getParent();
+ final ViewGroup tabs = (ViewGroup) dragLayer.findViewById(R.id.search_drop_target_bar);
+ final Hotseat hotseat = (Hotseat) dragLayer.findViewById(R.id.hotseat);
final int iconIndex = parent.indexOfChild(v);
final int pageIndex = workspace.indexOfChild(iconLayout);
@@ -331,8 +334,8 @@ public class FocusHelper {
}
// Process the focus.
- int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX, countY, matrix,
- iconIndex, pageIndex, pageCount);
+ int newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX,
+ countY, matrix, iconIndex, pageIndex, pageCount, profile.isLayoutRtl);
View newIcon = null;
switch (newIconIndex) {
case FocusLogic.NOOP:
@@ -354,8 +357,8 @@ public class FocusHelper {
iconLayout = (CellLayout) parent.getParent();
matrix = FocusLogic.createSparseMatrix(iconLayout,
iconLayout.getCountX(), row);
- newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX + 1, countY, matrix,
- FocusLogic.PIVOT, newPageIndex, pageCount);
+ newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX + 1, countY,
+ matrix, FocusLogic.PIVOT, newPageIndex, pageCount, profile.isLayoutRtl);
newIcon = parent.getChildAt(newIconIndex);
}
break;
@@ -387,8 +390,8 @@ public class FocusHelper {
workspace.snapToPage(newPageIndex);
iconLayout = (CellLayout) parent.getParent();
matrix = FocusLogic.createSparseMatrix(iconLayout, -1, row);
- newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX + 1, countY, matrix,
- FocusLogic.PIVOT, newPageIndex, pageCount);
+ newIconIndex = FocusLogic.handleKeyEvent(keyCode, countX + 1, countY,
+ matrix, FocusLogic.PIVOT, newPageIndex, pageCount, profile.isLayoutRtl);
newIcon = parent.getChildAt(newIconIndex);
}
break;