Fix NPE from freeing expanded view while expanding.

There was a potential NPE from a notification's expanded view being
freed while the notification was expanding. We fix this by by forcing
the view change when the transformation would involve a removed view.

Bug: 159510709
Test: Reproduce steps in bug, no crash
Change-Id: Ib0e6f7c57f29d2bb0157601d190dd0bb5ed6add1
This commit is contained in:
Kevin Han
2020-06-24 18:10:42 -07:00
parent 06ba19ff4e
commit 76735ec30a

View File

@@ -660,6 +660,14 @@ public class NotificationContentView extends FrameLayout {
private void updateContentTransformation() {
int visibleType = calculateVisibleType();
if (getTransformableViewForVisibleType(mVisibleType) == null) {
// Case where visible view was removed in middle of transformation. In this case, we
// just update immediately to the appropriate view.
mVisibleType = visibleType;
updateViewVisibilities(visibleType);
updateBackgroundColor(false);
return;
}
if (visibleType != mVisibleType) {
// A new transformation starts
mTransformationStartVisibleType = mVisibleType;