Fixing broken add focusables behavior I have introduced.
bug:6344608
Change-Id: I1d241c02bc22c5ef3f4b4b69a756772e8b2ef902
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 962e13a..6c1f02d 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -5807,18 +5807,11 @@
*
* @see #FOCUSABLES_ALL
* @see #FOCUSABLES_TOUCH_MODE
- * @see #FOCUSABLES_ACCESSIBILITY
*/
public void addFocusables(ArrayList<View> views, int direction, int focusableMode) {
if (views == null) {
return;
}
- if ((focusableMode & FOCUSABLE_IN_TOUCH_MODE) == FOCUSABLE_IN_TOUCH_MODE) {
- if (isFocusable() && (!isInTouchMode() || isFocusableInTouchMode())) {
- views.add(this);
- return;
- }
- }
if ((focusableMode & FOCUSABLES_ACCESSIBILITY) == FOCUSABLES_ACCESSIBILITY) {
if (AccessibilityManager.getInstance(mContext).isEnabled()
&& includeForAccessibility()) {
@@ -5826,14 +5819,14 @@
return;
}
}
- if ((focusableMode & FOCUSABLES_ALL) == FOCUSABLES_ALL) {
- if (isFocusable()) {
- views.add(this);
- return;
- }
- } else {
- throw new IllegalArgumentException("Unknow focusable mode: " + focusableMode);
+ if (!isFocusable()) {
+ return;
}
+ if ((focusableMode & FOCUSABLES_TOUCH_MODE) == FOCUSABLES_TOUCH_MODE
+ && isInTouchMode() && !isFocusableInTouchMode()) {
+ return;
+ }
+ views.add(this);
}
/**