From 369172f6e913aba652fd045092d7fad690f709d1 Mon Sep 17 00:00:00 2001 From: Yuri Lin Date: Thu, 1 Dec 2022 17:35:02 -0500 Subject: [PATCH] Add UiEvents for cancellation reasons previously not covered Bug: 260852245 Test: statsd_testdrive Change-Id: Ie976d9f826e7d53089fe65ba0735b40a79587f6f --- .../notification/NotificationListenerService.java | 2 ++ .../server/notification/NotificationRecordLogger.java | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index e821af1ab3130..d113a3cc0c4bf 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -267,6 +267,8 @@ public abstract class NotificationListenerService extends Service { * will be restored via NotificationListeners#notifyPostedLocked() */ public static final int REASON_LOCKDOWN = 23; + // If adding a new notification cancellation reason, you must also add handling for it in + // NotificationCancelledEvent.fromCancelReason. /** * @hide diff --git a/services/core/java/com/android/server/notification/NotificationRecordLogger.java b/services/core/java/com/android/server/notification/NotificationRecordLogger.java index ef1e11ccad556..4031c833f3c12 100644 --- a/services/core/java/com/android/server/notification/NotificationRecordLogger.java +++ b/services/core/java/com/android/server/notification/NotificationRecordLogger.java @@ -18,8 +18,8 @@ package com.android.server.notification; import static android.service.notification.NotificationListenerService.REASON_ASSISTANT_CANCEL; import static android.service.notification.NotificationListenerService.REASON_CANCEL; +import static android.service.notification.NotificationListenerService.REASON_CLEAR_DATA; import static android.service.notification.NotificationListenerService.REASON_CLICK; -import static android.service.notification.NotificationListenerService.REASON_TIMEOUT; import android.annotation.NonNull; import android.annotation.Nullable; @@ -172,7 +172,12 @@ public interface NotificationRecordLogger { NOTIFICATION_CANCEL_SNOOZED(181), @UiEvent(doc = "Notification was canceled due to timeout") NOTIFICATION_CANCEL_TIMEOUT(182), - // Values 183-189 reserved for future system dismissal reasons + @UiEvent(doc = "Notification was canceled due to the backing channel being deleted") + NOTIFICATION_CANCEL_CHANNEL_REMOVED(1261), + @UiEvent(doc = "Notification was canceled due to the app's storage being cleared") + NOTIFICATION_CANCEL_CLEAR_DATA(1262), + // Values above this line must remain in the same order as the corresponding + // NotificationCancelReason enum values. @UiEvent(doc = "Notification was canceled due to user dismissal of a peeking notification.") NOTIFICATION_CANCEL_USER_PEEK(190), @UiEvent(doc = "Notification was canceled due to user dismissal from the always-on display") @@ -208,7 +213,7 @@ public interface NotificationRecordLogger { // Most cancel reasons do not have a meaningful surface. Reason codes map directly // to NotificationCancelledEvent codes. if (surface == NotificationStats.DISMISSAL_OTHER) { - if ((REASON_CLICK <= reason) && (reason <= REASON_TIMEOUT)) { + if ((REASON_CLICK <= reason) && (reason <= REASON_CLEAR_DATA)) { return NotificationCancelledEvent.values()[reason]; } if (reason == REASON_ASSISTANT_CANCEL) {