Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bf7b64e authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Hide keyguard slice when pulsing

Test: visual
Bug: 64155983
Change-Id: I0a5fbeb3c5418211562739b9c6e6ebd3e02ae1e3
parent d285cf0d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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();
    }

+5 −2
Original line number Diff line number Diff line
@@ -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) {
+1 −2
Original line number Diff line number Diff line
@@ -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;
                }
+12 −3
Original line number Diff line number Diff line
@@ -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() {
        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();