diff options
| author | 2016-05-23 11:16:32 -0400 | |
|---|---|---|
| committer | 2016-05-25 17:08:17 -0400 | |
| commit | 698b1706be196de41fc6bf03cf15971c82a11949 (patch) | |
| tree | d89f1eb60a3d46a58066dc33da81cf7daf87a757 | |
| parent | 7c17e70f2f795ca06006ff2560c8b8211ce1dd52 (diff) | |
add metrics for notification and group expansion
Bug: 28146482
Change-Id: Id7f71873ba33f85c1a1f2c48b47f78d40df46c0d
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 } |