From 5b6b41241d97ca6c08b610a421b758815a451803 Mon Sep 17 00:00:00 2001 From: Bjorn Bringert Date: Mon, 28 Sep 2009 19:37:29 +0100 Subject: [PATCH] Don't crash search when getKeyDispatcherState() is null Fixes http://b/editIssue?id=2150672 Change-Id: I6fb87c1a59b4b3a945822932047a66c4116e6391 --- core/java/android/app/SearchDialog.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 68be2e8202f52..1e9d5a1a34f12 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -1709,14 +1709,17 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS public boolean dispatchKeyEventPreIme(KeyEvent event) { if (DBG) Log.d(LOG_TAG, "onKeyPreIme(" + event + ")"); if (mSearchDialog != null && 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 - && !event.isCanceled() && getKeyDispatcherState().isTracking(event)) { - mSearchDialog.onBackPressed(); - return true; + KeyEvent.DispatcherState state = getKeyDispatcherState(); + if (state != null) { + if (event.getAction() == KeyEvent.ACTION_DOWN + && event.getRepeatCount() == 0) { + state.startTracking(event, this); + return true; + } else if (event.getAction() == KeyEvent.ACTION_UP + && !event.isCanceled() && state.isTracking(event)) { + mSearchDialog.onBackPressed(); + return true; + } } } return super.dispatchKeyEventPreIme(event);