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

Commit 42bd3c08 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Stop injecting QSPanel everywhere.

QSPanel is now only injected intot the controllers that should be
interfacing with it directly. Everywhere else goes through its
controllers.

Bug: 168904199
Test: atest SystemUITests && manual
Change-Id: Ie786ab3f2d731704fc9f4a8e328deb8973660c60
parent 66daa1f5
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -261,7 +261,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    }

    public void setHost(QSTileHost qsh) {
        mHeader.setQSPanel(mQSPanelController.getView());
        mQSDetail.setHost(qsh);
    }

+14 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    private final QSSecurityFooter mQsSecurityFooter;
    private final TunerService mTunerService;
    private final QSCustomizerController mQsCustomizerController;
    private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
    private final BrightnessController mBrightnessController;
    private final BrightnessSlider.Factory mBrightnessSliderFactory;
    private final BrightnessSlider mBrightnessSlider;
@@ -77,11 +78,11 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
            DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            BrightnessController.Factory brightnessControllerFactory,
            BrightnessSlider.Factory brightnessSliderFactory) {
        super(view, qstileHost, qsCustomizerController, qsTileRevealControllerFactory,
                metricsLogger, uiEventLogger, dumpManager);
        super(view, qstileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager);
        mQsSecurityFooter = qsSecurityFooter;
        mTunerService = tunerService;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mQsSecurityFooter.setHostEnvironment(qstileHost);
        mBrightnessSliderFactory = brightnessSliderFactory;

@@ -113,6 +114,12 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        }
    }

    @Override
    protected QSTileRevealController createTileRevealController() {
        return mQsTileRevealControllerFactory.create(
                this, (PagedTileLayout) mView.createRegularTileLayout());
    }

    @Override
    protected void onViewDetached() {
        mTunerService.removeTunable(mView);
@@ -280,5 +287,10 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    public void setFooterPageIndicator(PageIndicator pageIndicator) {
        mView.setFooterPageIndicator(pageIndicator);
    }

    /** */
    public boolean isExpanded() {
        return mView.isExpanded();
    }
}
+9 −8
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        implements Dumpable{
    protected final QSTileHost mHost;
    private final QSCustomizerController mQsCustomizerController;
    private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
    private final MediaHost mMediaHost;
    private final MetricsLogger mMetricsLogger;
    private final UiEventLogger mUiEventLogger;
@@ -75,12 +74,10 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    protected QSPanelControllerBase(T view, QSTileHost host,
            QSCustomizerController qsCustomizerController,
            QSTileRevealController.Factory qsTileRevealControllerFactory,
            MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
        super(view);
        mHost = host;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mMediaHost = mView.getMediaHost();
        mMetricsLogger = metricsLogger;
        mUiEventLogger = uiEventLogger;
@@ -89,10 +86,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    @Override
    protected void onViewAttached() {
        QSPanel.QSTileLayout regularTileLayout = mView.createRegularTileLayout();
        if (regularTileLayout instanceof PagedTileLayout) {
            mQsTileRevealController = mQsTileRevealControllerFactory.create(
                    (PagedTileLayout) regularTileLayout);
        mQsTileRevealController = createTileRevealController();
        if (mQsTileRevealController != null) {
            mQsTileRevealController.setExpansion(mRevealExpansion);
        }

@@ -119,6 +114,10 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        mDumpManager.unregisterDumpable(mView.getDumpableTag());
    }

    protected QSTileRevealController createTileRevealController() {
        return null;
    }

    /** */
    public void setTiles() {
        setTiles(mHost.getTiles(), false);
@@ -126,9 +125,11 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    /** */
    public void setTiles(Collection<QSTile> tiles, boolean collapsedView) {
        if (!collapsedView) {
        // TODO(b/168904199): move this logic into QSPanelController.
        if (!collapsedView && mQsTileRevealController != null) {
            mQsTileRevealController.updateRevealedTiles(tiles);
        }

        for (QSPanelControllerBase.TileRecord record : mRecords) {
            mView.removeTile(record);
            record.tile.removeCallback(record.callback);
+13 −8
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.systemui.qs;

import static com.android.systemui.qs.dagger.QSFragmentModule.QS_SECURITY_FOOTER_VIEW;

import android.app.AlertDialog;
import android.app.admin.DeviceAdminInfo;
import android.app.admin.DevicePolicyEventLogger;
@@ -44,9 +46,10 @@ import android.widget.TextView;
import androidx.annotation.VisibleForTesting;

import com.android.internal.util.FrameworkStatsLog;
import com.android.systemui.Dependency;
import com.android.systemui.FontSizeUtils;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.settings.UserTracker;
@@ -54,6 +57,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.SecurityController;

import javax.inject.Inject;
import javax.inject.Named;

@QSScope
class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListener {
@@ -81,18 +85,19 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
    private int mFooterIconId;

    @Inject
    public QSSecurityFooter(QSPanel qsPanel, Context context, UserTracker userTracker) {
        mRootView = LayoutInflater.from(context)
                .inflate(R.layout.quick_settings_footer, qsPanel, false);
    QSSecurityFooter(@Named(QS_SECURITY_FOOTER_VIEW) View rootView, Context context,
            UserTracker userTracker, @Main Handler mainHandler, ActivityStarter activityStarter,
            SecurityController securityController, @Background Looper bgLooper) {
        mRootView = rootView;
        mRootView.setOnClickListener(this);
        mFooterText = mRootView.findViewById(R.id.footer_text);
        mFooterIcon = mRootView.findViewById(R.id.footer_icon);
        mFooterIconId = R.drawable.ic_info_outline;
        mContext = context;
        mMainHandler = new Handler(Looper.myLooper());
        mActivityStarter = Dependency.get(ActivityStarter.class);
        mSecurityController = Dependency.get(SecurityController.class);
        mHandler = new H(Dependency.get(Dependency.BG_LOOPER));
        mMainHandler = mainHandler;
        mActivityStarter = activityStarter;
        mSecurityController = securityController;
        mHandler = new H(bgLooper);
        mUserTracker = userTracker;
    }

+9 −10
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ public class QSTileRevealController {
    private static final long QS_REVEAL_TILES_DELAY = 500L;

    private final Context mContext;
    private final QSPanel mQSPanel;
    private final QSPanelController mQSPanelController;
    private final PagedTileLayout mPagedTileLayout;
    private final QSCustomizerController mQsCustomizerController;
    private final ArraySet<String> mTilesToReveal = new ArraySet<>();
@@ -32,17 +32,17 @@ public class QSTileRevealController {
        @Override
        public void run() {
            mPagedTileLayout.startTileReveal(mTilesToReveal, () -> {
                if (mQSPanel.isExpanded()) {
                if (mQSPanelController.isExpanded()) {
                    addTileSpecsToRevealed(mTilesToReveal);
                    mTilesToReveal.clear();
                }
            });
        }
    };
    QSTileRevealController(Context context, QSPanel qsPanel, PagedTileLayout pagedTileLayout,
            QSCustomizerController qsCustomizerController) {
    QSTileRevealController(Context context, QSPanelController qsPanelController,
            PagedTileLayout pagedTileLayout, QSCustomizerController qsCustomizerController) {
        mContext = context;
        mQSPanel = qsPanel;
        mQSPanelController = qsPanelController;
        mPagedTileLayout = pagedTileLayout;
        mQsCustomizerController = qsCustomizerController;
    }
@@ -85,18 +85,17 @@ public class QSTileRevealController {
    @QSScope
    static class Factory {
        private final Context mContext;
        private final QSPanel mQsPanel;
        private final QSCustomizerController mQsCustomizerController;

        @Inject
        Factory(Context context, QSPanel qsPanel, QSCustomizerController qsCustomizerController) {
        Factory(Context context, QSCustomizerController qsCustomizerController) {
            mContext = context;
            mQsPanel = qsPanel;
            mQsCustomizerController = qsCustomizerController;
        }

        QSTileRevealController create(PagedTileLayout pagedTileLayout) {
            return new QSTileRevealController(mContext, mQsPanel, pagedTileLayout,
        QSTileRevealController create(QSPanelController qsPanelController,
                PagedTileLayout pagedTileLayout) {
            return new QSTileRevealController(mContext, qsPanelController, pagedTileLayout,
                    mQsCustomizerController);
        }
    }
Loading