diff options
author | Amith Yamasani <yamasani@google.com> | 2010-02-25 10:27:33 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-25 10:27:33 -0800 |
commit | 1d620c67e2e1aeae317c983b8a60c3be701825b0 (patch) | |
tree | 5d34b44a49a9002083cb42661ba8cea9a76c1122 /core | |
parent | 2299a553bc35ecc15dab0e36732b126e1eb8d446 (diff) | |
parent | d368572f8e0c9bd851aacb71ea57adecfbd5d1a4 (diff) | |
download | frameworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.zip frameworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.tar.gz frameworks_base-1d620c67e2e1aeae317c983b8a60c3be701825b0.tar.bz2 |
Merge "Fix for voice search crash in maps and youtube. Bug 2453182"
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/app/SearchDialog.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 6a02a58..cb6aab6 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -313,7 +313,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS mLaunchComponent = null; mAppSearchData = null; mSearchable = null; - mActivityContext = null; mUserQuery = null; } @@ -411,7 +410,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS updateSearchAppIcon(); updateSearchBadge(); updateQueryHint(); - updateVoiceButton(); + updateVoiceButton(TextUtils.isEmpty(mUserQuery)); // In order to properly configure the input method (if one is being used), we // need to let it know if we'll be providing suggestions. Although it would be @@ -560,10 +559,13 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS /** * Update the visibility of the voice button. There are actually two voice search modes, * either of which will activate the button. + * @param empty whether the search query text field is empty. If it is, then the other + * criteria apply to make the voice button visible. Otherwise the voice button will not + * be visible - i.e., if the user has typed a query, remove the voice button. */ - private void updateVoiceButton() { + private void updateVoiceButton(boolean empty) { int visibility = View.GONE; - if (mSearchable.getVoiceSearchEnabled()) { + if (mSearchable.getVoiceSearchEnabled() && empty) { Intent testIntent = null; if (mSearchable.getVoiceSearchLaunchWebSearch()) { testIntent = mVoiceWebSearchIntent; @@ -666,6 +668,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS // The user changed the query, remember it. mUserQuery = s == null ? "" : s.toString(); } + updateVoiceButton(TextUtils.isEmpty(s)); } public void afterTextChanged(Editable s) { @@ -746,9 +749,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS return; } SearchableInfo searchable = mSearchable; - // First stop the existing search before starting voice search, or else we'll end - // up showing the search dialog again once we return to the app. - cancel(); try { if (searchable.getVoiceSearchLaunchWebSearch()) { getContext().startActivity(mVoiceWebSearchIntent); @@ -762,6 +762,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS // voice search before showing the button. But just in case... Log.w(LOG_TAG, "Could not find voice search activity"); } + dismiss(); } }; |