diff options
4 files changed, 24 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java index 2873afbca8e9..2b656c220d63 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java @@ -171,15 +171,16 @@ public class KeyguardStatusView extends GridLayout { } private void onSliceContentChanged(boolean hasHeader) { - final float clockScale = hasHeader ? mSmallClockScale : 1; + final boolean smallClock = hasHeader || mPulsing; + final float clockScale = smallClock ? mSmallClockScale : 1; float translation = (mClockView.getHeight() - (mClockView.getHeight() * clockScale)) / 2f; - if (hasHeader) { + if (smallClock) { translation -= mWidgetPadding; } mClockView.setTranslationY(translation); mClockView.setScaleX(clockScale); mClockView.setScaleY(clockScale); - mClockSeparator.setVisibility(hasHeader ? VISIBLE : GONE); + mClockSeparator.setVisibility(hasHeader && !mPulsing ? VISIBLE : GONE); } @Override @@ -329,6 +330,8 @@ public class KeyguardStatusView extends GridLayout { public void setPulsing(boolean pulsing) { mPulsing = pulsing; + mKeyguardSlice.setVisibility(pulsing ? GONE : VISIBLE); + onSliceContentChanged(mKeyguardSlice.hasHeader()); updateDozeVisibleViews(); } 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 0cc7f5dfbae1..66cb59e3d317 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -72,6 +72,7 @@ import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener; import com.android.systemui.statusbar.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.stack.StackStateAnimator; +import java.util.Collection; import java.util.List; public class NotificationPanelView extends PanelView implements @@ -2621,8 +2622,10 @@ public class NotificationPanelView extends PanelView implements } } - public void setPulsing(boolean pulsing) { - mKeyguardStatusView.setPulsing(pulsing); + public void setPulsing(Collection<HeadsUpManager.HeadsUpEntry> pulsing) { + mKeyguardStatusView.setPulsing(pulsing != null); + mNotificationStackScroller.setPulsing(pulsing, mKeyguardStatusView.getLocationOnScreen()[1] + + mKeyguardStatusView.getClockBottom()); } public void setAmbientIndicationBottomPadding(int ambientIndicationBottomPadding) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 5e08ec3575fc..d32eb2b0a33a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -4615,8 +4615,7 @@ public class StatusBar extends SystemUI implements DemoMode, } private void setPulsing(Collection<HeadsUpManager.HeadsUpEntry> pulsing) { - mStackScroller.setPulsing(pulsing); - mNotificationPanel.setPulsing(pulsing != null); + mNotificationPanel.setPulsing(pulsing); mVisualStabilityManager.setPulsing(pulsing != null); mIgnoreTouchWhilePulsing = false; } 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 443e760d88ae..af3d64be0fd0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -399,6 +399,7 @@ public class NotificationStackScrollLayout extends ViewGroup private final int mSeparatorWidth; private final int mSeparatorThickness; private final Rect mTmpRect = new Rect(); + private int mClockBottom; public NotificationStackScrollLayout(Context context) { this(context, null); @@ -510,7 +511,9 @@ public class NotificationStackScrollLayout extends ViewGroup final int darkTop = (int) (mRegularTopPadding + mSeparatorThickness / 2f); final int darkBottom = darkTop + mSeparatorThickness; - if (mAmbientState.isDark()) { + if (mAmbientState.hasPulsingNotifications()) { + // TODO draw divider between notification and shelf + } else if (mAmbientState.isDark()) { // Only draw divider on AOD if we actually have notifications if (mFirstVisibleBackgroundChild != null) { canvas.drawRect(darkLeft, darkTop, darkRight, darkBottom, mBackgroundPaint); @@ -684,7 +687,11 @@ public class NotificationStackScrollLayout extends ViewGroup } private void updateAlgorithmHeightAndPadding() { - mTopPadding = mAmbientState.isDark() ? mDarkTopPadding : mRegularTopPadding; + if (mPulsing != null) { + mTopPadding = mClockBottom; + } else { + mTopPadding = mAmbientState.isDark() ? mDarkTopPadding : mRegularTopPadding; + } mAmbientState.setLayoutHeight(getLayoutHeight()); updateAlgorithmLayoutMinHeight(); mAmbientState.setTopPadding(mTopPadding); @@ -4322,13 +4329,15 @@ public class NotificationStackScrollLayout extends ViewGroup return mIsExpanded; } - public void setPulsing(Collection<HeadsUpManager.HeadsUpEntry> pulsing) { + public void setPulsing(Collection<HeadsUpManager.HeadsUpEntry> pulsing, int clockBottom) { if (mPulsing == null && pulsing == null) { return; } mPulsing = pulsing; + mClockBottom = clockBottom; mAmbientState.setPulsing(pulsing); updateNotificationAnimationStates(); + updateAlgorithmHeightAndPadding(); updateContentHeight(); notifyHeightChangeListener(mShelf); requestChildrenUpdate(); |