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

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

Merge changes from topic "b168904199-qs-injection"

* changes:
  2/N Remove last injection from QSCustomizer
  1/N Add QSCustomizerController
parents 94b76b22 bad683f1
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ public class QSDetail extends LinearLayout {
    protected TextView mDetailDoneButton;
    private QSDetailClipper mClipper;
    private DetailAdapter mDetailAdapter;
    private QSPanel mQsPanel;
    private QSPanelController mQsPanelController;

    protected View mQsDetailHeader;
    protected TextView mQsDetailHeaderTitle;
@@ -114,19 +114,20 @@ public class QSDetail extends LinearLayout {
            public void onClick(View v) {
                announceForAccessibility(
                        mContext.getString(R.string.accessibility_desc_quick_settings));
                mQsPanel.closeDetail();
                mQsPanelController.closeDetail();
            }
        };
        mDetailDoneButton.setOnClickListener(doneListener);
    }

    /** */
    public void setQsPanel(QSPanel panel, QuickStatusBarHeader header, QSFooter footer) {
        mQsPanel = panel;
    public void setQsPanel(QSPanelController panelController, QuickStatusBarHeader header,
            QSFooter footer) {
        mQsPanelController = panelController;
        mHeader = header;
        mFooter = footer;
        mHeader.setCallback(mQsPanelCallback);
        mQsPanel.setCallback(mQsPanelCallback);
        mQsPanelController.setCallback(mQsPanelCallback);
    }

    public void setHost(QSTileHost host) {
@@ -221,7 +222,7 @@ public class QSDetail extends LinearLayout {
            listener = mTeardownDetailWhenDone;
            mHeader.setVisibility(View.VISIBLE);
            mFooter.setVisibility(View.VISIBLE);
            mQsPanel.setGridContentVisibility(true);
            mQsPanelController.setGridContentVisibility(true);
            mQsPanelCallback.onScanStateChanged(false);
        }
        sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
@@ -362,7 +363,7 @@ public class QSDetail extends LinearLayout {
        public void onAnimationEnd(Animator animation) {
            // Only hide content if still in detail state.
            if (mDetailAdapter != null) {
                mQsPanel.setGridContentVisibility(false);
                mQsPanelController.setGridContentVisibility(false);
                mHeader.setVisibility(View.INVISIBLE);
                mFooter.setVisibility(View.INVISIBLE);
            }
+16 −19
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ import com.android.systemui.R;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSFragmentComponent;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.StatusBarState;
@@ -69,7 +69,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    private QSAnimator mQSAnimator;
    private HeightListener mPanelView;
    protected QuickStatusBarHeader mHeader;
    private QSCustomizer mQSCustomizer;
    protected NonInterceptingScrollView mQSPanelScrollView;
    private QSDetail mQSDetail;
    private boolean mListening;
@@ -97,6 +96,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    private float mLastHeaderTranslation;
    private QSPanelController mQSPanelController;
    private QuickQSPanelController mQuickQSPanelController;
    private QSCustomizerController mQSCustomizerController;

    @Inject
    public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
@@ -148,16 +148,17 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        mQSContainerImplController.init();
        mContainer = mQSContainerImplController.getView();

        mQSDetail.setQsPanel(mQSPanelController.getView(), mHeader, mFooter);
        mQSDetail.setQsPanel(mQSPanelController, mHeader, mFooter);
        mQSAnimator = qsFragmentComponent.getQSAnimator();

        mQSCustomizer = view.findViewById(R.id.qs_customize);
        mQSCustomizer.setQs(this);
        mQSCustomizerController = qsFragmentComponent.getQSCustomizerController();
        mQSCustomizerController.init();
        mQSCustomizerController.setQs(this);
        if (savedInstanceState != null) {
            setExpanded(savedInstanceState.getBoolean(EXTRA_EXPANDED));
            setListening(savedInstanceState.getBoolean(EXTRA_LISTENING));
            setEditLocation(view);
            mQSCustomizer.restoreInstanceState(savedInstanceState);
            mQSCustomizerController.restoreInstanceState(savedInstanceState);
            if (mQsExpanded) {
                mQSPanelController.getTileLayout().restoreInstanceState(savedInstanceState);
            }
@@ -181,7 +182,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        if (mListening) {
            setListening(false);
        }
        mQSCustomizer.setQs(null);
        mQSCustomizerController.setQs(null);
    }

    @Override
@@ -189,7 +190,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        super.onSaveInstanceState(outState);
        outState.putBoolean(EXTRA_EXPANDED, mQsExpanded);
        outState.putBoolean(EXTRA_LISTENING, mListening);
        mQSCustomizer.saveInstanceState(outState);
        mQSCustomizerController.saveInstanceState(outState);
        if (mQsExpanded) {
            mQSPanelController.getTileLayout().saveInstanceState(outState);
        }
@@ -236,23 +237,22 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        int[] loc = edit.getLocationOnScreen();
        int x = loc[0] + edit.getWidth() / 2;
        int y = loc[1] + edit.getHeight() / 2;
        mQSCustomizer.setEditLocation(x, y);
        mQSCustomizerController.setEditLocation(x, y);
    }

    @Override
    public void setContainer(ViewGroup container) {
        if (container instanceof NotificationsQuickSettingsContainer) {
            mQSCustomizer.setContainer((NotificationsQuickSettingsContainer) container);
            mQSCustomizerController.setContainer((NotificationsQuickSettingsContainer) container);
        }
    }

    @Override
    public boolean isCustomizing() {
        return mQSCustomizer.isCustomizing();
        return mQSCustomizerController.isCustomizing();
    }

    public void setHost(QSTileHost qsh) {
        mQSPanelController.setCustomizer(mQSCustomizer);
        mHeader.setQSPanel(mQSPanelController.getView());
        mFooter.setQSPanel(mQSPanelController.getView());
        mQSDetail.setHost(qsh);
@@ -325,10 +325,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        return mQSPanelController.getView();
    }

    public QSCustomizer getCustomizer() {
        return mQSCustomizer;
    }

    @Override
    public boolean isShowingDetail() {
        return mQSPanelController.isShowingCustomize() || mQSDetail.isShowingDetail();
@@ -553,9 +549,10 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    public void notifyCustomizeChanged() {
        // The customize state changed, so our height changed.
        mContainer.updateExpansion();
        mQSPanelScrollView.setVisibility(!mQSCustomizer.isCustomizing() ? View.VISIBLE
        mQSPanelScrollView.setVisibility(!mQSCustomizerController.isCustomizing() ? View.VISIBLE
                : View.INVISIBLE);
        mFooter.setVisibility(!mQSCustomizer.isCustomizing() ? View.VISIBLE : View.INVISIBLE);
        mFooter.setVisibility(
                !mQSCustomizerController.isCustomizing() ? View.VISIBLE : View.INVISIBLE);
        // Let the panel know the position changed and it needs to update where notifications
        // and whatnot are.
        mPanelView.onQsHeightChanged();
@@ -567,7 +564,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
     */
    @Override
    public int getDesiredHeight() {
        if (mQSCustomizer.isCustomizing()) {
        if (mQSCustomizerController.isCustomizing()) {
            return getView().getHeight();
        }
        if (mQSDetail.isClosingDetail()) {
+1 −29
Original line number Diff line number Diff line
@@ -608,12 +608,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
        }
    }

    public void onCollapse() {
        if (mCustomizePanel != null && mCustomizePanel.isShown()) {
            mCustomizePanel.hide();
        }
    }

    public void setExpanded(boolean expanded) {
        if (mExpanded == expanded) return;
        mQSLogger.logPanelExpanded(expanded, getDumpableTag());
@@ -742,29 +736,7 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
        mTileLayout.removeTile(tileRecord);
    }

    public void showEdit(final View v) {
        v.post(new Runnable() {
            @Override
            public void run() {
                if (mCustomizePanel != null) {
                    if (!mCustomizePanel.isCustomizing()) {
                        int[] loc = v.getLocationOnScreen();
                        int x = loc[0] + v.getWidth() / 2;
                        int y = loc[1] + v.getHeight() / 2;
                        mCustomizePanel.show(x, y);
                    }
                }

            }
        });
    }

    public void closeDetail() {
        if (mCustomizePanel != null && mCustomizePanel.isShown()) {
            // Treat this as a detail panel for now, to make things easy.
            mCustomizePanel.hide();
            return;
        }
    void closeDetail() {
        showDetail(false, mDetailRecord);
    }

+31 −10
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ import com.android.systemui.R;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.settings.BrightnessController;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
@@ -44,6 +44,7 @@ import javax.inject.Inject;
public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    private final QSSecurityFooter mQsSecurityFooter;
    private final TunerService mTunerService;
    private final QSCustomizerController mQsCustomizerController;
    private final BrightnessController mBrightnessController;

    private final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener =
@@ -61,15 +62,23 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {

    @Inject
    QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
            QSTileHost qstileHost, DumpManager dumpManager,
            MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
            DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            BrightnessController.Factory brightnessControllerFactory) {
        super(view, qstileHost, metricsLogger, uiEventLogger, dumpManager);
        super(view, qstileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager);
        mQsSecurityFooter = qsSecurityFooter;
        mTunerService = tunerService;
        mQsCustomizerController = qsCustomizerController;
        mQsSecurityFooter.setHostEnvironment(qstileHost);
        mBrightnessController = brightnessControllerFactory.create(
                mView.findViewById(R.id.brightness_slider));

        mView.setCustomizer(mQsCustomizerController.getView());
    }

    @Override
    public void onInit() {
        mQsCustomizerController.init();
    }

    @Override
@@ -114,11 +123,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        return mView.getTileLayout();
    }

    /** */
    public void setCustomizer(QSCustomizer customizer) {
        mView.setCustomizer(customizer);
    }

    /** */
    public boolean isShowingCustomize() {
        return mView.isShowingCustomize();
@@ -196,6 +200,23 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {

    /** Start customizing the Quick Settings. */
    public void showEdit(View view) {
        mView.showEdit(view);
        view.post(() -> {
            if (!mQsCustomizerController.isCustomizing()) {
                int[] loc = view.getLocationOnScreen();
                int x = loc[0] + view.getWidth() / 2;
                int y = loc[1] + view.getHeight() / 2;
                mQsCustomizerController.show(x, y, false);
            }
        });
    }

    /** */
    public void setCallback(QSDetail.Callback qsPanelCallback) {
        mView.setCallback(qsPanelCallback);
    }

    /** */
    public void setGridContentVisibility(boolean visible) {
        mView.setGridContentVisibility(visible);
    }
}
+9 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.util.ViewController;

@@ -46,6 +47,7 @@ import java.util.stream.Collectors;
public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewController<T>
        implements Dumpable{
    protected final QSTileHost mHost;
    private final QSCustomizerController mQsCustomizerController;
    private final MediaHost mMediaHost;
    private final MetricsLogger mMetricsLogger;
    private final UiEventLogger mUiEventLogger;
@@ -69,9 +71,11 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
    private String mCachedSpecs = "";

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

    /** */
    public void closeDetail() {
        if (mQsCustomizerController.isShown()) {
            mQsCustomizerController.hide();
            return;
        }
        mView.closeDetail();
    }

Loading