Make com.android.launcher3.action.LAUNCH intent explicit
b/27967359

Change-Id: I355ffc0af07d5bddcf87d41cf42bead9d5c824dc
diff --git a/res/values/config.xml b/res/values/config.xml
index c846b98..47311f3 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -71,6 +71,10 @@
          filter the activities shown in the launcher. Can be empty. -->
     <string name="app_filter_class" translatable="false"></string>
 
+    <!-- Name of a packages that com.android.launcher3.action.LAUNCH
+         should be targeting. Can be empty. -->
+    <array name="launch_broadcast_targets" translatable="false"></array>
+
     <!-- View ID to use for QSB widget -->
     <item type="id" name="qsb_widget" />
 
diff --git a/src/com/android/launcher3/Stats.java b/src/com/android/launcher3/Stats.java
index 83bca85..d46c939 100644
--- a/src/com/android/launcher3/Stats.java
+++ b/src/com/android/launcher3/Stats.java
@@ -132,6 +132,7 @@
 
         final String flat = intent.toUri(0);
         Intent broadcastIntent = new Intent(ACTION_LAUNCH).putExtra(EXTRA_INTENT, flat);
+
         if (shortcut != null) {
             broadcastIntent.putExtra(EXTRA_CONTAINER, shortcut.container)
                     .putExtra(EXTRA_SCREEN, shortcut.screenId)
@@ -142,6 +143,11 @@
         Bundle sourceExtras = LaunchSourceUtils.createSourceData();
         LaunchSourceUtils.populateSourceDataFromAncestorProvider(v, sourceExtras);
         broadcastIntent.putExtra(EXTRA_SOURCE, sourceExtras);
-        mLauncher.sendBroadcast(broadcastIntent, mLaunchBroadcastPermission);
+
+        String[] packages = mLauncher.getResources().getStringArray(R.array.launch_broadcast_targets);
+        for(String p: packages) {
+            broadcastIntent.setPackage(p);
+            mLauncher.sendBroadcast(broadcastIntent, mLaunchBroadcastPermission);
+        }
     }
 }