There were two issues:
1) The mGutsMenuItem wasn’t getting nulled out correctly
2) There was no check for guts != null when seeing if there were
exposed guts, this meant the bind would happen when there were no
guts exposed, because mGutsMenuItem wasn’t nulled out correctly, it
would be out of date / still attached to a parent.
Test: Manually tried:
1) Have notifications that *haven’t* had guts revealed
2) Change screen density
1) Have notifications, reveal some of their guts
2) Change screen density
Bug:
34737513
Change-Id: Iff0a782c9377aec973eb07645e852bc320dbb101
ArrayList<Entry> activeNotifications = mNotificationData.getActiveNotifications();
for (int i = 0; i < activeNotifications.size(); i++) {
Entry entry = activeNotifications.get(i);
- boolean exposedGuts = entry.row.getGuts() == mNotificationGutsExposed;
+ boolean exposedGuts = mNotificationGutsExposed != null
+ && entry.row.getGuts() == mNotificationGutsExposed;
entry.row.reInflateViews();
if (exposedGuts) {
mNotificationGutsExposed = entry.row.getGuts();
mStackScroller.onHeightChanged(row, !isPanelFullyCollapsed() /* needsAnimation */);
}
mNotificationGutsExposed = null;
+ mGutsMenuItem = null;
});
if (item.gutsContent instanceof SnoozeGutsContent) {