diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java | 5 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index 84005d1aa65e..530b32f6c4e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -258,4 +258,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { public void notifyContentUpdated() { mPrivateLayout.notifyContentUpdated(); } + + public boolean isShowingLayoutLayouted() { + View showingLayout = mShowingPublic ? mPublicLayout : mPrivateLayout; + return showingLayout.getWidth() != 0; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java index a48cab8441df..b9346c3ff01c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java @@ -657,7 +657,7 @@ public class StackScrollAlgorithm { } else { // We are expanding the shade, expand it to its full height. - if (mFirstChildWhileExpanding.getWidth() == 0) { + if (!isMaxSizeInitialized(mFirstChildWhileExpanding)) { // This child was not layouted yet, wait for a layout pass mFirstChildWhileExpanding @@ -684,6 +684,14 @@ public class StackScrollAlgorithm { } } + private boolean isMaxSizeInitialized(ExpandableView child) { + if (child instanceof ExpandableNotificationRow) { + ExpandableNotificationRow row = (ExpandableNotificationRow) child; + return row.isShowingLayoutLayouted(); + } + return child == null || child.getWidth() != 0; + } + private View findFirstVisibleChild(ViewGroup container) { int childCount = container.getChildCount(); for (int i = 0; i < childCount; i++) { |