OSDN Git Service

add metrics for gestural notification expansions
authorChris Wren <cwren@android.com>
Thu, 26 May 2016 18:44:38 +0000 (14:44 -0400)
committerChris Wren <cwren@android.com>
Thu, 26 May 2016 21:20:33 +0000 (17:20 -0400)
Bug: 28146482
Change-Id: If202846c0d235830c7b41d76b55bdcc21d0ab90d

packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
proto/src/metrics_constants.proto

index 6f6b02d..88c1503 100644 (file)
@@ -1491,6 +1491,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
         mLoggingKey = key;
     }
 
+    public void onExpandedByGesture(boolean userExpanded) {
+        int event = MetricsEvent.ACTION_NOTIFICATION_GESTURE_EXPANDER;
+        if (mGroupManager.isSummaryOfGroup(getStatusBarNotification())) {
+            event = MetricsEvent.ACTION_NOTIFICATION_GROUP_GESTURE_EXPANDER;
+        }
+        MetricsLogger.action(mContext, event, userExpanded);
+    }
+
     @Override
     public float getIncreasedPaddingAmount() {
         if (mIsSummaryWithChildren) {
index 31fa3bf..9208134 100644 (file)
@@ -4339,6 +4339,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
 
     // ---------------------- DragDownHelper.OnDragDownListener ------------------------------------
 
+
+    /* Only ever called as a consequence of a lockscreen expansion gesture. */
     @Override
     public boolean onDraggedDown(View startingChild, int dragLengthY) {
         if (hasActiveNotifications()) {
@@ -4349,6 +4351,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
 
             // We have notifications, go to locked shade.
             goToLockedShade(startingChild);
+            if (startingChild instanceof ExpandableNotificationRow) {
+                ExpandableNotificationRow row = (ExpandableNotificationRow) startingChild;
+                row.onExpandedByGesture(true /* drag down is always an open */);
+            }
             return true;
         } else {
 
index 19f4074..cab2534 100644 (file)
@@ -959,11 +959,13 @@ public class NotificationStackScrollLayout extends ViewGroup
                 && (mIsExpanded || !((ExpandableNotificationRow) v).isPinned());
     }
 
+    /* Only ever called as a consequence of an expansion gesture in the shade. */
     @Override
     public void setUserExpandedChild(View v, boolean userExpanded) {
         if (v instanceof ExpandableNotificationRow) {
-            ((ExpandableNotificationRow) v).setUserExpanded(userExpanded,
-                    true /* allowChildrenExpansion */);
+            ExpandableNotificationRow row = (ExpandableNotificationRow) v;
+            row.setUserExpanded(userExpanded, true /* allowChildrenExpansion */);
+            row.onExpandedByGesture(userExpanded);
         }
     }
 
index f8cdf9b..a1487e3 100644 (file)
@@ -2212,6 +2212,12 @@ message MetricsEvent {
     // Notification group expansion state toggled by the expand affordance.
     ACTION_NOTIFICATION_GROUP_EXPANDER = 408;
 
+    // Notification expansion state toggled by the expand gesture.
+    ACTION_NOTIFICATION_GESTURE_EXPANDER = 409;
+
+    // Notification group expansion state toggled by the expand gesture.
+    ACTION_NOTIFICATION_GROUP_GESTURE_EXPANDER = 410;
+
     // Add new aosp constants above this line.
     // END OF AOSP CONSTANTS
   }