Implements LAUNCHER_ITEM_DROP_COMPLETED event.

Assigns InstanceId to match LAUNCHER_ITEM_DROP_COMPLETED, LAUNCHER_ITEM_DRAG_STARTED events.

Sample Log:
2020-05-01 14:07:53.158 18369-18369/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DRAG_STARTED(InstanceId:282)
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@c0711fbd
    application {
      component_name: "com.google.android.apps.maps/com.google.android.maps.MapsActivity"
      package_name: "com.google.android.apps.maps"
    }
    container_info {
      workspace {
        grid_x: 2
        grid_y: 1
        page_index: 0
      }
    }
    is_work: false
2020-05-01 14:07:54.308 18369-18369/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DROP_COMPLETED(InstanceId:282)
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@90000206
    application {
      component_name: "com.google.android.apps.maps/com.google.android.maps.MapsActivity"
      package_name: "com.google.android.apps.maps"
    }
    container_info {
      workspace {
        grid_x: 0
        grid_y: 4
        page_index: 0
      }
    }
    is_work: false

Bug: 152978018

Change-Id: Ib4fc860e8080edd407ed15b93f7d55ac31328d11
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 2111162..a58bf70 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -248,6 +248,8 @@
     // Handles workspace state transitions
     private final WorkspaceStateTransitionAnimation mStateTransitionAnimation;
 
+    private final StatsLogManager mStatsLogManager;
+
     /**
      * Used to inflate the Workspace from XML.
      *
@@ -280,6 +282,7 @@
         // Disable multitouch across the workspace/all apps/customize tray
         setMotionEventSplittingEnabled(true);
         setOnTouchListener(new WorkspaceTouchListener(mLauncher, this));
+        mStatsLogManager = StatsLogManager.newInstance(context);
     }
 
     @Override
@@ -359,7 +362,7 @@
     }
 
     @Override
-    public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) {
+    public void onDragStart(DragObject dragObject, DragOptions options) {
         if (ENFORCE_DRAG_EVENT_ORDER) {
             enforceDragParity("onDragStart", 0, 0);
         }
@@ -411,10 +414,10 @@
 
         // Always enter the spring loaded mode
         mLauncher.getStateManager().goToState(SPRING_LOADED);
-        StatsLogManager.newInstance(getContext())
-                .log(
-                    LauncherEvent.LAUNCHER_ITEM_DRAG_STARTED,
-                    dragObject.originalDragInfo.buildProto(null));
+        mStatsLogManager.log(
+                LauncherEvent.LAUNCHER_ITEM_DRAG_STARTED,
+                dragObject.originalDragInfo.id,
+                dragObject.originalDragInfo.buildProto(null));
     }
 
     public void deferRemoveExtraEmptyScreen() {
@@ -1695,6 +1698,7 @@
     @Override
     public void prepareAccessibilityDrop() { }
 
+    @Override
     public void onDrop(final DragObject d, DragOptions options) {
         mDragViewVisualCenter = d.getVisualCenter(mDragViewVisualCenter);
         CellLayout dropTargetLayout = mDropToLayout;
@@ -1886,6 +1890,10 @@
         if (d.stateAnnouncer != null && !droppedOnOriginalCell) {
             d.stateAnnouncer.completeAction(R.string.item_moved);
         }
+        mStatsLogManager.log(
+                LauncherEvent.LAUNCHER_ITEM_DROP_COMPLETED,
+                d.dragInfo.id,
+                d.dragInfo.buildProto(null));
     }
 
     public void onNoCellFound(View dropTargetLayout) {
diff --git a/src/com/android/launcher3/logging/StatsLogManager.java b/src/com/android/launcher3/logging/StatsLogManager.java
index 05dd473..1e2ce53 100644
--- a/src/com/android/launcher3/logging/StatsLogManager.java
+++ b/src/com/android/launcher3/logging/StatsLogManager.java
@@ -45,7 +45,9 @@
         @LauncherUiEvent(doc = "TASK dismissed from overview using SWIPE UP")
         TASK_DISMISS_SWIPE_UP(3),
         @LauncherUiEvent(doc = "User dragged a launcher item")
-        LAUNCHER_ITEM_DRAG_STARTED(383);
+        LAUNCHER_ITEM_DRAG_STARTED(383),
+        @LauncherUiEvent(doc = "A dragged launcher item is successfully dropped")
+        LAUNCHER_ITEM_DROP_COMPLETED(385);
         // ADD MORE
 
         private final int mId;
@@ -83,6 +85,14 @@
     }
 
     /**
+     * Logs an event and accompanying {@link ItemInfo}
+     */
+    public void log(LauncherEvent event, int instanceId, LauncherAtom.ItemInfo itemInfo) {
+        Log.d(TAG, String.format("%s(InstanceId:%s)\n%s", event.name(), instanceId, itemInfo));
+        // Call StatsLog method
+    }
+
+    /**
      * Logs snapshot, or impression of the current workspace.
      */
     public void logSnapshot() { }