diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index 043f5f1610a6f..c58febdcd5a6c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -16,9 +16,6 @@ package com.android.systemui.qs; import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS; -import static com.android.systemui.media.dagger.MediaModule.QS_PANEL; -import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL; - import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.res.Configuration; @@ -53,7 +50,6 @@ import com.android.systemui.util.LifecycleFragment; import com.android.systemui.util.Utils; import javax.inject.Inject; -import javax.inject.Named; public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Callbacks, StatusBarStateController.StateListener { @@ -86,8 +82,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca private final InjectionInflationController mInjectionInflater; private final CommandQueue mCommandQueue; private final QSDetailDisplayer mQsDetailDisplayer; - private final MediaHost mQsMediaHost; - private final MediaHost mQqsMediaHost; private final QSFragmentComponent.Factory mQsComponentFactory; private final QSTileHost mHost; private boolean mShowCollapsedOnKeyguard; @@ -110,15 +104,12 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler, InjectionInflationController injectionInflater, QSTileHost qsTileHost, StatusBarStateController statusBarStateController, CommandQueue commandQueue, - QSDetailDisplayer qsDetailDisplayer, @Named(QS_PANEL) MediaHost qsMediaHost, - @Named(QUICK_QS_PANEL) MediaHost qqsMediaHost, + QSDetailDisplayer qsDetailDisplayer, QSFragmentComponent.Factory qsComponentFactory) { mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler; mInjectionInflater = injectionInflater; mCommandQueue = commandQueue; mQsDetailDisplayer = qsDetailDisplayer; - mQsMediaHost = qsMediaHost; - mQqsMediaHost = qqsMediaHost; mQsComponentFactory = qsComponentFactory; commandQueue.observe(getLifecycle(), this); mHost = qsTileHost; @@ -463,9 +454,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca float expandedMediaPosition = absoluteBottomPosition - mQSPanelScrollView.getScrollY() + mQSPanelScrollView.getScrollRange(); // The expanded media host should never move below the laid out position - pinToBottom(expandedMediaPosition, mQsMediaHost, true /* expanded */); + pinToBottom( + expandedMediaPosition, mQSPanelController.getMediaHost(), true /* expanded */); // The expanded media host should never move above the laid out position - pinToBottom(absoluteBottomPosition, mQqsMediaHost, false /* expanded */); + pinToBottom(absoluteBottomPosition, mHeader.getHeaderQsPanel().getMediaHost(), + false /* expanded */); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index 8955a7e27deef..08f38a83a4114 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -550,7 +550,6 @@ public class QSPanel extends LinearLayout implements Tunable { } boolean horizontal = shouldUseHorizontalLayout(); ViewGroup host = mMediaHost.getHostView(); - ViewGroup newParent = horizontal ? mHorizontalLinearLayout : this; ViewGroup currentParent = (ViewGroup) host.getParent(); if (currentParent != newParent) { @@ -866,6 +865,10 @@ public class QSPanel extends LinearLayout implements Tunable { } } + public MediaHost getMediaHost() { + return mMediaHost; + } + /** * Set the header container of quick settings. */ diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java index d0a97fc792a2a..05b791e642d04 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java @@ -16,7 +16,6 @@ package com.android.systemui.qs; -import static com.android.systemui.media.dagger.MediaModule.QS_PANEL; import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS; import android.annotation.NonNull; @@ -41,7 +40,6 @@ import com.android.systemui.tuner.TunerService; import java.util.function.Consumer; import javax.inject.Inject; -import javax.inject.Named; /** * Controller for {@link QSPanel}. @@ -76,13 +74,11 @@ public class QSPanelController extends QSPanelControllerBase { @Inject QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService, QSTileHost qstileHost, QSCustomizerController qsCustomizerController, - @Named(QS_PANEL) MediaHost mediaHost, QSTileRevealController.Factory qsTileRevealControllerFactory, DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, BrightnessController.Factory brightnessControllerFactory, BrightnessSlider.Factory brightnessSliderFactory) { - super(view, qstileHost, qsCustomizerController, mediaHost, metricsLogger, uiEventLogger, - dumpManager); + super(view, qstileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager); mQsSecurityFooter = qsSecurityFooter; mTunerService = tunerService; mQsCustomizerController = qsCustomizerController; @@ -98,7 +94,6 @@ public class QSPanelController extends QSPanelControllerBase { @Override public void onInit() { - super.init(); mQsCustomizerController.init(); mBrightnessSlider.init(); } @@ -170,6 +165,11 @@ public class QSPanelController extends QSPanelControllerBase { } } + /** */ + public MediaHost getMediaHost() { + return mView.getMediaHost(); + } + /** */ public void setBrightnessMirror(BrightnessMirrorController brightnessMirrorController) { mBrightnessMirrorController = brightnessMirrorController; diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java index 06bf9acb64f09..d0a839b4613e1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java @@ -73,12 +73,12 @@ public abstract class QSPanelControllerBase extends ViewContr }; protected QSPanelControllerBase(T view, QSTileHost host, - QSCustomizerController qsCustomizerController, MediaHost mediaHost, + QSCustomizerController qsCustomizerController, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) { super(view); mHost = host; mQsCustomizerController = qsCustomizerController; - mMediaHost = mediaHost; + mMediaHost = mView.getMediaHost(); mMetricsLogger = metricsLogger; mUiEventLogger = uiEventLogger; mDumpManager = dumpManager; @@ -193,6 +193,7 @@ public abstract class QSPanelControllerBase extends ViewContr .collect(Collectors.joining(",")); } + /** */ public void setExpanded(boolean expanded) { mView.setExpanded(expanded); @@ -234,6 +235,7 @@ public abstract class QSPanelControllerBase extends ViewContr boolean switchTileLayout(boolean force) { if (mView.switchTileLayout(force, mRecords)) { setTiles(); + mView.reSetLayoutListening(); return true; } return false; diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java index 7f50eef019a93..078e0f9c359b1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java @@ -16,13 +16,10 @@ package com.android.systemui.qs; -import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL; - 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.MediaHost; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.customize.QSCustomizerController; import com.android.systemui.qs.dagger.QSScope; @@ -31,7 +28,6 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; -import javax.inject.Named; /** Controller for {@link QuickQSPanel}. */ @QSScope @@ -50,11 +46,9 @@ public class QuickQSPanelController extends QSPanelControllerBase @Inject QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost, QSCustomizerController qsCustomizerController, - @Named(QUICK_QS_PANEL) MediaHost mediaHost, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) { - super(view, qsTileHost, qsCustomizerController, mediaHost, metricsLogger, uiEventLogger, - dumpManager); + super(view, qsTileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index e2748fcb2fc20..027767bc0893e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -469,7 +469,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn return mLifecycle; } - /** */ public void setContentMargins(int marginStart, int marginEnd) { mContentMarginStart = marginStart; mContentMarginEnd = marginEnd; diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java index cb744f72ee980..32904a21cd3c5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java @@ -366,6 +366,7 @@ class QuickStatusBarHeaderController extends ViewController { protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host, - QSCustomizerController qsCustomizerController, MediaHost mediaHost, - MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) { - super(view, host, qsCustomizerController, mediaHost, - metricsLogger, uiEventLogger, dumpManager); + QSCustomizerController qsCustomizerController, MetricsLogger metricsLogger, + UiEventLogger uiEventLogger, DumpManager dumpManager) { + super(view, host, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager); } @Override @@ -104,6 +103,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { public void setup() throws Exception { MockitoAnnotations.initMocks(this); + when(mQSPanel.getMediaHost()).thenReturn(mMediaHost); when(mQSPanel.isAttachedToWindow()).thenReturn(true); when(mQSPanel.getDumpableTag()).thenReturn("QSPanel"); when(mQSPanel.openPanelEvent()).thenReturn(QSEvent.QS_PANEL_EXPANDED); @@ -115,7 +115,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { .thenReturn(mQSTileRevealController); mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost, - mQSCustomizerController, mMediaHost, mMetricsLogger, mUiEventLogger, mDumpManager); + mQSCustomizerController, mMetricsLogger, + mUiEventLogger, mDumpManager); mController.init(); reset(mQSTileRevealController); @@ -126,8 +127,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { mController.onViewDetached(); QSPanelControllerBase controller = new QSPanelControllerBase( - mQSPanel, mQSTileHost, mQSCustomizerController, mMediaHost, mMetricsLogger, - mUiEventLogger, mDumpManager) { + mQSPanel, mQSTileHost, mQSCustomizerController, mMetricsLogger, mUiEventLogger, + mDumpManager) { @Override protected QSTileRevealController createTileRevealController() { return mQSTileRevealController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java index 9090b9bc0e6f6..1a60e4fbf7b2b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java @@ -41,7 +41,6 @@ import com.android.systemui.settings.brightness.BrightnessController; import com.android.systemui.settings.brightness.BrightnessSlider; import com.android.systemui.settings.brightness.ToggleSlider; import com.android.systemui.tuner.TunerService; -import com.android.systemui.util.animation.DisappearParameters; import org.junit.Before; import org.junit.Test; @@ -98,6 +97,7 @@ public class QSPanelControllerTest extends SysuiTestCase { public void setup() throws Exception { MockitoAnnotations.initMocks(this); + when(mQSPanel.getMediaHost()).thenReturn(mMediaHost); when(mQSPanel.isAttachedToWindow()).thenReturn(true); when(mQSPanel.getDumpableTag()).thenReturn("QSPanel"); when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout); @@ -109,11 +109,10 @@ public class QSPanelControllerTest extends SysuiTestCase { .thenReturn(mBrightnessController); when(mQSTileRevealControllerFactory.create(any(), any())) .thenReturn(mQSTileRevealController); - when(mMediaHost.getDisappearParameters()).thenReturn(new DisappearParameters()); mController = new QSPanelController(mQSPanel, mQSSecurityFooter, mTunerService, - mQSTileHost, mQSCustomizerController, mMediaHost, mQSTileRevealControllerFactory, - mDumpManager, mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory, + mQSTileHost, mQSCustomizerController, mQSTileRevealControllerFactory, mDumpManager, + mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory, mToggleSliderViewControllerFactory); mController.init();