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

Commit 11437876 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

2/N Remove BroadcastDispatcher from QSPanel

This CL does the bare minimum to remove the BroadcastDispatcher from
QSPanel. More to follow.

Bug: 168904199
Test: manual
Change-Id: Iaf2304d1315269960fc9f01726d6abd8f4a4cf0a
parent c078bc2a
Loading
Loading
Loading
Loading
+4 −20
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ import com.android.internal.widget.RemeasuringLinearLayout;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
@@ -86,7 +85,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne

    protected final Context mContext;
    protected final ArrayList<TileRecord> mRecords = new ArrayList<>();
    private final BroadcastDispatcher mBroadcastDispatcher;
    protected final MediaHost mMediaHost;

    /**
@@ -157,7 +155,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
            @Named(VIEW_CONTEXT) Context context,
            AttributeSet attrs,
            DumpManager dumpManager,
            BroadcastDispatcher broadcastDispatcher,
            QSLogger qsLogger,
            @Named(QS_PANEL) MediaHost mediaHost,
            UiEventLogger uiEventLogger,
@@ -175,7 +172,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mContext = context;
        mQSLogger = qsLogger;
        mDumpManager = dumpManager;
        mBroadcastDispatcher = broadcastDispatcher;
        mUiEventLogger = uiEventLogger;
        mUserTracker = userTracker;

@@ -233,8 +229,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mBrightnessView = LayoutInflater.from(mContext).inflate(
            R.layout.quick_settings_brightness_dialog, this, false);
        addView(mBrightnessView);
        mBrightnessController = new BrightnessController(getContext(),
                findViewById(R.id.brightness_slider), mBroadcastDispatcher);
    }

    protected QSTileLayout createRegularTileLayout() {
@@ -746,20 +740,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        if (mSecurityFooter != null) {
            mSecurityFooter.setListening(listening);
        }
        // Set the listening as soon as the QS fragment starts listening regardless of the expansion,
        // so it will update the current brightness before the slider is visible.
        setBrightnessListening(listening);
    }

    public void setBrightnessListening(boolean listening) {
        if (mBrightnessController == null) {
            return;
        }
        if (listening) {
            mBrightnessController.registerCallbacks();
        } else {
            mBrightnessController.unregisterCallbacks();
        }
    }

    public void refreshAllTiles() {
@@ -1141,6 +1121,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mMediaVisibilityChangedListener = visibilityChangedListener;
    }

    public void setBrightnessController(BrightnessController brightnessController) {
        mBrightnessController = brightnessController;
    }

    private class H extends Handler {
        private static final int SHOW_DETAIL = 1;
        private static final int SET_TILE_VISIBILITY = 2;
+16 −6
Original line number Diff line number Diff line
@@ -19,10 +19,11 @@ package com.android.systemui.qs;
import android.annotation.NonNull;
import android.view.ViewGroup;

import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.R;
import com.android.systemui.media.MediaHost;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.settings.BrightnessController;
import com.android.systemui.util.ViewController;

import javax.inject.Inject;
@@ -32,17 +33,19 @@ import javax.inject.Inject;
 */
@QSScope
public class QSPanelController extends ViewController<QSPanel> {
    private final BroadcastDispatcher mBroadcastDispatcher;
    private final BrightnessController mBrightnessController;

    @Inject
    QSPanelController(QSPanel view, BroadcastDispatcher broadcastDispatcher) {
    QSPanelController(QSPanel view, BrightnessController.Factory brightnessControllerFactory) {
        super(view);
        mBroadcastDispatcher = broadcastDispatcher;

        mBrightnessController = brightnessControllerFactory.create(
                mView.findViewById(R.id.brightness_slider));
    }

    @Override
    protected void onViewAttached() {

        mView.setBrightnessController(mBrightnessController);
    }

    @Override
@@ -55,7 +58,6 @@ public class QSPanelController extends ViewController<QSPanel> {
        return mView;
    }


    /**
     * Set the header container of quick settings.
     */
@@ -90,6 +92,14 @@ public class QSPanelController extends ViewController<QSPanel> {
    /** */
    public void setListening(boolean listening, boolean expanded) {
        mView.setListening(listening, expanded);

        // Set the listening as soon as the QS fragment starts listening regardless of the
        //expansion, so it will update the current brightness before the slider is visible.
        if (listening) {
            mBrightnessController.registerCallbacks();
        } else {
            mBrightnessController.unregisterCallbacks();
        }
    }

    /** */
+1 −3
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.widget.LinearLayout;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
@@ -69,13 +68,12 @@ public class QuickQSPanel extends QSPanel {
            @Named(VIEW_CONTEXT) Context context,
            AttributeSet attrs,
            DumpManager dumpManager,
            BroadcastDispatcher broadcastDispatcher,
            QSLogger qsLogger,
            @Named(QUICK_QS_PANEL) MediaHost mediaHost,
            UiEventLogger uiEventLogger,
            UserTracker userTracker
    ) {
        super(context, attrs, dumpManager, broadcastDispatcher, qsLogger, mediaHost, uiEventLogger,
        super(context, attrs, dumpManager, qsLogger, mediaHost, uiEventLogger,
                userTracker);
        sDefaultMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns);
        applyBottomMargin((View) mRegularTileLayout);
+18 −0
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher;

import java.util.ArrayList;

import javax.inject.Inject;

public class BrightnessController implements ToggleSlider.Listener {
    private static final String TAG = "StatusBar.BrightnessController";
    private static final int SLIDER_ANIMATION_DURATION = 3000;
@@ -475,4 +477,20 @@ public class BrightnessController implements ToggleSlider.Listener {
        mSliderAnimator.start();
    }

    /** Factory for creating a {@link BrightnessController}. */
    public static class Factory {
        private final Context mContext;
        private final BroadcastDispatcher mBroadcastDispatcher;

        @Inject
        public Factory(Context context, BroadcastDispatcher broadcastDispatcher) {
            mContext = context;
            mBroadcastDispatcher = broadcastDispatcher;
        }

        /** Create a {@link BrightnessController} */
        public BrightnessController create(ToggleSlider toggleSlider) {
            return new BrightnessController(mContext, toggleSlider, mBroadcastDispatcher);
        }
    }
}