diff options
14 files changed, 123 insertions, 79 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetailDisplayer.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetailDisplayer.java new file mode 100644 index 000000000000..7d87e174d95d --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetailDisplayer.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.qs; + +import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.plugins.qs.DetailAdapter; + +import javax.inject.Inject; + +/** + * Proxy class for talking with the QSPanel and showing custom content within it. + */ +@SysUISingleton +public class QSDetailDisplayer { + private QSPanelController mQsPanelController; + + @Inject + public QSDetailDisplayer() { + } + + public void setQsPanelController(QSPanelController qsPanelController) { + mQsPanelController = qsPanelController; + } + + /** Show the supplied DetailAdapter in the Quick Settings. */ + public void showDetailAdapter(DetailAdapter detailAdapter, int x, int y) { + if (mQsPanelController != null) { + mQsPanelController.showDetailDapater(detailAdapter, x, y); + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java index 0a2533a8426e..e38bd4bd9a38 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java @@ -17,23 +17,11 @@ package com.android.systemui.qs; import android.view.View; -import androidx.annotation.Nullable; - /** * The bottom footer of the quick settings panel. */ public interface QSFooter { /** - * Sets the given {@link QSPanel} to be the one that will display the quick settings. - */ - void setQSPanel(@Nullable QSPanel panel); - - /** - * Sets the given {@link QuickQSPanel} to be the one associated with quick settings. - */ - default void setQQSPanel(@Nullable QuickQSPanel panel) {}; - - /** * Sets whether or not the footer should be visible. * * @param visibility One of {@link View#VISIBLE}, {@link View#INVISIBLE} or {@link View#GONE}. diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java index 8b9dae14c809..7e20be6826dc 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java @@ -59,7 +59,6 @@ public class QSFooterView extends FrameLayout { private boolean mShouldShowBuildText; private boolean mQsDisabled; - private QuickQSPanel mQuickQsPanel; private boolean mExpanded; @@ -115,8 +114,6 @@ public class QSFooterView extends FrameLayout { updateResources(); - addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, - oldBottom) -> updateAnimator(right - left)); setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES); setBuildText(); } @@ -139,9 +136,7 @@ public class QSFooterView extends FrameLayout { } } - private void updateAnimator(int width) { - int numTiles = mQuickQsPanel != null ? mQuickQsPanel.getNumQuickTiles() - : QuickQSPanel.getDefaultMaxTiles(); + void updateAnimator(int width, int numTiles) { int size = mContext.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size) - mContext.getResources().getDimensionPixelSize(dimen.qs_quick_tile_padding); int remaining = (width - numTiles * size) / (numTiles - 1); @@ -289,19 +284,6 @@ public class QSFooterView extends FrameLayout { return mExpanded && mMultiUserSwitch.isMultiUserEnabled(); } - /** */ - public void setQSPanel(final QSPanel qsPanel) { - if (qsPanel != null) { - mMultiUserSwitch.setQsPanel(qsPanel); - qsPanel.setFooterPageIndicator(mPageIndicator); - } - } - - public void setQQSPanel(@Nullable QuickQSPanel panel) { - mQuickQsPanel = panel; - } - - void onUserInfoChanged(Drawable picture, boolean isGuestUser) { if (picture != null && isGuestUser && !(picture instanceof UserIconDrawable)) { picture = picture.getConstantState().newDrawable(getResources()).mutate(); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java index e3af04bdc31e..8110fda1330c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java @@ -26,8 +26,6 @@ import android.view.View; import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.Nullable; - import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; import com.android.keyguard.KeyguardUpdateMonitor; @@ -35,6 +33,7 @@ import com.android.systemui.R; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.settings.UserTracker; +import com.android.systemui.statusbar.phone.MultiUserSwitch; import com.android.systemui.statusbar.phone.SettingsButton; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.UserInfoController; @@ -55,11 +54,15 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme private final DeviceProvisionedController mDeviceProvisionedController; private final UserTracker mUserTracker; private final QSPanelController mQsPanelController; + private final QSDetailDisplayer mQsDetailDisplayer; + private final QuickQSPanelController mQuickQSPanelController; private final TunerService mTunerService; private final MetricsLogger mMetricsLogger; private final SettingsButton mSettingsButton; private final TextView mBuildText; private final View mEdit; + private final MultiUserSwitch mMultiUserSwitch; + private final PageIndicator mPageIndicator; private final UserInfoController.OnUserInfoChangedListener mOnUserInfoChangedListener = new UserInfoController.OnUserInfoChangedListener() { @@ -119,8 +122,9 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme QSFooterViewController(QSFooterView view, UserManager userManager, UserInfoController userInfoController, ActivityStarter activityStarter, DeviceProvisionedController deviceProvisionedController, UserTracker userTracker, - QSPanelController qsPanelController, TunerService tunerService, - MetricsLogger metricsLogger) { + QSPanelController qsPanelController, QSDetailDisplayer qsDetailDisplayer, + QuickQSPanelController quickQSPanelController, + TunerService tunerService, MetricsLogger metricsLogger) { super(view); mUserManager = userManager; mUserInfoController = userInfoController; @@ -128,17 +132,24 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme mDeviceProvisionedController = deviceProvisionedController; mUserTracker = userTracker; mQsPanelController = qsPanelController; + mQsDetailDisplayer = qsDetailDisplayer; + mQuickQSPanelController = quickQSPanelController; mTunerService = tunerService; mMetricsLogger = metricsLogger; mSettingsButton = mView.findViewById(R.id.settings_button); mBuildText = mView.findViewById(R.id.build); mEdit = mView.findViewById(android.R.id.edit); + mMultiUserSwitch = mView.findViewById(R.id.multi_user_switch); + mPageIndicator = mView.findViewById(R.id.footer_page_indicator); } - @Override protected void onViewAttached() { + mView.addOnLayoutChangeListener( + (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> + mView.updateAnimator( + right - left, mQuickQSPanelController.getNumQuickTiles())); mSettingsButton.setOnClickListener(mSettingsOnClickListener); mBuildText.setOnLongClickListener(view -> { CharSequence buildText = mBuildText.getText(); @@ -158,6 +169,8 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme mActivityStarter.postQSRunnableDismissingKeyguard(() -> mQsPanelController.showEdit(view))); + mMultiUserSwitch.setQSDetailDisplayer(mQsDetailDisplayer); + mQsPanelController.setFooterPageIndicator(mPageIndicator); mView.updateEverything(isTunerEnabled()); } @@ -166,12 +179,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme setListening(false); } - - @Override - public void setQSPanel(@Nullable QSPanel panel) { - mView.setQSPanel(panel); - } - @Override public void setVisibility(int visibility) { mView.setVisibility(visibility); @@ -220,11 +227,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme } @Override - public void setQQSPanel(@Nullable QuickQSPanel panel) { - mView.setQQSPanel(panel); - } - - @Override public void disable(int state1, int state2, boolean animate) { mView.disable(state2, isTunerEnabled()); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index f9eea174ff77..0fe018efb009 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -80,6 +80,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca private final RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler; private final InjectionInflationController mInjectionInflater; + private final CommandQueue mCommandQueue; + private final QSDetailDisplayer mQsDetailDisplayer; private final QSFragmentComponent.Factory mQsComponentFactory; private final QSTileHost mHost; private boolean mShowCollapsedOnKeyguard; @@ -102,9 +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, QSFragmentComponent.Factory qsComponentFactory) { mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler; mInjectionInflater = injectionInflater; + mCommandQueue = commandQueue; + mQsDetailDisplayer = qsDetailDisplayer; mQsComponentFactory = qsComponentFactory; commandQueue.observe(getLifecycle(), this); mHost = qsTileHost; @@ -144,6 +149,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca mQSPanelController.setHeaderContainer(view.findViewById(R.id.header_text_container)); mFooter = qsFragmentComponent.getQSFooter(); + mQsDetailDisplayer.setQsPanelController(mQSPanelController); + mQSContainerImplController = qsFragmentComponent.getQSContainerImplController(); mQSContainerImplController.init(); mContainer = mQSContainerImplController.getView(); @@ -183,6 +190,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca setListening(false); } mQSCustomizerController.setQs(null); + mQsDetailDisplayer.setQsPanelController(null); } @Override @@ -254,7 +262,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca public void setHost(QSTileHost qsh) { mHeader.setQSPanel(mQSPanelController.getView()); - mFooter.setQSPanel(mQSPanelController.getView()); mQSDetail.setHost(qsh); } @@ -321,10 +328,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca return mQSPanelController; } - public QSPanel getQsPanel() { - return mQSPanelController.getView(); - } - @Override public boolean isShowingDetail() { return mQSCustomizerController.isCustomizing() || mQSDetail.isShowingDetail(); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java index eb82a7200c21..eef7e39c992d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java @@ -29,6 +29,7 @@ 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.DetailAdapter; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.customize.QSCustomizerController; import com.android.systemui.qs.dagger.QSScope; @@ -244,5 +245,15 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> { public Pair<Integer, Integer> getVisualSideMargins() { return mView.getVisualSideMargins(); } + + /** */ + public void showDetailDapater(DetailAdapter detailAdapter, int x, int y) { + mView.showDetailAdapter(true, detailAdapter, new int[]{x, y}); + } + + /** */ + public void setFooterPageIndicator(PageIndicator pageIndicator) { + mView.setFooterPageIndicator(pageIndicator); + } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java index ed0900d07b56..9c421b0e4f6e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java @@ -46,7 +46,7 @@ public class QuickQSPanel extends QSPanel { public static final String NUM_QUICK_TILES = "sysui_qqs_count"; private static final String TAG = "QuickQSPanel"; - // Start it at 6 so a non-zero value can be obtained statically. + // A default value so that we never return 0. private static int sDefaultMaxTiles = 6; private boolean mDisabledByPolicy; @@ -63,6 +63,7 @@ public class QuickQSPanel extends QSPanel { UiEventLogger uiEventLogger) { super(context, attrs, qsLogger, mediaHost, uiEventLogger); sDefaultMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns); + mMaxTiles = sDefaultMaxTiles; applyBottomMargin((View) mRegularTileLayout); } @@ -170,10 +171,6 @@ public class QuickQSPanel extends QSPanel { } } - public static int getDefaultMaxTiles() { - return sDefaultMaxTiles; - } - void setDisabledByPolicy(boolean disabled) { if (disabled != mDisabledByPolicy) { mDisabledByPolicy = disabled; diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java index a718271998c9..fa6289f896f9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java @@ -84,4 +84,8 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel> } super.setTiles(quickTiles, true); } + + public int getNumQuickTiles() { + return mView.getNumQuickTiles(); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java index 8636cb29811c..5f547b5df671 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java @@ -45,7 +45,7 @@ import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; -import com.android.systemui.qs.QSPanel; +import com.android.systemui.qs.QSDetailDisplayer; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; import com.android.systemui.statusbar.policy.BatteryController; @@ -369,8 +369,9 @@ public class KeyguardStatusBarView extends RelativeLayout mMultiUserAvatar.setImageDrawable(picture); } - public void setQSPanel(QSPanel qsp) { - mMultiUserSwitch.setQsPanel(qsp); + /** */ + public void setQSDetailDisplayer(QSDetailDisplayer detailDisplayer) { + mMultiUserSwitch.setQSDetailDisplayer(detailDisplayer); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java index 67b7e979f62d..480d3f42ae77 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java @@ -34,7 +34,7 @@ import com.android.systemui.Prefs; import com.android.systemui.Prefs.Key; import com.android.systemui.R; import com.android.systemui.plugins.qs.DetailAdapter; -import com.android.systemui.qs.QSPanel; +import com.android.systemui.qs.QSDetailDisplayer; import com.android.systemui.statusbar.policy.KeyguardUserSwitcher; import com.android.systemui.statusbar.policy.UserSwitcherController; @@ -43,14 +43,13 @@ import com.android.systemui.statusbar.policy.UserSwitcherController; */ public class MultiUserSwitch extends FrameLayout implements View.OnClickListener { - protected QSPanel mQsPanel; + protected QSDetailDisplayer mQSDetailDisplayer; private KeyguardUserSwitcher mKeyguardUserSwitcher; private boolean mKeyguardMode; private UserSwitcherController.BaseUserAdapter mUserListener; final UserManager mUserManager; - private final int[] mTmpInt2 = new int[2]; protected UserSwitcherController mUserSwitcherController; @@ -66,8 +65,9 @@ public class MultiUserSwitch extends FrameLayout implements View.OnClickListener refreshContentDescription(); } - public void setQsPanel(QSPanel qsPanel) { - mQsPanel = qsPanel; + /** */ + public void setQSDetailDisplayer(QSDetailDisplayer detailDisplayer) { + mQSDetailDisplayer = detailDisplayer; setUserSwitcherController(Dependency.get(UserSwitcherController.class)); } @@ -127,16 +127,15 @@ public class MultiUserSwitch extends FrameLayout implements View.OnClickListener if (mKeyguardUserSwitcher != null) { mKeyguardUserSwitcher.show(true /* animate */); } - } else if (mQsPanel != null && mUserSwitcherController != null) { + } else if (mQSDetailDisplayer != null && mUserSwitcherController != null) { View center = getChildCount() > 0 ? getChildAt(0) : this; - center.getLocationInWindow(mTmpInt2); - mTmpInt2[0] += center.getWidth() / 2; - mTmpInt2[1] += center.getHeight() / 2; + int[] tmpInt = new int[2]; + center.getLocationInWindow(tmpInt); + tmpInt[0] += center.getWidth() / 2; + tmpInt[1] += center.getHeight() / 2; - mQsPanel.showDetailAdapter(true, - getUserDetailAdapter(), - mTmpInt2); + mQSDetailDisplayer.showDetailAdapter(getUserDetailAdapter(), tmpInt[0], tmpInt[1]); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 231d157322ed..193c96373f68 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -89,7 +89,7 @@ import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener; -import com.android.systemui.qs.QSFragment; +import com.android.systemui.qs.QSDetailDisplayer; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.GestureRecorder; import com.android.systemui.statusbar.KeyguardAffordanceView; @@ -268,6 +268,7 @@ public class NotificationPanelViewController extends PanelViewController { private final MediaHierarchyManager mMediaHierarchyManager; private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory; + private final QSDetailDisplayer mQSDetailDisplayer; // Maximum # notifications to show on Keyguard; extras will be collapsed in an overflow card. // If there are exactly 1 + mMaxKeyguardNotifications, then still shows all notifications private final int mMaxKeyguardNotifications; @@ -519,7 +520,8 @@ public class NotificationPanelViewController extends PanelViewController { KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory, NotificationGroupManagerLegacy groupManager, NotificationIconAreaController notificationIconAreaController, - AuthController authController) { + AuthController authController, + QSDetailDisplayer qsDetailDisplayer) { super(view, falsingManager, dozeLog, keyguardStateController, (SysuiStatusBarStateController) statusBarStateController, vibratorHelper, latencyTracker, flingAnimationUtilsBuilder, statusBarTouchableRegionManager); @@ -534,6 +536,7 @@ public class NotificationPanelViewController extends PanelViewController { mGroupManager = groupManager; mNotificationIconAreaController = notificationIconAreaController; mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory; + mQSDetailDisplayer = qsDetailDisplayer; mView.setWillNotDraw(!DEBUG); mInjectionInflationController = injectionInflationController; mFalsingManager = falsingManager; @@ -606,6 +609,7 @@ public class NotificationPanelViewController extends PanelViewController { private void onFinishInflate() { loadDimens(); mKeyguardStatusBar = mView.findViewById(R.id.keyguard_header); + mKeyguardStatusBar.setQSDetailDisplayer(mQSDetailDisplayer); mBigClockContainer = mView.findViewById(R.id.big_clock_container); updateViewControllers(mView.findViewById(R.id.keyguard_status_view)); mNotificationContainerParent = mView.findViewById(R.id.notification_container_parent); @@ -2867,9 +2871,6 @@ public class NotificationPanelViewController extends PanelViewController { } }); mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView()); - if (mQs instanceof QSFragment) { - mKeyguardStatusBar.setQSPanel(((QSFragment) mQs).getQsPanel()); - } updateQsExpansion(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java index 065f236d19b3..2dfd38832997 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java @@ -40,6 +40,7 @@ import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.UserTracker; +import com.android.systemui.statusbar.phone.MultiUserSwitch; import com.android.systemui.statusbar.phone.SettingsButton; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.UserInfoController; @@ -75,6 +76,8 @@ public class QSFooterViewControllerTest extends LeakCheckedTest { private QSPanelController mQSPanelController; @Mock private ClipboardManager mClipboardManager; + @Mock + private QuickQSPanelController mQuickQSPanelController; private FakeTunerService mFakeTunerService; private MetricsLogger mMetricsLogger = new FakeMetricsLogger(); @@ -84,6 +87,8 @@ public class QSFooterViewControllerTest extends LeakCheckedTest { private TextView mBuildText; @Mock private View mEdit; + @Mock + private MultiUserSwitch mMultiUserSwitch; private QSFooterViewController mController; @@ -105,10 +110,12 @@ public class QSFooterViewControllerTest extends LeakCheckedTest { when(mView.findViewById(R.id.settings_button)).thenReturn(mSettingsButton); when(mView.findViewById(R.id.build)).thenReturn(mBuildText); when(mView.findViewById(android.R.id.edit)).thenReturn(mEdit); + when(mView.findViewById(R.id.multi_user_switch)).thenReturn(mMultiUserSwitch); mController = new QSFooterViewController(mView, mUserManager, mUserInfoController, mActivityStarter, mDeviceProvisionedController, mUserTracker, mQSPanelController, - mFakeTunerService, mMetricsLogger); + new QSDetailDisplayer(), mQuickQSPanelController, mFakeTunerService, + mMetricsLogger); mController.init(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index 90609ccb48d6..858ecdcccdef 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -167,6 +167,7 @@ public class QSFragmentTest extends SysuiBaseFragmentTest { mock(QSTileHost.class), mock(StatusBarStateController.class), commandQueue, + new QSDetailDisplayer(), mQsComponentFactory); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java index e1f8596c2802..e9e6b3e57b32 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java @@ -64,6 +64,7 @@ import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.doze.DozeLog; import com.android.systemui.media.MediaHierarchyManager; import com.android.systemui.plugins.FalsingManager; +import com.android.systemui.qs.QSDetailDisplayer; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.KeyguardAffordanceView; import com.android.systemui.statusbar.NotificationLockscreenUserManager; @@ -214,6 +215,7 @@ public class NotificationPanelViewTest extends SysuiTestCase { mDisplayMetrics.density = 100; when(mResources.getBoolean(R.bool.config_enableNotificationShadeDrag)).thenReturn(true); when(mView.getContext()).thenReturn(getContext()); + when(mView.findViewById(R.id.keyguard_header)).thenReturn(mKeyguardStatusBar); when(mView.findViewById(R.id.keyguard_clock_container)).thenReturn(mKeyguardClockSwitch); when(mView.findViewById(R.id.notification_stack_scroller)) .thenReturn(mNotificationStackScrollLayout); @@ -273,7 +275,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { mKeyguardStatusViewComponentFactory, mGroupManager, mNotificationAreaController, - mAuthController); + mAuthController, + new QSDetailDisplayer()); mNotificationPanelViewController.initDependencies( mStatusBar, mNotificationShelfController); |