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

Commit bfe708d9 authored by Michał Brzeziński's avatar Michał Brzeziński Committed by Android (Google) Code Review
Browse files

Merge "Fixing notifications in split shade when customizing QS" into sc-v2-dev

parents f335f847 acffc890
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -183,7 +183,6 @@ public class NotificationShelf extends ActivatableNotificationView implements
            }

            viewState.hidden = !mAmbientState.isShadeExpanded()
                    || mAmbientState.isQsCustomizerShowing()
                    || algorithmState.firstViewInShelf == null;

            final int indexOfFirstViewInShelf = algorithmState.visibleChildren.indexOf(
+0 −9
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ public class AmbientState {
    private boolean mPanelFullWidth;
    private boolean mPulsing;
    private boolean mUnlockHintRunning;
    private boolean mQsCustomizerShowing;
    private int mIntrinsicPadding;
    private float mHideAmount;
    private boolean mAppearing;
@@ -503,14 +502,6 @@ public class AmbientState {
        return mUnlockHintRunning;
    }

    public boolean isQsCustomizerShowing() {
        return mQsCustomizerShowing;
    }

    public void setQsCustomizerShowing(boolean qsCustomizerShowing) {
        mQsCustomizerShowing = qsCustomizerShowing;
    }

    public void setIntrinsicPadding(int intrinsicPadding) {
        mIntrinsicPadding = intrinsicPadding;
    }
+1 −8
Original line number Diff line number Diff line
@@ -4868,12 +4868,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        mAmbientState.setUnlockHintRunning(running);
    }

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    public void setQsCustomizerShowing(boolean isShowing) {
        mAmbientState.setQsCustomizerShowing(isShowing);
        requestChildrenUpdate();
    }

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    public void setHeadsUpGoingAwayAnimationsAllowed(boolean headsUpGoingAwayAnimationsAllowed) {
        mHeadsUpGoingAwayAnimationsAllowed = headsUpGoingAwayAnimationsAllowed;
@@ -4881,13 +4875,12 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        pw.println(String.format("[%s: pulsing=%s qsCustomizerShowing=%s visibility=%s"
        pw.println(String.format("[%s: pulsing=%s visibility=%s"
                        + " alpha=%f scrollY:%d maxTopPadding=%d showShelfOnly=%s"
                        + " qsExpandFraction=%f"
                        + " hideAmount=%f]",
                this.getClass().getSimpleName(),
                mPulsing ? "T" : "f",
                mAmbientState.isQsCustomizerShowing() ? "T" : "f",
                getVisibility() == View.VISIBLE ? "visible"
                        : getVisibility() == View.GONE ? "gone"
                                : "invisible",
+1 −0
Original line number Diff line number Diff line
@@ -1066,6 +1066,7 @@ public class NotificationPanelViewController extends PanelViewController {
        constraintSet.setMargin(R.id.notification_stack_scroller, TOP, topMargin);
        constraintSet.setMargin(R.id.qs_frame, TOP, topMargin);
        constraintSet.applyTo(mNotificationContainerParent);
        mNotificationContainerParent.setSplitShadeEnabled(mShouldUseSplitNotificationShade);

        updateKeyguardStatusViewAlignment(false /* animate */);

+15 −8
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.View;
import android.view.WindowInsets;
import android.widget.FrameLayout;

import androidx.constraintlayout.widget.ConstraintLayout;

@@ -31,7 +30,6 @@ import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.fragments.FragmentHostManager.FragmentListener;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.statusbar.notification.AboveShelfObserver;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;

import java.util.ArrayList;
import java.util.Comparator;
@@ -42,8 +40,8 @@ import java.util.Comparator;
public class NotificationsQuickSettingsContainer extends ConstraintLayout
        implements FragmentListener, AboveShelfObserver.HasViewAboveShelfChangedListener {

    private FrameLayout mQsFrame;
    private NotificationStackScrollLayout mStackScroller;
    private View mQsFrame;
    private View mStackScroller;
    private View mKeyguardStatusBar;
    private boolean mQsExpanded;
    private boolean mCustomizerAnimating;
@@ -52,10 +50,10 @@ public class NotificationsQuickSettingsContainer extends ConstraintLayout

    private int mBottomPadding;
    private int mStackScrollerMargin;
    private boolean mHasViewsAboveShelf;
    private ArrayList<View> mDrawingOrderedChildren = new ArrayList<>();
    private ArrayList<View> mLayoutDrawingOrder = new ArrayList<>();
    private final Comparator<View> mIndexComparator = Comparator.comparingInt(this::indexOfChild);
    private boolean mSplitShadeEnabled;

    public NotificationsQuickSettingsContainer(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -144,7 +142,6 @@ public class NotificationsQuickSettingsContainer extends ConstraintLayout
    public void setCustomizerShowing(boolean isShowing) {
        mCustomizing = isShowing;
        updateBottomMargin();
        mStackScroller.setQsCustomizerShowing(isShowing);
    }

    public void setDetailShowing(boolean isShowing) {
@@ -152,8 +149,19 @@ public class NotificationsQuickSettingsContainer extends ConstraintLayout
        updateBottomMargin();
    }

    /**
     * Sets if split shade is enabled and adjusts margins/paddings depending on QS details and
     * customizer state
     */
    public void setSplitShadeEnabled(boolean splitShadeEnabled) {
        mSplitShadeEnabled = splitShadeEnabled;
        // in case device was rotated while showing QS details/customizer
        updateBottomMargin();
    }

    private void updateBottomMargin() {
        if (mCustomizing || mDetailShowing) {
        // in split shade, QS state changes should not influence notifications panel
        if (!mSplitShadeEnabled && (mCustomizing || mDetailShowing)) {
            // Clear out bottom paddings/margins so the qs customization can be full height.
            setPadding(0, 0, 0, 0);
            setBottomMargin(mStackScroller, 0);
@@ -171,7 +179,6 @@ public class NotificationsQuickSettingsContainer extends ConstraintLayout

    @Override
    public void onHasViewsAboveShelfChanged(boolean hasViewsAboveShelf) {
        mHasViewsAboveShelf = hasViewsAboveShelf;
        invalidate();
    }
}
Loading