diff options
Diffstat (limited to 'services/java/com/android/server/NotificationManagerService.java')
-rw-r--r-- | services/java/com/android/server/NotificationManagerService.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index f9b6eba68b60..111dbb237618 100644 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java @@ -283,13 +283,14 @@ public class NotificationManagerService extends INotificationManager.Stub } public void record(StatusBarNotification nr) { - // Nuke heavy parts of notification before storing in archive - nr.getNotification().lightenPayload(); - if (mBuffer.size() == BUFFER_SIZE) { mBuffer.removeFirst(); } - mBuffer.addLast(nr); + + // We don't want to store the heavy bits of the notification in the archive, + // but other clients in the system process might be using the object, so we + // store a (lightened) copy. + mBuffer.addLast(nr.cloneLight()); } |