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

Commit a6764a51 authored by Dave Mankoff's avatar Dave Mankoff Committed by Automerger Merge Worker
Browse files

Merge "Use QSPanelController in QSContainerImpl" am: 8c452a24

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12886651

Change-Id: Ib660b974a44173c90c645000e5212092ce181ccd
parents 048b7ee4 8c452a24
Loading
Loading
Loading
Loading
+10 −17
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ import com.android.systemui.qs.customize.QSCustomizer;
import com.android.wm.shell.animation.PhysicsAnimator;

/**
 * Wrapper view with background which contains {@link QSPanel} and {@link BaseStatusBarHeader}
 * Wrapper view with background which contains {@link QSPanel} and {@link QuickStatusBarHeader}
 */
public class QSContainerImpl extends FrameLayout {

@@ -57,7 +57,6 @@ public class QSContainerImpl extends FrameLayout {
            SpringForce.DAMPING_RATIO_LOW_BOUNCY);
    private int mBackgroundBottom = -1;
    private int mHeightOverride = -1;
    private QSPanel mQSPanel;
    private View mQSDetail;
    private QuickStatusBarHeader mHeader;
    private float mQsExpansion;
@@ -81,7 +80,6 @@ public class QSContainerImpl extends FrameLayout {
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mQSPanel = findViewById(R.id.quick_settings_panel);
        mQSPanelContainer = findViewById(R.id.expanded_qs_scroll_view);
        mQSDetail = findViewById(R.id.qs_detail);
        mHeader = findViewById(R.id.header);
@@ -90,20 +88,16 @@ public class QSContainerImpl extends FrameLayout {
        mBackground = findViewById(R.id.quick_settings_background);
        mStatusBarBackground = findViewById(R.id.quick_settings_status_bar_background);
        mBackgroundGradient = findViewById(R.id.quick_settings_gradient_view);
        updateResources();
        mHeader.getHeaderQsPanel().setMediaVisibilityChangedListener((visible) -> {
            if (mHeader.getHeaderQsPanel().isShown()) {
                mAnimateBottomOnNextLayout = true;
            }
        });
        mQSPanel.setMediaVisibilityChangedListener((visible) -> {
            if (mQSPanel.isShown()) {
                mAnimateBottomOnNextLayout = true;
        setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
    }
        });


        setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
    void onMediaVisibilityChanged(boolean qsVisible) {
        mAnimateBottomOnNextLayout = qsVisible;
    }

    private void setBackgroundBottom(int value) {
@@ -124,7 +118,6 @@ public class QSContainerImpl extends FrameLayout {
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        setBackgroundGradientVisibility(newConfig);
        updateResources();
        mSizePoint.set(0, 0); // Will be retrieved on next measure pass.
    }

@@ -197,7 +190,7 @@ public class QSContainerImpl extends FrameLayout {
        mBackground.setVisibility(mQsDisabled ? View.GONE : View.VISIBLE);
    }

    private void updateResources() {
    void updateResources(QSPanelController qsPanelController) {
        LayoutParams layoutParams = (LayoutParams) mQSPanelContainer.getLayoutParams();
        layoutParams.topMargin = mContext.getResources().getDimensionPixelSize(
                com.android.internal.R.dimen.quick_qs_offset_height);
@@ -209,7 +202,7 @@ public class QSContainerImpl extends FrameLayout {
        boolean marginsChanged = padding != mContentPadding;
        mContentPadding = padding;
        if (marginsChanged) {
            updatePaddingsAndMargins();
            updatePaddingsAndMargins(qsPanelController);
        }
    }

@@ -275,7 +268,7 @@ public class QSContainerImpl extends FrameLayout {
        updateExpansion();
    }

    private void updatePaddingsAndMargins() {
    private void updatePaddingsAndMargins(QSPanelController qsPanelController) {
        for (int i = 0; i < getChildCount(); i++) {
            View view = getChildAt(i);
            if (view == mStatusBarBackground || view == mBackgroundGradient
@@ -288,8 +281,8 @@ public class QSContainerImpl extends FrameLayout {
            lp.leftMargin = mSideMargins;
            if (view == mQSPanelContainer) {
                // QS panel lays out some of its content full width
                mQSPanel.setContentMargins(mContentPadding, mContentPadding);
                Pair<Integer, Integer> margins = mQSPanel.getVisualSideMargins();
                qsPanelController.setContentMargins(mContentPadding, mContentPadding);
                Pair<Integer, Integer> margins = qsPanelController.getVisualSideMargins();
                // Apply paddings based on QSPanel
                mQSCustomizer.setContentPaddings(margins.first, margins.second);
            } else if (view == mHeader) {
+27 −2
Original line number Diff line number Diff line
@@ -16,7 +16,10 @@

package com.android.systemui.qs;

import android.content.res.Configuration;

import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.util.ViewController;

import javax.inject.Inject;
@@ -24,13 +27,26 @@ import javax.inject.Inject;
/** */
@QSScope
public class QSContainerImplController extends ViewController<QSContainerImpl> {
    private final QSPanelController mQsPanelController;
    private final QuickStatusBarHeaderController mQuickStatusBarHeaderController;
    private final ConfigurationController mConfigurationController;

    private final ConfigurationController.ConfigurationListener mConfigurationListener =
            new ConfigurationController.ConfigurationListener() {
        @Override
        public void onConfigChanged(Configuration newConfig) {
            mView.updateResources(mQsPanelController);
        }
    };

    @Inject
    QSContainerImplController(QSContainerImpl view,
            QuickStatusBarHeaderController quickStatusBarHeaderController) {
    QSContainerImplController(QSContainerImpl view, QSPanelController qsPanelController,
            QuickStatusBarHeaderController quickStatusBarHeaderController,
            ConfigurationController configurationController) {
        super(view);
        mQsPanelController = qsPanelController;
        mQuickStatusBarHeaderController = quickStatusBarHeaderController;
        mConfigurationController = configurationController;
    }

    @Override
@@ -44,10 +60,19 @@ public class QSContainerImplController extends ViewController<QSContainerImpl> {

    @Override
    protected void onViewAttached() {
        mView.updateResources(mQsPanelController);
        mQsPanelController.setMediaVisibilityChangedListener((visible) -> {
            if (mQsPanelController.isShown()) {
                mView.onMediaVisibilityChanged(true);
            }
        });

        mConfigurationController.addCallback(mConfigurationListener);
    }

    @Override
    protected void onViewDetached() {
        mConfigurationController.removeCallback(mConfigurationListener);
    }

    public QSContainerImpl getView() {
+22 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;

import android.annotation.NonNull;
import android.content.res.Configuration;
import android.util.Pair;
import android.view.View;
import android.view.ViewGroup;

@@ -35,6 +36,8 @@ import com.android.systemui.settings.BrightnessController;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.tuner.TunerService;

import java.util.function.Consumer;

import javax.inject.Inject;

/**
@@ -222,5 +225,24 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    public void setPageListener(PagedTileLayout.PageListener listener) {
        mView.setPageListener(listener);
    }

    /** */
    public void setMediaVisibilityChangedListener(Consumer<Boolean> visibilityChangedListener) {
        mView.setMediaVisibilityChangedListener(visibilityChangedListener);
    }

    public boolean isShown() {
        return mView.isShown();
    }

    /** */
    public void setContentMargins(int startMargin, int endMargin) {
        mView.setContentMargins(startMargin, endMargin);
    }

    /** */
    public Pair<Integer, Integer> getVisualSideMargins() {
        return mView.getVisualSideMargins();
    }
}