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
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
index b0861bf..1f5b063 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
@@ -660,6 +660,14 @@
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;