From ba0a6b61a3b229407bc4f4a62ed0f8c14adfa82a Mon Sep 17 00:00:00 2001 From: thiruram Date: Tue, 9 Jun 2020 14:24:49 -0700 Subject: [PATCH] Log folder open event into WW. Bug: 158597506 Sample Log: https://paste.googleplex.com/5351626992779264 Change-Id: Ifb2f061924035abc84472a9a03d1b4212588428b --- .../logging/StatsLogCompatManager.java | 36 ++++++++++++++++--- .../launcher3/logging/StatsLogManager.java | 12 ++++++- .../launcher3/touch/ItemClickHandler.java | 3 ++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index be8eb48f25..390330f166 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -94,6 +94,11 @@ public class StatsLogCompatManager extends StatsLogManager { log(event, DEFAULT_INSTANCE_ID, info); } + @Override + public void log(EventEnum event, ItemInfo itemInfo) { + logInternal(event, DEFAULT_INSTANCE_ID, itemInfo); + } + /** * Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}. */ @@ -135,6 +140,27 @@ public class StatsLogCompatManager extends StatsLogManager { logInternal(event, DEFAULT_INSTANCE_ID, info, srcState, dstState); } + private void logInternal(EventEnum event, InstanceId instanceId, @Nullable ItemInfo info) { + LauncherAppState.getInstance(sContext).getModel().enqueueModelUpdateTask( + new BaseModelUpdateTask() { + @Override + public void execute(LauncherAppState app, BgDataModel dataModel, + AllAppsList apps) { + LauncherAtom.ItemInfo atomInfo = LauncherAtom.ItemInfo.getDefaultInstance(); + if (info != null) { + if (info.container >= 0) { + atomInfo = info.buildProto(dataModel.folders.get(info.container)); + } else { + atomInfo = info.buildProto(); + } + } + logInternal(event, instanceId, atomInfo, + LAUNCHER_UICHANGED__DST_STATE__HOME, + LAUNCHER_UICHANGED__DST_STATE__BACKGROUND); + } + }); + } + /** * Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}. */ @@ -143,14 +169,14 @@ public class StatsLogCompatManager extends StatsLogManager { info = info == null ? LauncherAtom.ItemInfo.getDefaultInstance() : info; if (IS_VERBOSE) { - String name = (event instanceof LauncherEvent) ? ((LauncherEvent) event).name() : + String name = (event instanceof Enum) ? ((Enum) event).name() : event.getId() + ""; Log.d(TAG, instanceId == DEFAULT_INSTANCE_ID ? String.format("\n%s (State:%s->%s) \n%s", name, getStateString(srcState), - getStateString(dstState), info) - : String.format("\n%s (State:%s->%s) (InstanceId:%s)\n%s", name, instanceId, - getStateString(srcState), getStateString(dstState), info)); + getStateString(dstState), info) + : String.format("\n%s (State:%s->%s) (InstanceId:%s)\n%s", name, + getStateString(srcState), getStateString(dstState), instanceId, info)); } if (!Utilities.ATLEAST_R) { @@ -333,7 +359,7 @@ public class StatsLogCompatManager extends StatsLogManager { } private static String getStateString(int state) { - switch(state) { + switch (state) { case LAUNCHER_UICHANGED__DST_STATE__BACKGROUND: return "BACKGROUND"; case LAUNCHER_UICHANGED__DST_STATE__HOME: diff --git a/src/com/android/launcher3/logging/StatsLogManager.java b/src/com/android/launcher3/logging/StatsLogManager.java index f216f8129b..6af0eefe11 100644 --- a/src/com/android/launcher3/logging/StatsLogManager.java +++ b/src/com/android/launcher3/logging/StatsLogManager.java @@ -127,7 +127,10 @@ public class StatsLogManager implements ResourceBasedOverride { LAUNCHER_SYSTEM_SHORTCUT_PIN_TAP(522), @UiEvent(doc = "User is shown All Apps education view.") - LAUNCHER_ALL_APPS_EDU_SHOWN(523); + LAUNCHER_ALL_APPS_EDU_SHOWN(523), + + @UiEvent(doc = "User opened a folder.") + LAUNCHER_FOLDER_OPEN(551); // ADD MORE private final int mId; @@ -194,6 +197,13 @@ public class StatsLogManager implements ResourceBasedOverride { public void log(EventEnum event, @Nullable ItemInfo itemInfo) { } + /** + * Logs an event and accompanying {@link com.android.launcher3.model.data.ItemInfo}. + */ + public void log(EventEnum event, + com.android.launcher3.model.data.ItemInfo itemInfo) { + } + /** * Logs an event and accompanying {@link InstanceId} and {@link ItemInfo}. */ diff --git a/src/com/android/launcher3/touch/ItemClickHandler.java b/src/com/android/launcher3/touch/ItemClickHandler.java index 6abca767ae..de16941864 100644 --- a/src/com/android/launcher3/touch/ItemClickHandler.java +++ b/src/com/android/launcher3/touch/ItemClickHandler.java @@ -17,6 +17,7 @@ package com.android.launcher3.touch; import static com.android.launcher3.Launcher.REQUEST_BIND_PENDING_APPWIDGET; import static com.android.launcher3.Launcher.REQUEST_RECONFIGURE_APPWIDGET; +import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.model.AppLaunchTracker.CONTAINER_ALL_APPS; import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_DISABLED_BY_PUBLISHER; import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_DISABLED_LOCKED_USER; @@ -45,6 +46,7 @@ import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.folder.Folder; import com.android.launcher3.folder.FolderIcon; +import com.android.launcher3.logging.StatsLogManager; import com.android.launcher3.model.data.AppInfo; import com.android.launcher3.model.data.FolderInfo; import com.android.launcher3.model.data.ItemInfo; @@ -111,6 +113,7 @@ public class ItemClickHandler { if (!folder.isOpen() && !folder.isDestroyed()) { // Open the requested folder folder.animateOpen(); + StatsLogManager.newInstance(v.getContext()).log(LAUNCHER_FOLDER_OPEN, folder.mInfo); } }