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