diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 18e4a528ec46b..1d53eabc3d79a 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -899,16 +899,15 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS return; } try { + // 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. + ((SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE)). + stopSearch(); + if (mSearchable.getVoiceSearchLaunchWebSearch()) { getContext().startActivity(mVoiceWebSearchIntent); } else if (mSearchable.getVoiceSearchLaunchRecognizer()) { - Intent appSearchIntent = createVoiceAppSearchIntent(mVoiceAppSearchIntent); - - // 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. - ((SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE)). - stopSearch(); - + Intent appSearchIntent = createVoiceAppSearchIntent(mVoiceAppSearchIntent); getContext().startActivity(appSearchIntent); } } catch (ActivityNotFoundException e) {