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);
+ }
}
}