Merge "Remove reference to StatusBarNotification after the value is accessed." into lmp-dev
diff --git a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl
index fd6b59e..c25cdb2 100644
--- a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl
+++ b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl
@@ -20,5 +20,6 @@
 
 /** @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 a56f783..280db73 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 @@
      */
     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;
         }
     }
 }