Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +24 −3 Original line number Diff line number Diff line Loading @@ -392,6 +392,8 @@ public class NotificationPanelView extends PanelView implements if (mQs != null) { mQsMinExpansionHeight = mKeyguardShowing ? 0 : mQs.getQsMinExpansionHeight(); mQsMaxExpansionHeight = mQs.getDesiredHeight(); mNotificationStackScroller.setMaxTopPadding( mQsMaxExpansionHeight + mQsNotificationTopPadding); } positionClockAndNotifications(); if (mQsExpanded && mQsFullyExpanded) { Loading Loading @@ -588,6 +590,19 @@ public class NotificationPanelView extends PanelView implements mNotificationStackScroller.resetScrollPosition(); } @Override public void collapse(boolean delayed, float speedUpFactor) { if (!canPanelBeCollapsed()) { return; } if (mQsExpanded) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } super.collapse(delayed, speedUpFactor); } public void closeQs() { cancelQsAnimation(); setQsExpansion(mQsMinExpansionHeight); Loading Loading @@ -615,6 +630,7 @@ public class NotificationPanelView extends PanelView implements public void expandWithQs() { if (mQsExpansionEnabled) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } expand(true /* animate */); } Loading Loading @@ -878,6 +894,7 @@ public class NotificationPanelView extends PanelView implements && event.getY(event.getActionIndex()) < mStatusBarMinHeight) { MetricsLogger.count(mContext, COUNTER_PANEL_OPEN_QS, 1); mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); requestPanelHeightUpdate(); // Normally, we start listening when the panel is expanded, but here we need to start Loading Loading @@ -1321,7 +1338,9 @@ public class NotificationPanelView extends PanelView implements protected void updateQsExpansion() { if (mQs == null) return; mQs.setQsExpansion(getQsExpansionFraction(), getHeaderTranslation()); float qsExpansionFraction = getQsExpansionFraction(); mQs.setQsExpansion(qsExpansionFraction, getHeaderTranslation()); mNotificationStackScroller.setQsExpansionFraction(qsExpansionFraction); } private String determineAccessibilityPaneTitle() { Loading Loading @@ -1357,7 +1376,6 @@ public class NotificationPanelView extends PanelView implements } else if (mQsSizeChangeAnimator != null) { return (int) mQsSizeChangeAnimator.getAnimatedValue(); } else if (mKeyguardShowing) { // We can only do the smoother transition on Keyguard when we also are not collapsing // from a scrolled quick settings. return interpolate(getQsExpansionFraction(), Loading Loading @@ -1527,7 +1545,6 @@ public class NotificationPanelView extends PanelView implements // On Keyguard, interpolate the QS expansion linearly to the panel expansion t = expandedHeight / (getMaxPanelHeight()); } else { // In Shade, interpolate linearly such that QS is closed whenever panel height is // minimum QS expansion + minStackHeight float panelHeightQsCollapsed = mNotificationStackScroller.getIntrinsicPadding() Loading Loading @@ -1776,6 +1793,7 @@ public class NotificationPanelView extends PanelView implements setListening(true); } mQsExpandImmediate = false; mNotificationStackScroller.setShouldShowShelfOnly(false); mTwoFingerQsExpandPossible = false; mIsExpansionFromHeadsUp = false; notifyListenersTrackingHeadsUp(null); Loading Loading @@ -1827,6 +1845,7 @@ public class NotificationPanelView extends PanelView implements super.onTrackingStarted(); if (mQsFullyExpanded) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } if (mStatusBar.getBarState() == StatusBarState.KEYGUARD || mStatusBar.getBarState() == StatusBarState.SHADE_LOCKED) { Loading Loading @@ -1894,6 +1913,8 @@ public class NotificationPanelView extends PanelView implements if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } mNotificationStackScroller.setMaxTopPadding( mQsMaxExpansionHeight + mQsNotificationTopPadding); } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +36 −3 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ public class NotificationStackScrollLayout extends ViewGroup private int mCollapsedSize; private int mPaddingBetweenElements; private int mIncreasedPaddingBetweenElements; private int mMaxTopPadding; private int mRegularTopPadding; private int mDarkTopPadding; // Current padding, will be either mRegularTopPadding or mDarkTopPadding Loading @@ -177,6 +178,7 @@ public class NotificationStackScrollLayout extends ViewGroup private int mDarkSeparatorPadding; private int mBottomMargin; private int mBottomInset = 0; private float mQsExpansionFraction; /** * The algorithm which calculates the properties for our children Loading Loading @@ -230,6 +232,7 @@ public class NotificationStackScrollLayout extends ViewGroup private boolean mPanelTracking; private boolean mExpandingNotification; private boolean mExpandedInThisMotion; private boolean mShouldShowShelfOnly; protected boolean mScrollingEnabled; protected FooterView mFooterView; protected EmptyShadeView mEmptyShadeView; Loading Loading @@ -883,7 +886,20 @@ public class NotificationStackScrollLayout extends ViewGroup float appearFraction = 1.0f; if (height >= appearEndPosition) { translationY = 0; if (mShouldShowShelfOnly) { stackHeight = mTopPadding + mShelf.getIntrinsicHeight(); } else if (mQsExpanded) { int stackStartPosition = mContentHeight - mTopPadding + mIntrinsicPadding; int stackEndPosition = mMaxTopPadding + mShelf.getIntrinsicHeight(); if (stackStartPosition <= stackEndPosition) { stackHeight = stackEndPosition; } else { stackHeight = (int) NotificationUtils.interpolate(stackStartPosition, stackEndPosition, mQsExpansionFraction); } } else { stackHeight = (int) height; } } else { appearFraction = getAppearFraction(height); if (appearFraction >= 0) { Loading Loading @@ -2581,6 +2597,10 @@ public class NotificationStackScrollLayout extends ViewGroup setExpandedHeight(mExpandedHeight); } public void setMaxTopPadding(int maxTopPadding) { mMaxTopPadding = maxTopPadding; } public int getLayoutMinHeight() { if (isHeadsUpTransition()) { return getTopHeadsUpPinnedHeight(); Loading Loading @@ -4484,6 +4504,10 @@ public class NotificationStackScrollLayout extends ViewGroup updateAlgorithmLayoutMinHeight(); } public void setQsExpansionFraction(float qsExpansionFraction) { mQsExpansionFraction = qsExpansionFraction; } public void setOwnScrollY(int ownScrollY) { if (ownScrollY != mOwnScrollY) { // We still want to call the normal scrolled changed for accessibility reasons Loading Loading @@ -4519,6 +4543,11 @@ public class NotificationStackScrollLayout extends ViewGroup } } public void setShouldShowShelfOnly(boolean shouldShowShelfOnly) { mShouldShowShelfOnly = shouldShowShelfOnly; updateAlgorithmLayoutMinHeight(); } public int getMinExpansionHeight() { return mShelf.getIntrinsicHeight() - (mShelf.getIntrinsicHeight() - mStatusBarHeight) / 2; } Loading Loading @@ -4574,7 +4603,8 @@ public class NotificationStackScrollLayout extends ViewGroup public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(String.format("[%s: pulsing=%s qsCustomizerShowing=%s visibility=%s" + " alpha:%f scrollY:%d]", + " alpha:%f scrollY:%d maxTopPadding:%d showShelfOnly=%s" + " qsExpandFraction=%f]", this.getClass().getSimpleName(), mPulsing ? "T":"f", mAmbientState.isQsCustomizerShowing() ? "T":"f", Loading @@ -4582,7 +4612,10 @@ public class NotificationStackScrollLayout extends ViewGroup : getVisibility() == View.GONE ? "gone" : "invisible", getAlpha(), mAmbientState.getScrollY())); mAmbientState.getScrollY(), mMaxTopPadding, mShouldShowShelfOnly ? "T":"f", mQsExpansionFraction)); } public boolean isFullyDark() { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +24 −3 Original line number Diff line number Diff line Loading @@ -392,6 +392,8 @@ public class NotificationPanelView extends PanelView implements if (mQs != null) { mQsMinExpansionHeight = mKeyguardShowing ? 0 : mQs.getQsMinExpansionHeight(); mQsMaxExpansionHeight = mQs.getDesiredHeight(); mNotificationStackScroller.setMaxTopPadding( mQsMaxExpansionHeight + mQsNotificationTopPadding); } positionClockAndNotifications(); if (mQsExpanded && mQsFullyExpanded) { Loading Loading @@ -588,6 +590,19 @@ public class NotificationPanelView extends PanelView implements mNotificationStackScroller.resetScrollPosition(); } @Override public void collapse(boolean delayed, float speedUpFactor) { if (!canPanelBeCollapsed()) { return; } if (mQsExpanded) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } super.collapse(delayed, speedUpFactor); } public void closeQs() { cancelQsAnimation(); setQsExpansion(mQsMinExpansionHeight); Loading Loading @@ -615,6 +630,7 @@ public class NotificationPanelView extends PanelView implements public void expandWithQs() { if (mQsExpansionEnabled) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } expand(true /* animate */); } Loading Loading @@ -878,6 +894,7 @@ public class NotificationPanelView extends PanelView implements && event.getY(event.getActionIndex()) < mStatusBarMinHeight) { MetricsLogger.count(mContext, COUNTER_PANEL_OPEN_QS, 1); mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); requestPanelHeightUpdate(); // Normally, we start listening when the panel is expanded, but here we need to start Loading Loading @@ -1321,7 +1338,9 @@ public class NotificationPanelView extends PanelView implements protected void updateQsExpansion() { if (mQs == null) return; mQs.setQsExpansion(getQsExpansionFraction(), getHeaderTranslation()); float qsExpansionFraction = getQsExpansionFraction(); mQs.setQsExpansion(qsExpansionFraction, getHeaderTranslation()); mNotificationStackScroller.setQsExpansionFraction(qsExpansionFraction); } private String determineAccessibilityPaneTitle() { Loading Loading @@ -1357,7 +1376,6 @@ public class NotificationPanelView extends PanelView implements } else if (mQsSizeChangeAnimator != null) { return (int) mQsSizeChangeAnimator.getAnimatedValue(); } else if (mKeyguardShowing) { // We can only do the smoother transition on Keyguard when we also are not collapsing // from a scrolled quick settings. return interpolate(getQsExpansionFraction(), Loading Loading @@ -1527,7 +1545,6 @@ public class NotificationPanelView extends PanelView implements // On Keyguard, interpolate the QS expansion linearly to the panel expansion t = expandedHeight / (getMaxPanelHeight()); } else { // In Shade, interpolate linearly such that QS is closed whenever panel height is // minimum QS expansion + minStackHeight float panelHeightQsCollapsed = mNotificationStackScroller.getIntrinsicPadding() Loading Loading @@ -1776,6 +1793,7 @@ public class NotificationPanelView extends PanelView implements setListening(true); } mQsExpandImmediate = false; mNotificationStackScroller.setShouldShowShelfOnly(false); mTwoFingerQsExpandPossible = false; mIsExpansionFromHeadsUp = false; notifyListenersTrackingHeadsUp(null); Loading Loading @@ -1827,6 +1845,7 @@ public class NotificationPanelView extends PanelView implements super.onTrackingStarted(); if (mQsFullyExpanded) { mQsExpandImmediate = true; mNotificationStackScroller.setShouldShowShelfOnly(true); } if (mStatusBar.getBarState() == StatusBarState.KEYGUARD || mStatusBar.getBarState() == StatusBarState.SHADE_LOCKED) { Loading Loading @@ -1894,6 +1913,8 @@ public class NotificationPanelView extends PanelView implements if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } mNotificationStackScroller.setMaxTopPadding( mQsMaxExpansionHeight + mQsNotificationTopPadding); } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +36 −3 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ public class NotificationStackScrollLayout extends ViewGroup private int mCollapsedSize; private int mPaddingBetweenElements; private int mIncreasedPaddingBetweenElements; private int mMaxTopPadding; private int mRegularTopPadding; private int mDarkTopPadding; // Current padding, will be either mRegularTopPadding or mDarkTopPadding Loading @@ -177,6 +178,7 @@ public class NotificationStackScrollLayout extends ViewGroup private int mDarkSeparatorPadding; private int mBottomMargin; private int mBottomInset = 0; private float mQsExpansionFraction; /** * The algorithm which calculates the properties for our children Loading Loading @@ -230,6 +232,7 @@ public class NotificationStackScrollLayout extends ViewGroup private boolean mPanelTracking; private boolean mExpandingNotification; private boolean mExpandedInThisMotion; private boolean mShouldShowShelfOnly; protected boolean mScrollingEnabled; protected FooterView mFooterView; protected EmptyShadeView mEmptyShadeView; Loading Loading @@ -883,7 +886,20 @@ public class NotificationStackScrollLayout extends ViewGroup float appearFraction = 1.0f; if (height >= appearEndPosition) { translationY = 0; if (mShouldShowShelfOnly) { stackHeight = mTopPadding + mShelf.getIntrinsicHeight(); } else if (mQsExpanded) { int stackStartPosition = mContentHeight - mTopPadding + mIntrinsicPadding; int stackEndPosition = mMaxTopPadding + mShelf.getIntrinsicHeight(); if (stackStartPosition <= stackEndPosition) { stackHeight = stackEndPosition; } else { stackHeight = (int) NotificationUtils.interpolate(stackStartPosition, stackEndPosition, mQsExpansionFraction); } } else { stackHeight = (int) height; } } else { appearFraction = getAppearFraction(height); if (appearFraction >= 0) { Loading Loading @@ -2581,6 +2597,10 @@ public class NotificationStackScrollLayout extends ViewGroup setExpandedHeight(mExpandedHeight); } public void setMaxTopPadding(int maxTopPadding) { mMaxTopPadding = maxTopPadding; } public int getLayoutMinHeight() { if (isHeadsUpTransition()) { return getTopHeadsUpPinnedHeight(); Loading Loading @@ -4484,6 +4504,10 @@ public class NotificationStackScrollLayout extends ViewGroup updateAlgorithmLayoutMinHeight(); } public void setQsExpansionFraction(float qsExpansionFraction) { mQsExpansionFraction = qsExpansionFraction; } public void setOwnScrollY(int ownScrollY) { if (ownScrollY != mOwnScrollY) { // We still want to call the normal scrolled changed for accessibility reasons Loading Loading @@ -4519,6 +4543,11 @@ public class NotificationStackScrollLayout extends ViewGroup } } public void setShouldShowShelfOnly(boolean shouldShowShelfOnly) { mShouldShowShelfOnly = shouldShowShelfOnly; updateAlgorithmLayoutMinHeight(); } public int getMinExpansionHeight() { return mShelf.getIntrinsicHeight() - (mShelf.getIntrinsicHeight() - mStatusBarHeight) / 2; } Loading Loading @@ -4574,7 +4603,8 @@ public class NotificationStackScrollLayout extends ViewGroup public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(String.format("[%s: pulsing=%s qsCustomizerShowing=%s visibility=%s" + " alpha:%f scrollY:%d]", + " alpha:%f scrollY:%d maxTopPadding:%d showShelfOnly=%s" + " qsExpandFraction=%f]", this.getClass().getSimpleName(), mPulsing ? "T":"f", mAmbientState.isQsCustomizerShowing() ? "T":"f", Loading @@ -4582,7 +4612,10 @@ public class NotificationStackScrollLayout extends ViewGroup : getVisibility() == View.GONE ? "gone" : "invisible", getAlpha(), mAmbientState.getScrollY())); mAmbientState.getScrollY(), mMaxTopPadding, mShouldShowShelfOnly ? "T":"f", mQsExpansionFraction)); } public boolean isFullyDark() { Loading