summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2010-03-17 11:10:07 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-03-17 11:10:07 -0700
commit3b40ebfac35a89455e9515b0d0dc9bcdf449a6c0 (patch)
tree2fe3b71ff35f1137ea124542715db70852f7348c
parent75d20e9304ce91607cd6abb67c3b62402950acc4 (diff)
parent11d5bfde8488505e15aa83275772d84579de04ca (diff)
downloadframeworks_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.java22
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