diff --git a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl index fd6b59ed44495..c25cdb247ad2c 100644 --- a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl +++ b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl @@ -20,5 +20,6 @@ import android.service.notification.StatusBarNotification; /** @hide */ interface IStatusBarNotificationHolder { + /** Fetch the held StatusBarNotification. This method should only be called once per Holder */ StatusBarNotification get(); } diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index a56f7838e7086..280db73d6ee84 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2965,15 +2965,18 @@ public class NotificationManagerService extends SystemService { */ private static final class StatusBarNotificationHolder extends IStatusBarNotificationHolder.Stub { - private final StatusBarNotification mValue; + private StatusBarNotification mValue; public StatusBarNotificationHolder(StatusBarNotification value) { mValue = value; } + /** Get the held value and clear it. This function should only be called once per holder */ @Override public StatusBarNotification get() { - return mValue; + StatusBarNotification value = mValue; + mValue = null; + return value; } } }