Merge "Distinguish statsd notification actions logs." into rvc-dev am: 54343748d4
Change-Id: Ie567bf828345f966b0106828b34f99fa35716611
This commit is contained in:
@@ -943,7 +943,8 @@ public class NotificationManagerService extends SystemService {
|
||||
.addTaggedData(MetricsEvent.NOTIFICATION_LOCATION,
|
||||
nv.location.toMetricsEventEnum()));
|
||||
mNotificationRecordLogger.log(
|
||||
NotificationRecordLogger.NotificationEvent.NOTIFICATION_ACTION_CLICKED, r);
|
||||
NotificationRecordLogger.NotificationEvent.fromAction(actionIndex,
|
||||
generatedByAssistant, action.isContextual()), r);
|
||||
EventLogTags.writeNotificationActionClicked(key, actionIndex,
|
||||
r.getLifespanMs(now), r.getFreshnessMs(now), r.getExposureMs(now),
|
||||
nv.rank, nv.count);
|
||||
|
||||
@@ -229,7 +229,7 @@ public interface NotificationRecordLogger {
|
||||
NOTIFICATION_NOT_POSTED_SNOOZED(319),
|
||||
@UiEvent(doc = "Notification was clicked.")
|
||||
NOTIFICATION_CLICKED(320),
|
||||
@UiEvent(doc = "Notification action was clicked.")
|
||||
@UiEvent(doc = "Notification action was clicked; unexpected position.")
|
||||
NOTIFICATION_ACTION_CLICKED(321),
|
||||
@UiEvent(doc = "Notification detail was expanded due to non-user action.")
|
||||
NOTIFICATION_DETAIL_OPEN_SYSTEM(327),
|
||||
@@ -245,7 +245,24 @@ public interface NotificationRecordLogger {
|
||||
NOTIFICATION_SMART_REPLIED(332),
|
||||
@UiEvent(doc = "Notification smart reply action was visible.")
|
||||
NOTIFICATION_SMART_REPLY_VISIBLE(333),
|
||||
;
|
||||
@UiEvent(doc = "App-generated notification action at position 0 was clicked.")
|
||||
NOTIFICATION_ACTION_CLICKED_0(450),
|
||||
@UiEvent(doc = "App-generated notification action at position 1 was clicked.")
|
||||
NOTIFICATION_ACTION_CLICKED_1(451),
|
||||
@UiEvent(doc = "App-generated notification action at position 2 was clicked.")
|
||||
NOTIFICATION_ACTION_CLICKED_2(452),
|
||||
@UiEvent(doc = "Contextual notification action at position 0 was clicked.")
|
||||
NOTIFICATION_CONTEXTUAL_ACTION_CLICKED_0(453),
|
||||
@UiEvent(doc = "Contextual notification action at position 1 was clicked.")
|
||||
NOTIFICATION_CONTEXTUAL_ACTION_CLICKED_1(454),
|
||||
@UiEvent(doc = "Contextual notification action at position 2 was clicked.")
|
||||
NOTIFICATION_CONTEXTUAL_ACTION_CLICKED_2(455),
|
||||
@UiEvent(doc = "Notification assistant generated notification action at 0 was clicked.")
|
||||
NOTIFICATION_ASSIST_ACTION_CLICKED_0(456),
|
||||
@UiEvent(doc = "Notification assistant generated notification action at 1 was clicked.")
|
||||
NOTIFICATION_ASSIST_ACTION_CLICKED_1(457),
|
||||
@UiEvent(doc = "Notification assistant generated notification action at 2 was clicked.")
|
||||
NOTIFICATION_ASSIST_ACTION_CLICKED_2(458);
|
||||
|
||||
private final int mId;
|
||||
NotificationEvent(int id) {
|
||||
@@ -264,6 +281,21 @@ public interface NotificationRecordLogger {
|
||||
}
|
||||
return expanded ? NOTIFICATION_DETAIL_OPEN_SYSTEM : NOTIFICATION_DETAIL_CLOSE_SYSTEM;
|
||||
}
|
||||
public static NotificationEvent fromAction(int index, boolean isAssistant,
|
||||
boolean isContextual) {
|
||||
if (index < 0 || index > 2) {
|
||||
return NOTIFICATION_ACTION_CLICKED;
|
||||
}
|
||||
if (isAssistant) { // Assistant actions are contextual by definition
|
||||
return NotificationEvent.values()[
|
||||
NOTIFICATION_ASSIST_ACTION_CLICKED_0.ordinal() + index];
|
||||
}
|
||||
if (isContextual) {
|
||||
return NotificationEvent.values()[
|
||||
NOTIFICATION_CONTEXTUAL_ACTION_CLICKED_0.ordinal() + index];
|
||||
}
|
||||
return NotificationEvent.values()[NOTIFICATION_ACTION_CLICKED_0.ordinal() + index];
|
||||
}
|
||||
}
|
||||
|
||||
enum NotificationPanelEvent implements UiEventLogger.UiEventEnum {
|
||||
|
||||
@@ -4932,7 +4932,32 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
eq(r.getSbn()), eq(actionIndex), eq(action), eq(generatedByAssistant));
|
||||
|
||||
assertEquals(1, mNotificationRecordLogger.numCalls());
|
||||
assertEquals(NotificationRecordLogger.NotificationEvent.NOTIFICATION_ACTION_CLICKED,
|
||||
assertEquals(
|
||||
NotificationRecordLogger.NotificationEvent.NOTIFICATION_ACTION_CLICKED_2,
|
||||
mNotificationRecordLogger.event(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnAssistantNotificationActionClick() {
|
||||
final int actionIndex = 1;
|
||||
final Notification.Action action =
|
||||
new Notification.Action.Builder(null, "text", null).build();
|
||||
final boolean generatedByAssistant = true;
|
||||
|
||||
NotificationRecord r = generateNotificationRecord(mTestNotificationChannel);
|
||||
mService.addNotification(r);
|
||||
|
||||
NotificationVisibility notificationVisibility =
|
||||
NotificationVisibility.obtain(r.getKey(), 1, 2, true);
|
||||
mService.mNotificationDelegate.onNotificationActionClick(
|
||||
10, 10, r.getKey(), actionIndex, action, notificationVisibility,
|
||||
generatedByAssistant);
|
||||
verify(mAssistants).notifyAssistantActionClicked(
|
||||
eq(r.getSbn()), eq(actionIndex), eq(action), eq(generatedByAssistant));
|
||||
|
||||
assertEquals(1, mNotificationRecordLogger.numCalls());
|
||||
assertEquals(
|
||||
NotificationRecordLogger.NotificationEvent.NOTIFICATION_ASSIST_ACTION_CLICKED_1,
|
||||
mNotificationRecordLogger.event(0));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user