From 3cb5592c84e6f2c9508e32ed762bf50ef56a4f0a Mon Sep 17 00:00:00 2001 From: thiruram Date: Mon, 1 Jun 2020 17:17:24 -0700 Subject: [PATCH] Log tap on dot-notifications on both app icon and deep shortcuts. Bug: 157765763 Sample Log: https://paste.googleplex.com/6354213825150976 Screencast: http://go/recall/-/fuZYA4w9pUEvRlF811dY61/ecVIR0vyJ2thQwLbUL64Ar Change-Id: I6e1ed381d551044a1ad94b72b3f431223a888a72 --- src/com/android/launcher3/logging/StatsLogManager.java | 5 ++++- .../launcher3/notification/NotificationInfo.java | 10 +++++++++- src/com/android/launcher3/popup/PopupPopulator.java | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/logging/StatsLogManager.java b/src/com/android/launcher3/logging/StatsLogManager.java index f07cf94b9c..1feeddecd9 100644 --- a/src/com/android/launcher3/logging/StatsLogManager.java +++ b/src/com/android/launcher3/logging/StatsLogManager.java @@ -43,6 +43,9 @@ public class StatsLogManager implements ResourceBasedOverride { @UiEvent(doc = "Task launched from overview using TAP") LAUNCHER_TASK_LAUNCH_TAP(339), + @UiEvent(doc = "User tapped on notification inside popup context menu.") + LAUNCHER_NOTIFICATION_LAUNCH_TAP(516), + @UiEvent(doc = "Task launched from overview using SWIPE DOWN") LAUNCHER_TASK_LAUNCH_SWIPE_DOWN(340), @@ -101,7 +104,7 @@ public class StatsLogManager implements ResourceBasedOverride { LAUNCHER_TASK_ICON_TAP_OR_LONGPRESS(517), @UiEvent(doc = "User opened package specific widgets list by tapping on widgets system " - + "shortcut within longpress popup window.") + + "shortcut inside popup context menu.") LAUNCHER_SYSTEM_SHORTCUT_WIDGETS_TAP(514), @UiEvent(doc = "User tapped on app info system shortcut.") diff --git a/src/com/android/launcher3/notification/NotificationInfo.java b/src/com/android/launcher3/notification/NotificationInfo.java index e5525b2faa..fa1bdfbb46 100644 --- a/src/com/android/launcher3/notification/NotificationInfo.java +++ b/src/com/android/launcher3/notification/NotificationInfo.java @@ -16,6 +16,8 @@ package com.android.launcher3.notification; +import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NOTIFICATION_LAUNCH_TAP; + import android.app.ActivityOptions; import android.app.Notification; import android.app.PendingIntent; @@ -32,6 +34,7 @@ import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.dot.DotInfo; import com.android.launcher3.graphics.IconPalette; +import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.util.PackageUserKey; /** @@ -51,6 +54,7 @@ public class NotificationInfo implements View.OnClickListener { public final boolean autoCancel; public final boolean dismissable; + private final ItemInfo mItemInfo; private Drawable mIconDrawable; private int mIconColor; private boolean mIsIconLarge; @@ -58,7 +62,8 @@ public class NotificationInfo implements View.OnClickListener { /** * Extracts the data that we need from the StatusBarNotification. */ - public NotificationInfo(Context context, StatusBarNotification statusBarNotification) { + public NotificationInfo(Context context, StatusBarNotification statusBarNotification, + ItemInfo itemInfo) { packageUserKey = PackageUserKey.fromNotification(statusBarNotification); notificationKey = statusBarNotification.getKey(); Notification notification = statusBarNotification.getNotification(); @@ -88,6 +93,7 @@ public class NotificationInfo implements View.OnClickListener { intent = notification.contentIntent; autoCancel = (notification.flags & Notification.FLAG_AUTO_CANCEL) != 0; dismissable = (notification.flags & Notification.FLAG_ONGOING_EVENT) == 0; + this.mItemInfo = itemInfo; } @Override @@ -101,6 +107,8 @@ public class NotificationInfo implements View.OnClickListener { try { intent.send(null, 0, null, null, null, null, activityOptions); launcher.getUserEventDispatcher().logNotificationLaunch(view, intent); + launcher.getStatsLogManager() + .log(LAUNCHER_NOTIFICATION_LAUNCH_TAP, mItemInfo.buildProto()); } catch (PendingIntent.CanceledException e) { e.printStackTrace(); } diff --git a/src/com/android/launcher3/popup/PopupPopulator.java b/src/com/android/launcher3/popup/PopupPopulator.java index 6d3bc1451a..5ed6f2e37e 100644 --- a/src/com/android/launcher3/popup/PopupPopulator.java +++ b/src/com/android/launcher3/popup/PopupPopulator.java @@ -144,7 +144,7 @@ public class PopupPopulator { infos = Collections.emptyList(); } else { infos = notificationListener.getNotificationsForKeys(notificationKeys).stream() - .map(sbn -> new NotificationInfo(launcher, sbn)) + .map(sbn -> new NotificationInfo(launcher, sbn, originalInfo)) .collect(Collectors.toList()); } uiHandler.post(() -> container.applyNotificationInfos(infos));