Removing Launcher broadcast support from Launcher3

Change-Id: Ibaf5fe1465d3858b060fc2958194cf60f22a11db
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 48fd87c..9ae311e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -40,10 +40,6 @@
         android:protectionLevel="signatureOrSystem"
         android:label="@string/permlab_write_settings"
         android:description="@string/permdesc_write_settings"/>
-    <permission
-        android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS"
-        android:protectionLevel="signature"
-        />
 
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.SET_WALLPAPER" />
@@ -55,7 +51,6 @@
     <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
     <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
     <uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
-    <uses-permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" />
 
     <application
         android:allowBackup="@bool/enable_backup"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f2bcf14..fe0ecb5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -24,9 +24,6 @@
     <!-- URI used to import old favorites. [DO NOT TRANSLATE] -->
     <string name="old_launcher_provider_uri" translatable="false">content://com.android.launcher2.settings/favorites?notify=true</string>
 
-    <!-- Permission to receive the com.android.launcher3.action.LAUNCH intent. [DO NOT TRANSLATE] -->
-    <string name="receive_launch_broadcasts_permission" translatable="false">com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS</string>
-
     <!-- Application name -->
     <string name="app_name">Launcher3</string>
     <!-- Default folder name -->
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 7da31cd..f3f19e0 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -113,7 +113,6 @@
 import com.android.launcher3.model.WidgetsModel;
 import com.android.launcher3.userevent.nano.LauncherLogProto;
 import com.android.launcher3.util.ComponentKey;
-import com.android.launcher3.util.LongArrayMap;
 import com.android.launcher3.util.TestingUtils;
 import com.android.launcher3.util.Thunk;
 import com.android.launcher3.util.ViewOnDrawExecutor;
@@ -642,7 +641,7 @@
             mUserEventLogger = mLauncherCallbacks.getLogger();
         }
         if (mUserEventLogger == null) {
-            mUserEventLogger = new UserEventLogger(this) {
+            mUserEventLogger = new UserEventLogger() {
                 @Override
                 public void processEvent(LauncherLogProto.LauncherEvent ev) {
                     if (!DEBUG_LOGGING) {
diff --git a/src/com/android/launcher3/logging/UserEventLogger.java b/src/com/android/launcher3/logging/UserEventLogger.java
index bc3afeb..606d343 100644
--- a/src/com/android/launcher3/logging/UserEventLogger.java
+++ b/src/com/android/launcher3/logging/UserEventLogger.java
@@ -16,25 +16,17 @@
 
 package com.android.launcher3.logging;
 
-import android.content.BroadcastReceiver;
-import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.util.Log;
 import android.view.View;
 import android.view.ViewParent;
 
 import com.android.launcher3.ItemInfo;
-import com.android.launcher3.Launcher;
-import com.android.launcher3.R;
 import com.android.launcher3.userevent.nano.LauncherLogProto;
+import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
 import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
 import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
-import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
 import com.android.launcher3.util.ComponentKey;
 
-import com.google.protobuf.nano.MessageNano;
-
 import java.util.List;
 
 public abstract class UserEventLogger {
@@ -79,14 +71,6 @@
     }
 
     private String TAG = "UserEventLogger";
-    private static final boolean DEBUG_BROADCASTS = true;
-
-    public static final String ACTION_LAUNCH = "com.android.launcher3.action.LAUNCH";
-    public static final String EXTRA_INTENT = "intent";;
-    public static final String EXTRA_SOURCE = "source";
-
-    private final Launcher mLauncher;
-    private final String mLaunchBroadcastPermission;
 
     private long mElapsedContainerMillis;
     private long mElapsedSessionMillis;
@@ -95,27 +79,6 @@
     // Used for filling in predictedRank on {@link Target}s.
     private List<ComponentKey> mPredictedApps;
 
-    public UserEventLogger(Launcher launcher) {
-        mLauncher = launcher;
-        mLaunchBroadcastPermission =
-                launcher.getResources().getString(R.string.receive_launch_broadcasts_permission);
-
-        if (DEBUG_BROADCASTS) {
-            launcher.registerReceiver(
-                    new BroadcastReceiver() {
-                        @Override
-                        public void onReceive(Context context, Intent intent) {
-                            Log.v(TAG, "got broadcast: " + intent + " for launched intent: "
-                                    + intent.getStringExtra(EXTRA_INTENT));
-                        }
-                    },
-                    new IntentFilter(ACTION_LAUNCH),
-                    mLaunchBroadcastPermission,
-                    null
-            );
-        }
-    }
-
     //                      APP_ICON    SHORTCUT    WIDGET
     // --------------------------------------------------------------
     // packageNameHash      required    optional    required
@@ -123,26 +86,7 @@
     // intentHash                       required
     // --------------------------------------------------------------
 
-    /**
-     * Prepare {@link LauncherEvent} and {@link Intent} and then attach the event
-     * to the intent and then broadcast.
-     */
-    public final void broadcastEvent(LauncherEvent ev, Intent intent) {
-        intent = new Intent(intent);
-        intent.setSourceBounds(null);
-
-        final String flat = intent.toUri(0);
-        Intent broadcastIntent = new Intent(ACTION_LAUNCH).putExtra(EXTRA_INTENT, flat);
-
-        broadcastIntent.putExtra(EXTRA_SOURCE, MessageNano.toByteArray(ev));
-        String[] packages = ((Context)mLauncher).getResources().getStringArray(R.array.launch_broadcast_targets);
-        for(String p: packages) {
-            broadcastIntent.setPackage(p);
-            mLauncher.sendBroadcast(broadcastIntent, mLaunchBroadcastPermission);
-        }
-    }
-
-    public final void logLaunch(View v, Intent intent) {
+    protected LauncherEvent createLogEvent(View v) {
         LauncherEvent event = LoggerUtils.initLauncherEvent(
                 Action.TOUCH, Target.ITEM, Target.CONTAINER);
         event.action.touch = Action.TAP;
@@ -158,9 +102,11 @@
         // Fill in the duration of time spent navigating in Launcher and the container.
         event.elapsedContainerMillis = System.currentTimeMillis() - mElapsedContainerMillis;
         event.elapsedSessionMillis = System.currentTimeMillis() - mElapsedSessionMillis;
-        processEvent(event);
+        return event;
+    }
 
-        broadcastEvent(event, intent);
+    public void logLaunch(View v, Intent intent) {
+        processEvent(createLogEvent(v));
     }
 
     public void logTap(View v) {