8/N Pull some usage of the MediaHost out of QSPanel
Bug: 168904199 Test: atest SystemUITests Change-Id: I1a1c257cc5e805835bbec124af12f1ebd5b47105
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.MediaHierarchyManager;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
import com.android.systemui.qs.customize.QSCustomizerController;
|
||||
@@ -57,6 +58,14 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInit() {
|
||||
super.onInit();
|
||||
mMediaHost.setExpansion(0.0f);
|
||||
mMediaHost.setShowsOnlyActiveMedia(true);
|
||||
mMediaHost.init(MediaHierarchyManager.LOCATION_QQS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
super.onViewAttached();
|
||||
|
||||
Reference in New Issue
Block a user