From 3e779844346ca7add55f0180e33978f52be9f526 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Wed, 12 Oct 2016 11:34:52 -0700 Subject: [PATCH] Fixed a bug where the system could crash when expanding When expanding a notification it could disappear and the system would crash. Test: Manual, expand notification group and have it removed while doing so. Change-Id: I421ab0cf7a9292e6894529c80784ba0989071fb0 Fixes: 31941185 --- .../statusbar/stack/NotificationStackScrollLayout.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index bc89db221511f..f3e5c94be032b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -1056,7 +1056,7 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public int getMaxExpandHeight(ExpandableView view) { int maxContentHeight = view.getMaxContentHeight(); - if (view.isSummaryWithChildren()) { + if (view.isSummaryWithChildren() && view.getParent() == this) { // Faking a measure with the group expanded to simulate how the group would look if // it was. Doing a calculation here would be highly non-trivial because of the // algorithm @@ -1071,8 +1071,11 @@ public class NotificationStackScrollLayout extends ViewGroup row.getStatusBarNotification()); mGroupExpandedForMeasure = false; row.setForceUnlocked(false); - int height = mCurrentStackScrollState.getViewStateForView(view).height; - return Math.min(height, maxContentHeight); + StackViewState viewState = mCurrentStackScrollState.getViewStateForView(view); + if (viewState != null) { + // The view could have been removed + return Math.min(viewState.height, maxContentHeight); + } } return maxContentHeight; }