diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index f60bdd14b856d..a192f37237ca4 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -57,6 +57,9 @@ 1.0 + + 100dp + 92dp diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index da3fcf7f2a7ff..d3ab392d56447 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -189,6 +189,7 @@ public class NotificationPanelView extends PanelView implements private boolean mExpandingFromHeadsUp; private boolean mCollapsedOnDown; private int mPositionMinSideMargin; + private int mMaxFadeoutHeight; private int mLastOrientation = -1; private boolean mClosingWithAlphaFadeOut; private boolean mHeadsUpAnimatingAway; @@ -278,6 +279,8 @@ public class NotificationPanelView extends PanelView implements R.dimen.qs_falsing_threshold); mPositionMinSideMargin = getResources().getDimensionPixelSize( R.dimen.notification_panel_min_side_margin); + mMaxFadeoutHeight = getResources().getDimensionPixelSize( + R.dimen.max_notification_fadeout_height); } public void updateResources() { @@ -552,7 +555,9 @@ public class NotificationPanelView extends PanelView implements protected void flingToHeight(float vel, boolean expand, float target, float collapseSpeedUpFactor, boolean expandBecauseOfFalsing) { mHeadsUpTouchHelper.notifyFling(!expand); - setClosingWithAlphaFadeout(!expand && getFadeoutAlpha() == 1.0f); + setClosingWithAlphaFadeout(!expand + && mNotificationStackScroller.getFirstChildIntrinsicHeight() <= mMaxFadeoutHeight + && getFadeoutAlpha() == 1.0f); super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing); } 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 20ec0de6c2b33..bb0a5dcbdcbf8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -701,7 +701,7 @@ public class NotificationStackScrollLayout extends ViewGroup */ private float getExpandTranslationStart() { int startPosition = mTrackingHeadsUp || mHeadsUpManager.hasPinnedHeadsUp() - ? 0 : -getFirstChildMinHeight(); + ? 0 : -getFirstChildIntrinsicHeight(); return startPosition - mTopPadding; } @@ -2140,17 +2140,17 @@ public class NotificationStackScrollLayout extends ViewGroup } public int getLayoutMinHeight() { - int firstChildMinHeight = getFirstChildMinHeight(); + int firstChildMinHeight = getFirstChildIntrinsicHeight(); return Math.min(firstChildMinHeight + mBottomStackPeekSize + mBottomStackSlowDownHeight, mMaxLayoutHeight - mTopPadding); } - private int getFirstChildMinHeight() { + public int getFirstChildIntrinsicHeight() { final ExpandableView firstChild = getFirstChildNotGone(); int firstChildMinHeight = firstChild != null ? firstChild.getIntrinsicHeight() : mEmptyShadeView != null - ? mEmptyShadeView.getMinHeight() + ? mEmptyShadeView.getIntrinsicHeight() : mCollapsedSize; if (mOwnScrollY > 0) { firstChildMinHeight = Math.max(firstChildMinHeight - mOwnScrollY, mCollapsedSize);