diff options
| author | 2023-11-22 23:44:40 +0000 | |
|---|---|---|
| committer | 2023-11-22 23:44:40 +0000 | |
| commit | 7a3ff1e98e8593dba08c851236691813d3f06514 (patch) | |
| tree | 9b0ae001af235eb49dead12515cb75a1fb6bc1da | |
| parent | 8ace2222003ca2c8a849ca6cc64f902003955f0d (diff) | |
| parent | 2206dba50a1ac8883ad8ced91236aea6717e9c6b (diff) | |
Merge "Create old or new provider in Bubbles and CentralSurfacesImpl tests" into main
3 files changed, 135 insertions, 42 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestUtil.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestUtil.kt new file mode 100644 index 000000000000..0356c2cdbcd0 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestUtil.kt @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2023 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.statusbar.notification.interruption + +import android.hardware.display.AmbientDisplayConfiguration +import android.os.Handler +import android.os.PowerManager +import com.android.internal.logging.UiEventLogger +import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.plugins.statusbar.StatusBarStateController +import com.android.systemui.settings.UserTracker +import com.android.systemui.statusbar.notification.NotifPipelineFlags +import com.android.systemui.statusbar.policy.BatteryController +import com.android.systemui.statusbar.policy.DeviceProvisionedController +import com.android.systemui.statusbar.policy.HeadsUpManager +import com.android.systemui.statusbar.policy.KeyguardStateController +import com.android.systemui.util.EventLog +import com.android.systemui.util.settings.GlobalSettings +import com.android.systemui.util.time.SystemClock + +object VisualInterruptionDecisionProviderTestUtil { + fun createProviderByFlag( + ambientDisplayConfiguration: AmbientDisplayConfiguration, + batteryController: BatteryController, + deviceProvisionedController: DeviceProvisionedController, + eventLog: EventLog, + flags: NotifPipelineFlags, + globalSettings: GlobalSettings, + headsUpManager: HeadsUpManager, + keyguardNotificationVisibilityProvider: KeyguardNotificationVisibilityProvider, + keyguardStateController: KeyguardStateController, + @Main mainHandler: Handler, + newLogger: VisualInterruptionDecisionLogger, + oldLogger: NotificationInterruptLogger, + powerManager: PowerManager, + statusBarStateController: StatusBarStateController, + systemClock: SystemClock, + uiEventLogger: UiEventLogger, + userTracker: UserTracker + ): VisualInterruptionDecisionProvider { + return if (VisualInterruptionRefactor.isEnabled) { + VisualInterruptionDecisionProviderImpl( + ambientDisplayConfiguration, + batteryController, + deviceProvisionedController, + eventLog, + globalSettings, + headsUpManager, + keyguardNotificationVisibilityProvider, + keyguardStateController, + newLogger, + mainHandler, + powerManager, + statusBarStateController, + systemClock, + uiEventLogger, + userTracker + ) + } else { + NotificationInterruptStateProviderWrapper( + NotificationInterruptStateProviderImpl( + powerManager, + ambientDisplayConfiguration, + batteryController, + statusBarStateController, + keyguardStateController, + headsUpManager, + oldLogger, + mainHandler, + flags, + keyguardNotificationVisibilityProvider, + uiEventLogger, + userTracker, + deviceProvisionedController, + systemClock, + globalSettings, + eventLog + ) + ) + } + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java index 4422764c4bac..e3396364a85a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java @@ -155,9 +155,9 @@ import com.android.systemui.statusbar.notification.init.NotificationsController; import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl; -import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderWrapper; +import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionLogger; import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionProvider; -import com.android.systemui.statusbar.notification.interruption.VisualInterruptionRefactor; +import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionProviderTestUtil; import com.android.systemui.statusbar.notification.row.NotificationGutsManager; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; @@ -348,8 +348,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mFeatureFlags.set(Flags.ZJ_285570694_LOCKSCREEN_TRANSITION_FROM_AOD, true); when(mDozeParameters.getAlwaysOn()).thenReturn(true); mSetFlagsRule.disableFlags(com.android.systemui.Flags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR); - // TODO: b/312476335 - Update to check flag and instantiate old or new implementation. - mSetFlagsRule.disableFlags(VisualInterruptionRefactor.FLAG_NAME); IThermalService thermalService = mock(IThermalService.class); mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService, @@ -358,24 +356,25 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mFakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); mVisualInterruptionDecisionProvider = - new NotificationInterruptStateProviderWrapper( - new TestableNotificationInterruptStateProviderImpl( - mPowerManager, - mAmbientDisplayConfiguration, - mStatusBarStateController, - mKeyguardStateController, - mBatteryController, - mHeadsUpManager, - mock(NotificationInterruptLogger.class), - new Handler(TestableLooper.get(this).getLooper()), - mock(NotifPipelineFlags.class), - mock(KeyguardNotificationVisibilityProvider.class), - mock(UiEventLogger.class), - mUserTracker, - mDeviceProvisionedController, - mFakeSystemClock, - mFakeGlobalSettings, - mFakeEventLog)); + VisualInterruptionDecisionProviderTestUtil.INSTANCE.createProviderByFlag( + mAmbientDisplayConfiguration, + mBatteryController, + mDeviceProvisionedController, + mFakeEventLog, + mock(NotifPipelineFlags.class), + mFakeGlobalSettings, + mHeadsUpManager, + mock(KeyguardNotificationVisibilityProvider.class), + mKeyguardStateController, + new Handler(TestableLooper.get(this).getLooper()), + mock(VisualInterruptionDecisionLogger.class), + mock(NotificationInterruptLogger.class), + mPowerManager, + mStatusBarStateController, + mFakeSystemClock, + mock(UiEventLogger.class), + mUserTracker); + mVisualInterruptionDecisionProvider.start(); mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class)); diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java index ca167ad3cd14..8aa729cedde2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java @@ -145,8 +145,9 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.No import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; -import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderWrapper; -import com.android.systemui.statusbar.notification.interruption.VisualInterruptionRefactor; +import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionLogger; +import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionProvider; +import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionProviderTestUtil; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.NotificationTestHelper; import com.android.systemui.statusbar.notification.stack.domain.interactor.SharedNotificationContainerInteractor; @@ -367,9 +368,6 @@ public class BubblesTest extends SysuiTestCase { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); - // TODO: b/312476335 - Update to check flag and instantiate old or new implementation. - mSetFlagsRule.disableFlags(VisualInterruptionRefactor.FLAG_NAME); - if (Transitions.ENABLE_SHELL_TRANSITIONS) { doReturn(true).when(mTransitions).isRegistered(); } @@ -535,25 +533,26 @@ public class BubblesTest extends SysuiTestCase { final FakeGlobalSettings fakeGlobalSettings = new FakeGlobalSettings(); fakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); - TestableNotificationInterruptStateProviderImpl interruptionStateProvider = - new TestableNotificationInterruptStateProviderImpl( - mock(PowerManager.class), + final VisualInterruptionDecisionProvider interruptionDecisionProvider = + VisualInterruptionDecisionProviderTestUtil.INSTANCE.createProviderByFlag( mock(AmbientDisplayConfiguration.class), - mock(StatusBarStateController.class), - mock(KeyguardStateController.class), mock(BatteryController.class), - mock(HeadsUpManager.class), - mock(NotificationInterruptLogger.class), - mock(Handler.class), + mock(DeviceProvisionedController.class), + new FakeEventLog(), mock(NotifPipelineFlags.class), + fakeGlobalSettings, + mock(HeadsUpManager.class), mock(KeyguardNotificationVisibilityProvider.class), - mock(UiEventLogger.class), - mock(UserTracker.class), - mock(DeviceProvisionedController.class), + mock(KeyguardStateController.class), + mock(Handler.class), + mock(VisualInterruptionDecisionLogger.class), + mock(NotificationInterruptLogger.class), + mock(PowerManager.class), + mock(StatusBarStateController.class), mock(SystemClock.class), - fakeGlobalSettings, - new FakeEventLog() - ); + mock(UiEventLogger.class), + mock(UserTracker.class)); + interruptionDecisionProvider.start(); mShellTaskOrganizer = new ShellTaskOrganizer(mock(ShellInit.class), mock(ShellCommandHandler.class), @@ -602,7 +601,7 @@ public class BubblesTest extends SysuiTestCase { mock(INotificationManager.class), mIDreamManager, mVisibilityProvider, - new NotificationInterruptStateProviderWrapper(interruptionStateProvider), + interruptionDecisionProvider, mZenModeController, mLockscreenUserManager, mCommonNotifCollection, |