We don't want to save all the heavyweight stuff, but we
can't lighten the notification in place because there may be
other active references.
Bug:
8839246
Change-Id: Id6dcc1cf5ae196ee3e42908d6b3ec4e928e9f0c5
}
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());
}