Close the search dialog before starting voice search in all cases, i.e.,
also when launching web search, not just when it's using the intent API.
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 18e4a52..1d53eab 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -899,16 +899,15 @@
                 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) {