From 698b1706be196de41fc6bf03cf15971c82a11949 Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Mon, 23 May 2016 11:16:32 -0400 Subject: add metrics for notification and group expansion Bug: 28146482 Change-Id: Id7f71873ba33f85c1a1f2c48b47f78d40df46c0d --- .../statusbar/ExpandableNotificationRow.java | 21 +++++++++++++++++---- .../statusbar/phone/NotificationGroupManager.java | 6 ++++-- proto/src/metrics_constants.proto | 6 ++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index c53ab5902dec..6f6b02def040 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -41,6 +41,9 @@ import android.view.accessibility.AccessibilityEvent; import android.widget.Chronometer; import android.widget.ImageView; +import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.MetricsProto; +import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.util.NotificationColorUtil; import com.android.systemui.R; import com.android.systemui.classifier.FalsingManager; @@ -138,11 +141,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { @Override public void onClick(View v) { if (!mShowingPublic && mGroupManager.isSummaryOfGroup(mStatusBarNotification)) { - mGroupManager.toggleGroupExpansion(mStatusBarNotification); - mOnExpandClickListener.onExpandClicked(mEntry, - mGroupManager.isGroupExpanded(mStatusBarNotification)); + final boolean wasExpanded = mGroupManager.isGroupExpanded(mStatusBarNotification); + boolean nowExpanded = mGroupManager.toggleGroupExpansion(mStatusBarNotification); + mOnExpandClickListener.onExpandClicked(mEntry, nowExpanded); mGroupExpansionChanging = true; updateBackgroundForGroupState(); + MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER, + nowExpanded); + logExpansionEvent(true /* userAction */, wasExpanded); } else { boolean nowExpanded; if (isPinned()) { @@ -154,6 +160,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { } notifyHeightChanged(true); mOnExpandClickListener.onExpandClicked(mEntry, nowExpanded); + MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTIFICATION_EXPANDER, + nowExpanded); } } }; @@ -1019,7 +1027,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { public void setUserExpanded(boolean userExpanded, boolean allowChildExpansion) { mFalsingManager.setNotificationExpanded(); if (mIsSummaryWithChildren && !mShowingPublic && allowChildExpansion) { + final boolean wasExpanded = mGroupManager.isGroupExpanded(mStatusBarNotification); mGroupManager.setGroupExpanded(mStatusBarNotification, userExpanded); + logExpansionEvent(true /* userAction */, wasExpanded); return; } if (userExpanded && !mExpandable) return; @@ -1505,7 +1515,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { } private void logExpansionEvent(boolean userAction, boolean wasExpanded) { - final boolean nowExpanded = isExpanded(); + boolean nowExpanded = isExpanded(); + if (mIsSummaryWithChildren) { + nowExpanded = mGroupManager.isGroupExpanded(mStatusBarNotification); + } if (wasExpanded != nowExpanded && mLogger != null) { mLogger.logNotificationExpansion(mLoggingKey, userAction, nowExpanded) ; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java index 0df12044c46e..9ecff18d2d11 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java @@ -323,12 +323,14 @@ public class NotificationGroupManager implements HeadsUpManager.OnHeadsUpChanged : group.summary.row; } - public void toggleGroupExpansion(StatusBarNotification sbn) { + /** @return group expansion state after toggling. */ + public boolean toggleGroupExpansion(StatusBarNotification sbn) { NotificationGroup group = mGroupMap.get(getGroupKey(sbn)); if (group == null) { - return; + return false; } setGroupExpanded(group, !group.expanded); + return group.expanded; } private boolean isIsolated(StatusBarNotification sbn) { diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index 46da957ef90f..f8cdf9b3a736 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -2206,6 +2206,12 @@ message MetricsEvent { // Settings launched from expanded quick settings. ACTION_QS_EXPANDED_SETTINGS_LAUNCH = 406; + // Notification expansion state toggled by the expand affordance. + ACTION_NOTIFICATION_EXPANDER = 407; + + // Notification group expansion state toggled by the expand affordance. + ACTION_NOTIFICATION_GROUP_EXPANDER = 408; + // Add new aosp constants above this line. // END OF AOSP CONSTANTS } -- cgit v1.2.3-59-g8ed1b