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

Commit 8c452a24 authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Use QSPanelController in QSContainerImpl"

parents 499f5c8b 7dbf4ed3
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();
    }
}