Merge "Fixing notifications in split shade when customizing QS" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bfe708d973
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,6 +356,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
||||
mNotificationContainerParent.addView(newViewWithId(R.id.qs_frame));
|
||||
mNotificationContainerParent.addView(newViewWithId(R.id.notification_stack_scroller));
|
||||
mNotificationContainerParent.addView(mKeyguardStatusView);
|
||||
mNotificationContainerParent.onFinishInflate();
|
||||
when(mView.findViewById(R.id.notification_container_parent))
|
||||
.thenReturn(mNotificationContainerParent);
|
||||
when(mFragmentService.getFragmentHostManager(mView)).thenReturn(mFragmentHostManager);
|
||||
|
||||
Reference in New Issue
Block a user