Tell the SearchManager to stopSearch before starting an in-app voice
search. Without this, because of the recent changes to how the search
dialog hides and resumes, we end up re-showing the search dialog after
returning to the app from voice search, obscuring the new voice search
results behind.

Fixes http://b/2025364
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index ea3d762..18e4a52 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -903,6 +903,12 @@
                     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();
+                    
                     getContext().startActivity(appSearchIntent);
                 }
             } catch (ActivityNotFoundException e) {