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

Commit acffc890 authored by Michal Brzezinski's avatar Michal Brzezinski
Browse files

Fixing notifications in split shade when customizing QS

- disabling changing container margins/paddings when customizer is shown in split shade
- removing notifying stack scroller about customizer changes in split shade - this should not be needed anymore as now expanded QS and QS customizer always take full height of the screen

Bug: 193223224
Test: manual
Change-Id: Ice02529d1f6b78c8ff885be3270734ac23ee80e8
parent 45613c7b
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
@@ -70,7 +70,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;
@@ -483,14 +482,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
@@ -4853,12 +4853,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;
@@ -4866,13 +4860,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
@@ -1049,6 +1049,7 @@ public class NotificationPanelViewController extends PanelViewController {
        constraintSet.getConstraint(R.id.notification_stack_scroller).layout.mWidth = panelWidth;
        constraintSet.getConstraint(R.id.qs_frame).layout.mWidth = qsWidth;
        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