Adds WW logging for QSB search results & all-apps predicted row. am: 62c7b5c8f7

Change-Id: Idfbc07cf7723c4b6f8b00fc6c5913372110c041d
diff --git a/protos/launcher_atom.proto b/protos/launcher_atom.proto
index f1db144..5f5fab0 100644
--- a/protos/launcher_atom.proto
+++ b/protos/launcher_atom.proto
@@ -49,15 +49,26 @@
     FolderContainer folder = 3;
     AllAppsContainer all_apps_container = 4;
     WidgetsContainer widgets_container = 5;
+    PredictionContainer prediction_container = 6;
+    SearchResultContainer search_result_container = 7;
   }
 }
 
+// Represents the apps list sorted alphabetically inside the all-apps view.
 message AllAppsContainer {
 }
 
 message WidgetsContainer {
 }
 
+// Represents the predicted apps row(top row) in the all-apps view.
+message PredictionContainer {
+}
+
+// Represents the apps container within search results.
+message SearchResultContainer {
+}
+
 enum Origin {
   UNKNOWN = 0;
   DEFAULT_LAYOUT = 1;       // icon automatically placed in workspace, folder, hotseat
diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java
index 535c9e6..6789072 100644
--- a/src/com/android/launcher3/LauncherSettings.java
+++ b/src/com/android/launcher3/LauncherSettings.java
@@ -155,6 +155,8 @@
         public static final int CONTAINER_ALL_APPS = -104;
         public static final int CONTAINER_WIDGETS_TRAY = -105;
 
+        // Represents search results view.
+        public static final int CONTAINER_SEARCH_RESULTS = -106;
 
         public static final String containerToString(int container) {
             switch (container) {
@@ -163,6 +165,7 @@
                 case CONTAINER_PREDICTION: return "prediction";
                 case CONTAINER_ALL_APPS: return "all_apps";
                 case CONTAINER_WIDGETS_TRAY: return "widgets_tray";
+                case CONTAINER_SEARCH_RESULTS: return "search_result";
                 default: return String.valueOf(container);
             }
         }
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 6b660c1..32685b0 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -418,10 +418,10 @@
         mStatsLogManager.log(
                 LauncherEvent.LAUNCHER_ITEM_DRAG_STARTED,
                 dragObject.logInstanceId,
-                dragObject.originalDragInfo.buildProto(
-                    dragObject.dragSource instanceof Folder
-                        ? ((Folder) dragObject.dragSource).mInfo
-                        : null)
+                dragObject.dragSource instanceof Folder
+                        ? dragObject.originalDragInfo
+                                .buildProto(((Folder) dragObject.dragSource).mInfo)
+                        : dragObject.originalDragInfo.buildProto()
         );
     }
 
diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java
index a97d529..3a89236 100644
--- a/src/com/android/launcher3/model/data/ItemInfo.java
+++ b/src/com/android/launcher3/model/data/ItemInfo.java
@@ -20,11 +20,14 @@
 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT;
 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION;
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_PREDICTION;
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_SEARCH_RESULTS;
 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_WIDGETS_TRAY;
 import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
 import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
 import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT;
 import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT;
+import static com.android.launcher3.logger.LauncherAtom.ContainerInfo.ContainerCase.CONTAINER_NOT_SET;
 
 import android.content.ComponentName;
 import android.content.ContentValues;
@@ -40,6 +43,8 @@
 import com.android.launcher3.logger.LauncherAtom;
 import com.android.launcher3.logger.LauncherAtom.AllAppsContainer;
 import com.android.launcher3.logger.LauncherAtom.ContainerInfo;
+import com.android.launcher3.logger.LauncherAtom.PredictionContainer;
+import com.android.launcher3.logger.LauncherAtom.SearchResultContainer;
 import com.android.launcher3.util.ContentWriter;
 
 import java.util.Optional;
@@ -240,8 +245,7 @@
      * Returns if an Item is a predicted item
      */
     public boolean isPredictedItem() {
-        return container == LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION
-                || container == LauncherSettings.Favorites.CONTAINER_PREDICTION;
+        return container == CONTAINER_HOTSEAT_PREDICTION || container == CONTAINER_PREDICTION;
     }
 
     /**
@@ -311,8 +315,11 @@
                     break;
             }
             itemBuilder.setContainerInfo(ContainerInfo.newBuilder().setFolder(folderBuilder));
-        } else if (getContainerInfo().getContainerCase().getNumber() > 0) {
-            itemBuilder.setContainerInfo(getContainerInfo());
+        } else {
+            ContainerInfo containerInfo = getContainerInfo();
+            if (!containerInfo.getContainerCase().equals(CONTAINER_NOT_SET)) {
+                itemBuilder.setContainerInfo(containerInfo);
+            }
         }
         return itemBuilder.build();
     }
@@ -328,16 +335,16 @@
             case CONTAINER_HOTSEAT:
             case CONTAINER_HOTSEAT_PREDICTION:
                 return ContainerInfo.newBuilder()
-                    .setHotseat(LauncherAtom.HotseatContainer.newBuilder().setIndex(screenId))
-                    .build();
+                        .setHotseat(LauncherAtom.HotseatContainer.newBuilder().setIndex(screenId))
+                        .build();
             case CONTAINER_DESKTOP:
                 return ContainerInfo.newBuilder()
-                    .setWorkspace(
-                        LauncherAtom.WorkspaceContainer.newBuilder()
-                        .setGridX(cellX)
-                        .setGridY(cellY)
-                        .setPageIndex(screenId))
-                    .build();
+                        .setWorkspace(
+                                LauncherAtom.WorkspaceContainer.newBuilder()
+                                        .setGridX(cellX)
+                                        .setGridY(cellY)
+                                        .setPageIndex(screenId))
+                        .build();
             case CONTAINER_ALL_APPS:
                 return ContainerInfo.newBuilder()
                         .setAllAppsContainer(
@@ -348,11 +355,21 @@
                         .setWidgetsContainer(
                                 LauncherAtom.WidgetsContainer.getDefaultInstance())
                         .build();
+            case CONTAINER_PREDICTION:
+                return ContainerInfo.newBuilder()
+                        .setPredictionContainer(PredictionContainer.getDefaultInstance())
+                        .build();
+            case CONTAINER_SEARCH_RESULTS:
+                return ContainerInfo.newBuilder()
+                        .setSearchResultContainer(SearchResultContainer.getDefaultInstance())
+                        .build();
         }
         return ContainerInfo.getDefaultInstance();
     }
 
-    /** Returns shallow copy of the object. */
+    /**
+     * Returns shallow copy of the object.
+     */
     public ItemInfo makeShallowCopy() {
         ItemInfo itemInfo = new ItemInfo();
         itemInfo.copyFrom(this);