summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Julia Tuttle <juliatuttle@google.com> 2023-11-22 23:44:40 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-11-22 23:44:40 +0000
commit7a3ff1e98e8593dba08c851236691813d3f06514 (patch)
tree9b0ae001af235eb49dead12515cb75a1fb6bc1da
parent8ace2222003ca2c8a849ca6cc64f902003955f0d (diff)
parent2206dba50a1ac8883ad8ced91236aea6717e9c6b (diff)
Merge "Create old or new provider in Bubbles and CentralSurfacesImpl tests" into main
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestUtil.kt95
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java43
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java39
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,