summaryrefslogtreecommitdiff
path: root/core/java/android/widget/PopupWindow.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-01-10 16:26:36 -0800
committerJeff Brown <jeffbrown@google.com>2011-01-10 16:26:36 -0800
commitb3ea92235c9ccc1ff295839a8f324dcd1c83dd6f (patch)
treee5da117e709a7ec9bec982be9977505860671cb3 /core/java/android/widget/PopupWindow.java
parenteb97c0ddc063176c26065fc6855188edf0c16e03 (diff)
Fix NPEs in detached views.
Bug: 3297518 Change-Id: Ife1384f3a5bebbd28a29f97dc6d519f8a0b10ba9
Diffstat (limited to 'core/java/android/widget/PopupWindow.java')
-rw-r--r--core/java/android/widget/PopupWindow.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 5a5b6f49f532..79d6a81d2461 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -1468,12 +1468,17 @@ public class PopupWindow {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
- getKeyDispatcherState().startTracking(event, this);
- return true;
- } else if (event.getAction() == KeyEvent.ACTION_UP
- && getKeyDispatcherState().isTracking(event) && !event.isCanceled()) {
- dismiss();
+ KeyEvent.DispatcherState state = getKeyDispatcherState();
+ if (state != null) {
+ state.startTracking(event, this);
+ }
return true;
+ } else if (event.getAction() == KeyEvent.ACTION_UP) {
+ KeyEvent.DispatcherState state = getKeyDispatcherState();
+ if (state != null && state.isTracking(event) && !event.isCanceled()) {
+ dismiss();
+ return true;
+ }
}
return super.dispatchKeyEvent(event);
} else {