diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-07-30 19:07:05 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-07-30 19:07:05 +0000 |
| commit | 5b88562f8c0c19d8c1305594fbb3fd6004839fd8 (patch) | |
| tree | 08348ec206eb0b643d74ee48a7fb6a4c1f15761c /core/java/android | |
| parent | 53bed2c79084906e5edad4397bcab586ba9434cd (diff) | |
| parent | 18048e074b88671efda2c07b82426085b57c87de (diff) | |
Merge "Update FocusFinder" into rvc-qpr-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/FocusFinder.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/core/java/android/view/FocusFinder.java b/core/java/android/view/FocusFinder.java index 713cfb48c95f..064bc6947fc4 100644 --- a/core/java/android/view/FocusFinder.java +++ b/core/java/android/view/FocusFinder.java @@ -311,6 +311,9 @@ public class FocusFinder { } final int count = focusables.size(); + if (count < 2) { + return null; + } switch (direction) { case View.FOCUS_FORWARD: return getNextFocusable(focused, focusables, count); @@ -373,29 +376,29 @@ public class FocusFinder { } private static View getNextFocusable(View focused, ArrayList<View> focusables, int count) { + if (count < 2) { + return null; + } if (focused != null) { int position = focusables.lastIndexOf(focused); if (position >= 0 && position + 1 < count) { return focusables.get(position + 1); } } - if (!focusables.isEmpty()) { - return focusables.get(0); - } - return null; + return focusables.get(0); } private static View getPreviousFocusable(View focused, ArrayList<View> focusables, int count) { + if (count < 2) { + return null; + } if (focused != null) { int position = focusables.indexOf(focused); if (position > 0) { return focusables.get(position - 1); } } - if (!focusables.isEmpty()) { - return focusables.get(count - 1); - } - return null; + return focusables.get(count - 1); } private static View getNextKeyboardNavigationCluster( |
