Log tap on app info within task menu.
Override TaskShortcutFactory.dummyInfo to logs 'task -> app info' as TaskEvent and 'app icon -> app info' as AppEvent.
Bug: 157770913
Sample Log: https://docs.google.com/document/d/1FXi_jY1B63aMSjNyomAmoN1nSTtVbvculNGX7TKdRRw/edit#bookmark=id.j2cziephk9fy
Change-Id: I448a489fcc93324f6082eba2857644feb5d6bca3
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskShortcutFactory.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskShortcutFactory.java
index cdaa655..5b15c55 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskShortcutFactory.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskShortcutFactory.java
@@ -37,6 +37,7 @@
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
+import com.android.launcher3.logger.LauncherAtom;
import com.android.launcher3.logging.StatsLogManager.LauncherEvent;
import com.android.launcher3.model.WellbeingModel;
import com.android.launcher3.model.data.WorkspaceItemInfo;
@@ -71,7 +72,16 @@
static WorkspaceItemInfo dummyInfo(TaskView view) {
Task task = view.getTask();
- WorkspaceItemInfo dummyInfo = new WorkspaceItemInfo();
+ WorkspaceItemInfo dummyInfo = new WorkspaceItemInfo(){
+ /**
+ * Helps to log events as {@link LauncherAtom.Task}
+ * instead of {@link LauncherAtom.ItemInfo}.
+ */
+ @Override
+ public LauncherAtom.ItemInfo buildProto() {
+ return view.buildProto();
+ }
+ };
dummyInfo.intent = new Intent();
ComponentName component = task.getTopComponent();
dummyInfo.getIntent().setComponent(component);
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
index af9d7f7..212f6bf 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
@@ -223,7 +223,9 @@
setOutlineProvider(mOutlineProvider);
}
- /** Builds proto for logging */
+ /**
+ * Builds proto for logging
+ */
public LauncherAtom.ItemInfo buildProto() {
ComponentKey componentKey = TaskUtils.getLaunchComponentKeyForTask(getTask().key);
LauncherAtom.ItemInfo.Builder itemBuilder = LauncherAtom.ItemInfo.newBuilder();
diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java
index 58ed5e8..ea8caf5 100644
--- a/src/com/android/launcher3/popup/SystemShortcut.java
+++ b/src/com/android/launcher3/popup/SystemShortcut.java
@@ -29,6 +29,7 @@
import com.android.launcher3.widget.WidgetsBottomSheet;
import java.util.List;
+
/**
* Represents a system shortcut for a given app. The shortcut should have a label and icon, and an
* onClickListener that depends on the item that the shortcut services.
@@ -142,8 +143,8 @@
mTarget.getUserEventDispatcher().logActionOnControl(Action.Touch.TAP,
ControlType.APPINFO_TARGET, view);
// TODO(thiruram): Fix missing container info when item is inside folder.
- mTarget.getStatsLogManager().log(LAUNCHER_SYSTEM_SHORTCUT_APP_INFO_TAP,
- mItemInfo.buildProto());
+ mTarget.getStatsLogManager()
+ .log(LAUNCHER_SYSTEM_SHORTCUT_APP_INFO_TAP, mItemInfo.buildProto());
}
}