Also send EXTRA_CALLING_PACKAGE for voice search intents that do web
search (not just for in-app search). Needed as part of http://b/2546173

Change-Id: I661ff52bace754459651eacd369a19e97364c3c6
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 0ebe3ac..d6bb7b6 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -795,7 +795,9 @@
             SearchableInfo searchable = mSearchable;
             try {
                 if (searchable.getVoiceSearchLaunchWebSearch()) {
-                    getContext().startActivity(mVoiceWebSearchIntent);
+                    Intent webSearchIntent = createVoiceWebSearchIntent(mVoiceWebSearchIntent,
+                            searchable);
+                    getContext().startActivity(webSearchIntent);
                 } else if (searchable.getVoiceSearchLaunchRecognizer()) {
                     Intent appSearchIntent = createVoiceAppSearchIntent(mVoiceAppSearchIntent,
                             searchable);
@@ -811,6 +813,17 @@
     };
     
     /**
+     * Create and return an Intent that can launch the voice search activity for web search.
+     */
+    private Intent createVoiceWebSearchIntent(Intent baseIntent, SearchableInfo searchable) {
+        Intent voiceIntent = new Intent(baseIntent);
+        ComponentName searchActivity = searchable.getSearchActivity();
+        voiceIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
+                searchActivity == null ? null : searchActivity.toShortString());
+        return voiceIntent;
+    }
+    
+    /**
      * Create and return an Intent that can launch the voice search activity, perform a specific
      * voice transcription, and forward the results to the searchable activity.
      *