Don\'t add cells to FocusLogic sparse matrix if they aren\'t focusable.
am: df315180f0
* commit 'df315180f0653702b470beea62f27927e45fab4b':
Don't add cells to FocusLogic sparse matrix if they aren't focusable.
diff --git a/src/com/android/launcher3/util/FocusLogic.java b/src/com/android/launcher3/util/FocusLogic.java
index 27ce3f1..7f0da77 100644
--- a/src/com/android/launcher3/util/FocusLogic.java
+++ b/src/com/android/launcher3/util/FocusLogic.java
@@ -165,8 +165,12 @@
// Iterate thru the children.
for (int i = 0; i < parent.getChildCount(); i++ ) {
- int cx = ((CellLayout.LayoutParams) parent.getChildAt(i).getLayoutParams()).cellX;
- int cy = ((CellLayout.LayoutParams) parent.getChildAt(i).getLayoutParams()).cellY;
+ View cell = parent.getChildAt(i);
+ if (!cell.isFocusable()) {
+ continue;
+ }
+ int cx = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellX;
+ int cy = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellY;
matrix[invert ? (m - cx - 1) : cx][cy] = i;
}
if (DEBUG) {
@@ -199,8 +203,12 @@
// Iterate thru the children of the top parent.
for (int i = 0; i < iconParent.getChildCount(); i++) {
- int cx = ((CellLayout.LayoutParams) iconParent.getChildAt(i).getLayoutParams()).cellX;
- int cy = ((CellLayout.LayoutParams) iconParent.getChildAt(i).getLayoutParams()).cellY;
+ View cell = iconParent.getChildAt(i);
+ if (!cell.isFocusable()) {
+ continue;
+ }
+ int cx = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellX;
+ int cy = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellY;
matrix[cx][cy] = i;
}
@@ -253,8 +261,12 @@
// Iterate thru the children of the top parent.
for (int i = 0; i < iconParent.getChildCount(); i++) {
- int cx = ((CellLayout.LayoutParams) iconParent.getChildAt(i).getLayoutParams()).cellX;
- int cy = ((CellLayout.LayoutParams) iconParent.getChildAt(i).getLayoutParams()).cellY;
+ View cell = iconParent.getChildAt(i);
+ if (!cell.isFocusable()) {
+ continue;
+ }
+ int cx = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellX;
+ int cy = ((CellLayout.LayoutParams) cell.getLayoutParams()).cellY;
if (pivotX < 0) {
matrix[cx - pivotX][cy] = i;
} else {