Remove QQS Footer Actions
Test: manual in handheld and split shade Test: atest SystemUITests Bug: 216302612 Change-Id: I4e4cda397ab0e8d0e8b6c19214c893ce5a3e69d9
This commit is contained in:
@@ -57,16 +57,6 @@
|
||||
android:focusable="true"
|
||||
android:paddingBottom="24dp"
|
||||
android:importantForAccessibility="yes">
|
||||
|
||||
<include
|
||||
layout="@layout/footer_actions"
|
||||
android:id="@+id/qqs_footer_actions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/qqs_layout_margin_top"
|
||||
android:layout_marginStart="@dimen/qs_footer_margin"
|
||||
android:layout_marginEnd="@dimen/qs_footer_margin"
|
||||
/>
|
||||
</com.android.systemui.qs.QuickQSPanel>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
@@ -34,8 +34,6 @@ import com.android.systemui.animation.ActivityLaunchAnimator
|
||||
import com.android.systemui.globalactions.GlobalActionsDialogLite
|
||||
import com.android.systemui.plugins.ActivityStarter
|
||||
import com.android.systemui.plugins.FalsingManager
|
||||
import com.android.systemui.qs.FooterActionsController.ExpansionState.COLLAPSED
|
||||
import com.android.systemui.qs.FooterActionsController.ExpansionState.EXPANDED
|
||||
import com.android.systemui.qs.dagger.QSFlagsModule.PM_LITE_ENABLED
|
||||
import com.android.systemui.settings.UserTracker
|
||||
import com.android.systemui.statusbar.phone.MultiUserSwitchController
|
||||
@@ -56,11 +54,11 @@ import javax.inject.Named
|
||||
*/
|
||||
class FooterActionsController @Inject constructor(
|
||||
view: FooterActionsView,
|
||||
multiUserSwitchControllerFactory: MultiUserSwitchController.Factory,
|
||||
private val activityStarter: ActivityStarter,
|
||||
private val userManager: UserManager,
|
||||
private val userTracker: UserTracker,
|
||||
private val userInfoController: UserInfoController,
|
||||
private val multiUserSwitchController: MultiUserSwitchController,
|
||||
private val deviceProvisionedController: DeviceProvisionedController,
|
||||
private val falsingManager: FalsingManager,
|
||||
private val metricsLogger: MetricsLogger,
|
||||
@@ -68,13 +66,10 @@ class FooterActionsController @Inject constructor(
|
||||
private val globalActionsDialog: GlobalActionsDialogLite,
|
||||
private val uiEventLogger: UiEventLogger,
|
||||
@Named(PM_LITE_ENABLED) private val showPMLiteButton: Boolean,
|
||||
private val buttonsVisibleState: ExpansionState,
|
||||
private val globalSetting: GlobalSettings,
|
||||
private val handler: Handler
|
||||
) : ViewController<FooterActionsView>(view) {
|
||||
|
||||
enum class ExpansionState { COLLAPSED, EXPANDED }
|
||||
|
||||
private var listening: Boolean = false
|
||||
|
||||
var expanded = false
|
||||
@@ -82,6 +77,7 @@ class FooterActionsController @Inject constructor(
|
||||
private val settingsButton: SettingsButton = view.findViewById(R.id.settings_button)
|
||||
private val settingsButtonContainer: View? = view.findViewById(R.id.settings_button_container)
|
||||
private val powerMenuLite: View = view.findViewById(R.id.pm_lite)
|
||||
private val multiUserSwitchController = multiUserSwitchControllerFactory.create(view)
|
||||
|
||||
private val onUserInfoChangedListener = OnUserInfoChangedListener { _, picture, _ ->
|
||||
val isGuestUser: Boolean = userManager.isGuestUser(KeyguardUpdateMonitor.getCurrentUser())
|
||||
@@ -99,9 +95,8 @@ class FooterActionsController @Inject constructor(
|
||||
}
|
||||
|
||||
private val onClickListener = View.OnClickListener { v ->
|
||||
// Don't do anything until views are unhidden. Don't do anything if the tap looks
|
||||
// suspicious.
|
||||
if (!buttonsVisible() || falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
// Don't do anything if the tap looks suspicious.
|
||||
if (!expanded || falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {
|
||||
return@OnClickListener
|
||||
}
|
||||
if (v === settingsButton) {
|
||||
@@ -110,9 +105,7 @@ class FooterActionsController @Inject constructor(
|
||||
activityStarter.postQSRunnableDismissingKeyguard {}
|
||||
return@OnClickListener
|
||||
}
|
||||
metricsLogger.action(
|
||||
if (expanded) MetricsProto.MetricsEvent.ACTION_QS_EXPANDED_SETTINGS_LAUNCH
|
||||
else MetricsProto.MetricsEvent.ACTION_QS_COLLAPSED_SETTINGS_LAUNCH)
|
||||
metricsLogger.action(MetricsProto.MetricsEvent.ACTION_QS_EXPANDED_SETTINGS_LAUNCH)
|
||||
if (settingsButton.isTunerClick) {
|
||||
activityStarter.postQSRunnableDismissingKeyguard {
|
||||
if (isTunerEnabled()) {
|
||||
@@ -135,26 +128,10 @@ class FooterActionsController @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun buttonsVisible(): Boolean {
|
||||
return when (buttonsVisibleState) {
|
||||
EXPANDED -> expanded
|
||||
COLLAPSED -> !expanded
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInit() {
|
||||
multiUserSwitchController.init()
|
||||
}
|
||||
|
||||
fun hideFooter() {
|
||||
mView.visibility = View.GONE
|
||||
}
|
||||
|
||||
fun showFooter() {
|
||||
mView.visibility = View.VISIBLE
|
||||
updateView()
|
||||
}
|
||||
|
||||
private fun startSettingsActivity() {
|
||||
val animationController = settingsButtonContainer?.let {
|
||||
ActivityLaunchAnimator.Controller.fromView(
|
||||
@@ -215,13 +192,5 @@ class FooterActionsController @Inject constructor(
|
||||
mView.setKeyguardShowing()
|
||||
}
|
||||
|
||||
fun refreshVisibility(shouldBeVisible: Boolean) {
|
||||
if (shouldBeVisible) {
|
||||
showFooter()
|
||||
} else {
|
||||
hideFooter()
|
||||
}
|
||||
}
|
||||
|
||||
private fun isTunerEnabled() = tunerService.isTunerEnabled
|
||||
}
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 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 android.os.Handler
|
||||
import android.os.UserManager
|
||||
import com.android.internal.logging.MetricsLogger
|
||||
import com.android.internal.logging.UiEventLogger
|
||||
import com.android.systemui.dagger.qualifiers.Main
|
||||
import com.android.systemui.globalactions.GlobalActionsDialogLite
|
||||
import com.android.systemui.plugins.ActivityStarter
|
||||
import com.android.systemui.plugins.FalsingManager
|
||||
import com.android.systemui.qs.FooterActionsController.ExpansionState
|
||||
import com.android.systemui.qs.dagger.QSFlagsModule
|
||||
import com.android.systemui.settings.UserTracker
|
||||
import com.android.systemui.statusbar.phone.MultiUserSwitchController
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController
|
||||
import com.android.systemui.statusbar.policy.UserInfoController
|
||||
import com.android.systemui.tuner.TunerService
|
||||
import com.android.systemui.util.settings.GlobalSettings
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
|
||||
class FooterActionsControllerBuilder @Inject constructor(
|
||||
private val activityStarter: ActivityStarter,
|
||||
private val userManager: UserManager,
|
||||
private val userTracker: UserTracker,
|
||||
private val userInfoController: UserInfoController,
|
||||
private val multiUserSwitchControllerFactory: MultiUserSwitchController.Factory,
|
||||
private val deviceProvisionedController: DeviceProvisionedController,
|
||||
private val falsingManager: FalsingManager,
|
||||
private val metricsLogger: MetricsLogger,
|
||||
private val tunerService: TunerService,
|
||||
private val globalActionsDialog: GlobalActionsDialogLite,
|
||||
private val uiEventLogger: UiEventLogger,
|
||||
@Named(QSFlagsModule.PM_LITE_ENABLED) private val showPMLiteButton: Boolean,
|
||||
private val globalSettings: GlobalSettings,
|
||||
@Main private val handler: Handler
|
||||
) {
|
||||
private lateinit var view: FooterActionsView
|
||||
private lateinit var buttonsVisibleState: ExpansionState
|
||||
|
||||
fun withView(view: FooterActionsView): FooterActionsControllerBuilder {
|
||||
this.view = view
|
||||
return this
|
||||
}
|
||||
|
||||
fun withButtonsVisibleWhen(state: ExpansionState): FooterActionsControllerBuilder {
|
||||
buttonsVisibleState = state
|
||||
return this
|
||||
}
|
||||
|
||||
fun build(): FooterActionsController {
|
||||
return FooterActionsController(view, activityStarter, userManager,
|
||||
userTracker, userInfoController, multiUserSwitchControllerFactory.create(view),
|
||||
deviceProvisionedController, falsingManager, metricsLogger, tunerService,
|
||||
globalActionsDialog, uiEventLogger, showPMLiteButton, buttonsVisibleState,
|
||||
globalSettings, handler)
|
||||
}
|
||||
}
|
||||
@@ -14,9 +14,6 @@
|
||||
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import static com.android.systemui.qs.dagger.QSFragmentModule.QQS_FOOTER;
|
||||
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_FOOTER;
|
||||
|
||||
import android.animation.TimeInterpolator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.util.Log;
|
||||
@@ -49,7 +46,6 @@ import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
/** */
|
||||
@QSScope
|
||||
@@ -88,8 +84,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
||||
private final QSFgsManagerFooter mFgsManagerFooter;
|
||||
private final QSSecurityFooter mSecurityFooter;
|
||||
private final QS mQs;
|
||||
private final View mQSFooterActions;
|
||||
private final View mQQSFooterActions;
|
||||
|
||||
@Nullable
|
||||
private PagedTileLayout mPagedLayout;
|
||||
@@ -154,16 +148,12 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
||||
QuickQSPanelController quickQSPanelController, QSTileHost qsTileHost,
|
||||
QSFgsManagerFooter fgsManagerFooter, QSSecurityFooter securityFooter,
|
||||
@Main Executor executor, TunerService tunerService,
|
||||
QSExpansionPathInterpolator qsExpansionPathInterpolator,
|
||||
@Named(QS_FOOTER) FooterActionsView qsFooterActionsView,
|
||||
@Named(QQS_FOOTER) FooterActionsView qqsFooterActionsView) {
|
||||
QSExpansionPathInterpolator qsExpansionPathInterpolator) {
|
||||
mQs = qs;
|
||||
mQuickQsPanel = quickPanel;
|
||||
mQsPanelController = qsPanelController;
|
||||
mQuickQSPanelController = quickQSPanelController;
|
||||
mQuickStatusBarHeader = quickStatusBarHeader;
|
||||
mQQSFooterActions = qqsFooterActionsView;
|
||||
mQSFooterActions = qsFooterActionsView;
|
||||
mFgsManagerFooter = fgsManagerFooter;
|
||||
mSecurityFooter = securityFooter;
|
||||
mHost = qsTileHost;
|
||||
@@ -476,12 +466,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
||||
.setListener(this)
|
||||
.build();
|
||||
|
||||
if (mQQSFooterActions.getVisibility() != View.GONE) {
|
||||
// only when qqs footer is present (which means split shade mode) it needs to
|
||||
// be animated
|
||||
updateQQSFooterAnimation();
|
||||
}
|
||||
|
||||
// Fade in the security footer and the divider as we reach the final position
|
||||
Builder builder = new Builder().setStartDelay(EXPANDED_TILE_DELAY);
|
||||
builder.addFloat(mFgsManagerFooter.getView(), "alpha", 0, 1);
|
||||
@@ -627,14 +611,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
||||
}
|
||||
}
|
||||
|
||||
private void updateQQSFooterAnimation() {
|
||||
int translationY = getRelativeTranslationY(mQSFooterActions, mQQSFooterActions);
|
||||
mQQSFooterActionsAnimator = new TouchAnimator.Builder()
|
||||
.addFloat(mQQSFooterActions, "translationY", 0, translationY)
|
||||
.build();
|
||||
mAnimatedQsViews.add(mQSFooterActions);
|
||||
}
|
||||
|
||||
private int getRelativeTranslationY(View view1, View view2) {
|
||||
int[] qsPosition = new int[2];
|
||||
int[] qqsPosition = new int[2];
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_FOOTER;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.text.TextUtils;
|
||||
@@ -33,7 +31,6 @@ import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
/**
|
||||
* Controller for {@link QSFooterView}.
|
||||
@@ -58,7 +55,7 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme
|
||||
ActivityStarter activityStarter,
|
||||
QSPanelController qsPanelController,
|
||||
QuickQSPanelController quickQSPanelController,
|
||||
@Named(QS_FOOTER) FooterActionsController footerActionsController) {
|
||||
FooterActionsController footerActionsController) {
|
||||
super(view);
|
||||
mUserTracker = userTracker;
|
||||
mQsPanelController = qsPanelController;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL;
|
||||
import static com.android.systemui.qs.dagger.QSFragmentModule.QQS_FOOTER;
|
||||
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLAYER;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
@@ -54,7 +53,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
// brightness is visible only in split shade
|
||||
private final QuickQSBrightnessController mBrightnessController;
|
||||
private final BrightnessMirrorHandler mBrightnessMirrorHandler;
|
||||
private final FooterActionsController mFooterActionsController;
|
||||
|
||||
@Inject
|
||||
QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost,
|
||||
@@ -63,14 +61,12 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
@Named(QUICK_QS_PANEL) MediaHost mediaHost,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
|
||||
DumpManager dumpManager,
|
||||
QuickQSBrightnessController quickQSBrightnessController,
|
||||
@Named(QQS_FOOTER) FooterActionsController footerActionsController
|
||||
QuickQSBrightnessController quickQSBrightnessController
|
||||
) {
|
||||
super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
|
||||
uiEventLogger, qsLogger, dumpManager);
|
||||
mBrightnessController = quickQSBrightnessController;
|
||||
mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
|
||||
mFooterActionsController = footerActionsController;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,8 +76,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
mMediaHost.setShowsOnlyActiveMedia(true);
|
||||
mMediaHost.init(MediaHierarchyManager.LOCATION_QQS);
|
||||
mBrightnessController.init(mShouldUseSplitNotificationShade);
|
||||
mFooterActionsController.init();
|
||||
mFooterActionsController.refreshVisibility(mShouldUseSplitNotificationShade);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,7 +96,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
void setListening(boolean listening) {
|
||||
super.setListening(listening);
|
||||
mBrightnessController.setListening(listening);
|
||||
mFooterActionsController.setListening(listening);
|
||||
}
|
||||
|
||||
public boolean isListening() {
|
||||
@@ -123,7 +116,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
@Override
|
||||
protected void onConfigurationChanged() {
|
||||
mBrightnessController.refreshVisibility(mShouldUseSplitNotificationShade);
|
||||
mFooterActionsController.refreshVisibility(mShouldUseSplitNotificationShade);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,9 +27,6 @@ import com.android.systemui.battery.BatteryMeterView;
|
||||
import com.android.systemui.dagger.qualifiers.RootView;
|
||||
import com.android.systemui.plugins.qs.QS;
|
||||
import com.android.systemui.privacy.OngoingPrivacyChip;
|
||||
import com.android.systemui.qs.FooterActionsController;
|
||||
import com.android.systemui.qs.FooterActionsController.ExpansionState;
|
||||
import com.android.systemui.qs.FooterActionsControllerBuilder;
|
||||
import com.android.systemui.qs.FooterActionsView;
|
||||
import com.android.systemui.qs.QSContainerImpl;
|
||||
import com.android.systemui.qs.QSFooter;
|
||||
@@ -55,8 +52,6 @@ import dagger.Provides;
|
||||
public interface QSFragmentModule {
|
||||
String QS_FGS_MANAGER_FOOTER_VIEW = "qs_fgs_manager_footer";
|
||||
String QS_SECURITY_FOOTER_VIEW = "qs_security_footer";
|
||||
String QQS_FOOTER = "qqs_footer";
|
||||
String QS_FOOTER = "qs_footer";
|
||||
String QS_USING_MEDIA_PLAYER = "qs_using_media_player";
|
||||
|
||||
/**
|
||||
@@ -124,42 +119,10 @@ public interface QSFragmentModule {
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@Named(QS_FOOTER)
|
||||
static FooterActionsView providesQSFooterActionsView(@RootView View view) {
|
||||
return view.findViewById(R.id.qs_footer_actions);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@Named(QQS_FOOTER)
|
||||
static FooterActionsView providesQQSFooterActionsView(@RootView View view) {
|
||||
return view.findViewById(R.id.qqs_footer_actions);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@Named(QQS_FOOTER)
|
||||
static FooterActionsController providesQQSFooterActionsController(
|
||||
FooterActionsControllerBuilder footerActionsControllerBuilder,
|
||||
@Named(QQS_FOOTER) FooterActionsView qqsFooterActionsView) {
|
||||
return footerActionsControllerBuilder
|
||||
.withView(qqsFooterActionsView)
|
||||
.withButtonsVisibleWhen(ExpansionState.COLLAPSED)
|
||||
.build();
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@Named(QS_FOOTER)
|
||||
static FooterActionsController providesQSFooterActionsController(
|
||||
FooterActionsControllerBuilder footerActionsControllerBuilder,
|
||||
@Named(QS_FOOTER) FooterActionsView qsFooterActionsView) {
|
||||
return footerActionsControllerBuilder
|
||||
.withView(qsFooterActionsView)
|
||||
.withButtonsVisibleWhen(ExpansionState.EXPANDED)
|
||||
.build();
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@QSScope
|
||||
|
||||
@@ -17,7 +17,6 @@ import com.android.systemui.R
|
||||
import com.android.systemui.classifier.FalsingManagerFake
|
||||
import com.android.systemui.globalactions.GlobalActionsDialogLite
|
||||
import com.android.systemui.plugins.ActivityStarter
|
||||
import com.android.systemui.qs.FooterActionsController.ExpansionState
|
||||
import com.android.systemui.settings.UserTracker
|
||||
import com.android.systemui.statusbar.phone.MultiUserSwitchController
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController
|
||||
@@ -54,6 +53,8 @@ class FooterActionsControllerTest : LeakCheckedTest() {
|
||||
@Mock
|
||||
private lateinit var userInfoController: UserInfoController
|
||||
@Mock
|
||||
private lateinit var multiUserSwitchControllerFactory: MultiUserSwitchController.Factory
|
||||
@Mock
|
||||
private lateinit var multiUserSwitchController: MultiUserSwitchController
|
||||
@Mock
|
||||
private lateinit var globalActionsDialog: GlobalActionsDialogLite
|
||||
@@ -76,14 +77,16 @@ class FooterActionsControllerTest : LeakCheckedTest() {
|
||||
injectLeakCheckedDependencies(*LeakCheckedTest.ALL_SUPPORTED_CLASSES)
|
||||
val fakeTunerService = Dependency.get(TunerService::class.java) as FakeTunerService
|
||||
|
||||
whenever(multiUserSwitchControllerFactory.create(any()))
|
||||
.thenReturn(multiUserSwitchController)
|
||||
|
||||
view = LayoutInflater.from(context)
|
||||
.inflate(R.layout.footer_actions, null) as FooterActionsView
|
||||
|
||||
controller = FooterActionsController(view, activityStarter,
|
||||
userManager, userTracker, userInfoController, multiUserSwitchController,
|
||||
controller = FooterActionsController(view, multiUserSwitchControllerFactory,
|
||||
activityStarter, userManager, userTracker, userInfoController,
|
||||
deviceProvisionedController, falsingManager, metricsLogger, fakeTunerService,
|
||||
globalActionsDialog, uiEventLogger, showPMLiteButton = true,
|
||||
buttonsVisibleState = ExpansionState.EXPANDED, fakeSettings,
|
||||
globalActionsDialog, uiEventLogger, showPMLiteButton = true, fakeSettings,
|
||||
Handler(testableLooper.looper))
|
||||
controller.init()
|
||||
ViewUtils.attachView(view)
|
||||
|
||||
@@ -68,8 +68,6 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
|
||||
private lateinit var tileView: QSTileView
|
||||
@Mock
|
||||
private lateinit var quickQsBrightnessController: QuickQSBrightnessController
|
||||
@Mock
|
||||
private lateinit var footerActionsController: FooterActionsController
|
||||
@Captor
|
||||
private lateinit var captor: ArgumentCaptor<QSPanel.OnConfigurationChangedListener>
|
||||
|
||||
@@ -95,8 +93,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
|
||||
uiEventLogger,
|
||||
qsLogger,
|
||||
dumpManager,
|
||||
quickQsBrightnessController,
|
||||
footerActionsController
|
||||
quickQsBrightnessController
|
||||
)
|
||||
|
||||
controller.init()
|
||||
@@ -128,14 +125,12 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBrightnessAndFooterVisibilityRefreshedWhenConfigurationChanged() {
|
||||
fun testBrightnessRefreshedWhenConfigurationChanged() {
|
||||
// times(2) because both controller and base controller are registering their listeners
|
||||
verify(quickQSPanel, times(2)).addOnConfigurationChangedListener(captor.capture())
|
||||
|
||||
captor.allValues.forEach { it.onConfigurationChange(Configuration.EMPTY) }
|
||||
|
||||
verify(quickQsBrightnessController).refreshVisibility(anyBoolean())
|
||||
// times(2) because footer visibility is also refreshed on controller init
|
||||
verify(footerActionsController, times(2)).refreshVisibility(anyBoolean())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user