diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index c58febdcd5a6c..043f5f1610a6f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -16,6 +16,9 @@ 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; @@ -50,6 +53,7 @@ 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 { @@ -82,6 +86,8 @@ 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; @@ -104,12 +110,15 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler, InjectionInflationController injectionInflater, QSTileHost qsTileHost, StatusBarStateController statusBarStateController, CommandQueue commandQueue, - QSDetailDisplayer qsDetailDisplayer, + QSDetailDisplayer qsDetailDisplayer, @Named(QS_PANEL) MediaHost qsMediaHost, + @Named(QUICK_QS_PANEL) MediaHost qqsMediaHost, QSFragmentComponent.Factory qsComponentFactory) { mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler; mInjectionInflater = injectionInflater; mCommandQueue = commandQueue; mQsDetailDisplayer = qsDetailDisplayer; + mQsMediaHost = qsMediaHost; + mQqsMediaHost = qqsMediaHost; mQsComponentFactory = qsComponentFactory; commandQueue.observe(getLifecycle(), this); mHost = qsTileHost; @@ -454,11 +463,9 @@ 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, mQSPanelController.getMediaHost(), true /* expanded */); + pinToBottom(expandedMediaPosition, mQsMediaHost, true /* expanded */); // The expanded media host should never move above the laid out position - pinToBottom(absoluteBottomPosition, mHeader.getHeaderQsPanel().getMediaHost(), - false /* expanded */); + pinToBottom(absoluteBottomPosition, mQqsMediaHost, 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 08f38a83a4114..8955a7e27deef 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -550,6 +550,7 @@ 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) { @@ -865,10 +866,6 @@ 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 05b791e642d04..d0a97fc792a2a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java @@ -16,6 +16,7 @@ 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; @@ -40,6 +41,7 @@ import com.android.systemui.tuner.TunerService; import java.util.function.Consumer; import javax.inject.Inject; +import javax.inject.Named; /** * Controller for {@link QSPanel}. @@ -74,11 +76,13 @@ 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, metricsLogger, uiEventLogger, dumpManager); + super(view, qstileHost, qsCustomizerController, mediaHost, metricsLogger, uiEventLogger, + dumpManager); mQsSecurityFooter = qsSecurityFooter; mTunerService = tunerService; mQsCustomizerController = qsCustomizerController; @@ -94,6 +98,7 @@ public class QSPanelController extends QSPanelControllerBase { @Override public void onInit() { + super.init(); mQsCustomizerController.init(); mBrightnessSlider.init(); } @@ -165,11 +170,6 @@ 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 d0a839b4613e1..06bf9acb64f09 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, + QSCustomizerController qsCustomizerController, MediaHost mediaHost, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) { super(view); mHost = host; mQsCustomizerController = qsCustomizerController; - mMediaHost = mView.getMediaHost(); + mMediaHost = mediaHost; mMetricsLogger = metricsLogger; mUiEventLogger = uiEventLogger; mDumpManager = dumpManager; @@ -193,7 +193,6 @@ public abstract class QSPanelControllerBase extends ViewContr .collect(Collectors.joining(",")); } - /** */ public void setExpanded(boolean expanded) { mView.setExpanded(expanded); @@ -235,7 +234,6 @@ 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 078e0f9c359b1..7f50eef019a93 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java @@ -16,10 +16,13 @@ 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; @@ -28,6 +31,7 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; +import javax.inject.Named; /** Controller for {@link QuickQSPanel}. */ @QSScope @@ -46,9 +50,11 @@ 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, metricsLogger, uiEventLogger, dumpManager); + super(view, qsTileHost, qsCustomizerController, mediaHost, 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 027767bc0893e..e2748fcb2fc20 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -469,6 +469,7 @@ 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 32904a21cd3c5..cb744f72ee980 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java @@ -366,7 +366,6 @@ class QuickStatusBarHeaderController extends ViewController { protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host, - QSCustomizerController qsCustomizerController, MetricsLogger metricsLogger, - UiEventLogger uiEventLogger, DumpManager dumpManager) { - super(view, host, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager); + QSCustomizerController qsCustomizerController, MediaHost mediaHost, + MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) { + super(view, host, qsCustomizerController, mediaHost, + metricsLogger, uiEventLogger, dumpManager); } @Override @@ -103,7 +104,6 @@ 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,8 +115,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { .thenReturn(mQSTileRevealController); mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost, - mQSCustomizerController, mMetricsLogger, - mUiEventLogger, mDumpManager); + mQSCustomizerController, mMediaHost, mMetricsLogger, mUiEventLogger, mDumpManager); mController.init(); reset(mQSTileRevealController); @@ -127,8 +126,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { mController.onViewDetached(); QSPanelControllerBase controller = new QSPanelControllerBase( - mQSPanel, mQSTileHost, mQSCustomizerController, mMetricsLogger, mUiEventLogger, - mDumpManager) { + mQSPanel, mQSTileHost, mQSCustomizerController, mMediaHost, 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 1a60e4fbf7b2b..9090b9bc0e6f6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java @@ -41,6 +41,7 @@ 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; @@ -97,7 +98,6 @@ 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,10 +109,11 @@ 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, mQSTileRevealControllerFactory, mDumpManager, - mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory, + mQSTileHost, mQSCustomizerController, mMediaHost, mQSTileRevealControllerFactory, + mDumpManager, mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory, mToggleSliderViewControllerFactory); mController.init();