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

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

Merge "8/N Pull some usage of the MediaHost out of QSPanel"

parents 2af48c7f 8d7ab5cb
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -62,6 +62,10 @@ class MediaHost constructor(
        visibleChangedListeners.add(listener)
    }

    fun removeVisibilityChangeListener(listener: (Boolean) -> Unit) {
        visibleChangedListeners.remove(listener)
    }

    /**
     * Initialize this MediaObject and create a host view.
     * All state should already be set on this host before calling this method in order to avoid
+2 −16
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.RemeasuringLinearLayout;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
@@ -69,7 +68,7 @@ public class QSPanel extends LinearLayout implements Tunable {
    private static final String TAG = "QSPanel";

    protected final Context mContext;
    protected final MediaHost mMediaHost;
    private final MediaHost mMediaHost;

    /**
     * The index where the content starts that needs to be moved between parents
@@ -144,10 +143,6 @@ public class QSPanel extends LinearLayout implements Tunable {
        mMediaTotalBottomMargin = getResources().getDimensionPixelSize(
                R.dimen.quick_settings_bottom_margin_media);
        mMediaHost = mediaHost;
        mMediaHost.addVisibilityChangeListener((visible) -> {
            onMediaVisibilityChanged(visible);
            return null;
        });
        mContext = context;
        mQSLogger = qsLogger;
        mUiEventLogger = uiEventLogger;
@@ -179,8 +174,6 @@ public class QSPanel extends LinearLayout implements Tunable {

            lp = new LayoutParams(LayoutParams.MATCH_PARENT, 0, 1);
            addView(mHorizontalLinearLayout, lp);

            initMediaHostState();
        }
        mQSLogger.logAllTilesChangeListening(mListening, getDumpableTag(), "");
    }
@@ -220,17 +213,10 @@ public class QSPanel extends LinearLayout implements Tunable {
        return createRegularTileLayout();
    }

    protected void initMediaHostState() {
        mMediaHost.setExpansion(1.0f);
        mMediaHost.setShowsOnlyActiveMedia(false);
        updateMediaDisappearParameters();
        mMediaHost.init(MediaHierarchyManager.LOCATION_QS);
    }

    /**
     * Update the way the media disappears based on if we're using the horizontal layout
     */
    private void updateMediaDisappearParameters() {
    void updateMediaDisappearParameters() {
        if (!mUsingMediaPlayer) {
            return;
        }
+7 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.view.ViewGroup;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
@@ -99,6 +100,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    @Override
    public void onInit() {
        super.onInit();
        mMediaHost.setExpansion(1);
        mMediaHost.setShowsOnlyActiveMedia(false);
        mMediaHost.init(MediaHierarchyManager.LOCATION_QS);
        mQsCustomizerController.init();
        mBrightnessSlider.init();
    }
@@ -106,6 +110,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    @Override
    protected void onViewAttached() {
        super.onViewAttached();

        mView.updateMediaDisappearParameters();

        mTunerService.addTunable(mView, QS_SHOW_BRIGHTNESS);
        mView.updateResources();
        if (mView.isListening()) {
+15 −5
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.stream.Collectors;

import kotlin.Unit;
import kotlin.jvm.functions.Function1;

/**
 * Controller for QSPanel views.
 *
@@ -48,7 +51,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        implements Dumpable{
    protected final QSTileHost mHost;
    private final QSCustomizerController mQsCustomizerController;
    private final MediaHost mMediaHost;
    protected final MediaHost mMediaHost;
    private final MetricsLogger mMetricsLogger;
    private final UiEventLogger mUiEventLogger;
    private final DumpManager mDumpManager;
@@ -72,6 +75,12 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
                }
            };

    private final Function1<Boolean, Unit> mMediaHostVisibilityListener = (visible) -> {
        mView.onMediaVisibilityChanged(visible);
        switchTileLayout(false);
        return null;
    };

    protected QSPanelControllerBase(T view, QSTileHost host,
            QSCustomizerController qsCustomizerController, MediaHost mediaHost,
            MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
@@ -91,14 +100,13 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
            mQsTileRevealController.setExpansion(mRevealExpansion);
        }

        mMediaHost.addVisibilityChangeListener(mMediaHostVisibilityListener);
        mView.onMediaVisibilityChanged(mMediaHost.getVisible());
        mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
        mHost.addCallback(mQSHostCallback);
        mMediaHost.addVisibilityChangeListener(aBoolean -> {
            switchTileLayout(false);
            return null;
        });
        setTiles();
        switchTileLayout(true);

        mDumpManager.registerDumpable(mView.getDumpableTag(), this);
    }

@@ -107,6 +115,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
        mHost.removeCallback(mQSHostCallback);

        mMediaHost.removeVisibilityChangeListener(mMediaHostVisibilityListener);

        for (TileRecord record : mRecords) {
            record.tile.removeCallbacks();
        }
+0 −9
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.widget.LinearLayout;

import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile.SignalState;
@@ -88,14 +87,6 @@ public class QuickQSPanel extends QSPanel {
        return new DoubleLineTileLayout(mContext, mUiEventLogger);
    }

    @Override

    protected void initMediaHostState() {
        mMediaHost.setExpansion(0.0f);
        mMediaHost.setShowsOnlyActiveMedia(true);
        mMediaHost.init(MediaHierarchyManager.LOCATION_QQS);
    }

    @Override
    protected boolean needsDynamicRowsAndColumns() {
        return false; // QQS always have the same layout
Loading