diff options
| author | Romain Guy <romainguy@android.com> | 2010-03-17 11:10:07 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-03-17 11:10:07 -0700 |
| commit | 3b40ebfac35a89455e9515b0d0dc9bcdf449a6c0 (patch) | |
| tree | 2fe3b71ff35f1137ea124542715db70852f7348c | |
| parent | 75d20e9304ce91607cd6abb67c3b62402950acc4 (diff) | |
| parent | 11d5bfde8488505e15aa83275772d84579de04ca (diff) | |
| download | frameworks_base-3b40ebfac35a89455e9515b0d0dc9bcdf449a6c0.zip frameworks_base-3b40ebfac35a89455e9515b0d0dc9bcdf449a6c0.tar.gz frameworks_base-3b40ebfac35a89455e9515b0d0dc9bcdf449a6c0.tar.bz2 | |
Merge "Fix NPE in AutoCompleteTextView to tame the monkeys. Bug #2522599"
| -rw-r--r-- | core/java/android/widget/AutoCompleteTextView.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 5482958..5b52107 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -660,14 +660,20 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe final boolean below = !mPopup.isAboveAnchor(); - final ListAdapter adapter = mDropDownList.getAdapter(); - final boolean allEnabled = adapter.areAllItemsEnabled(); - - final int firstItem = allEnabled ? 0 : - mDropDownList.lookForSelectablePosition(0, true); - final int lastItem = allEnabled ? adapter.getCount() - 1 : - mDropDownList.lookForSelectablePosition(adapter.getCount() - 1, false); - + final ListAdapter adapter = mAdapter; + + boolean allEnabled; + int firstItem = Integer.MAX_VALUE; + int lastItem = Integer.MIN_VALUE; + + if (adapter != null) { + allEnabled = adapter.areAllItemsEnabled(); + firstItem = allEnabled ? 0 : + mDropDownList.lookForSelectablePosition(0, true); + lastItem = allEnabled ? adapter.getCount() - 1 : + mDropDownList.lookForSelectablePosition(adapter.getCount() - 1, false); + } + if ((below && keyCode == KeyEvent.KEYCODE_DPAD_UP && curIndex <= firstItem) || (!below && keyCode == KeyEvent.KEYCODE_DPAD_DOWN && curIndex >= lastItem)) { // When the selection is at the top, we block the key |
