Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7a3ff1e9 authored by Julia Tuttle's avatar Julia Tuttle Committed by Android (Google) Code Review
Browse files

Merge "Create old or new provider in Bubbles and CentralSurfacesImpl tests" into main

parents 8ace2222 2206dba5
Loading
Loading
Loading
Loading
+95 −0
Original line number Original line Diff line number Diff line
/*
 * 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
                )
            )
        }
    }
}
+21 −22
Original line number Original line Diff line number Diff line
@@ -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.KeyguardNotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl;
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.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.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
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);
        mFeatureFlags.set(Flags.ZJ_285570694_LOCKSCREEN_TRANSITION_FROM_AOD, true);
        when(mDozeParameters.getAlwaysOn()).thenReturn(true);
        when(mDozeParameters.getAlwaysOn()).thenReturn(true);
        mSetFlagsRule.disableFlags(com.android.systemui.Flags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR);
        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);
        IThermalService thermalService = mock(IThermalService.class);
        mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService,
        mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService,
@@ -358,24 +356,25 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
        mFakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON);
        mFakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON);


        mVisualInterruptionDecisionProvider =
        mVisualInterruptionDecisionProvider =
                new NotificationInterruptStateProviderWrapper(
                VisualInterruptionDecisionProviderTestUtil.INSTANCE.createProviderByFlag(
                        new TestableNotificationInterruptStateProviderImpl(
                                mPowerManager,
                        mAmbientDisplayConfiguration,
                        mAmbientDisplayConfiguration,
                                mStatusBarStateController,
                                mKeyguardStateController,
                        mBatteryController,
                        mBatteryController,
                                mHeadsUpManager,
                        mDeviceProvisionedController,
                                mock(NotificationInterruptLogger.class),
                        mFakeEventLog,
                                new Handler(TestableLooper.get(this).getLooper()),
                        mock(NotifPipelineFlags.class),
                        mock(NotifPipelineFlags.class),
                        mFakeGlobalSettings,
                        mHeadsUpManager,
                        mock(KeyguardNotificationVisibilityProvider.class),
                        mock(KeyguardNotificationVisibilityProvider.class),
                                mock(UiEventLogger.class),
                        mKeyguardStateController,
                                mUserTracker,
                        new Handler(TestableLooper.get(this).getLooper()),
                                mDeviceProvisionedController,
                        mock(VisualInterruptionDecisionLogger.class),
                        mock(NotificationInterruptLogger.class),
                        mPowerManager,
                        mStatusBarStateController,
                        mFakeSystemClock,
                        mFakeSystemClock,
                                mFakeGlobalSettings,
                        mock(UiEventLogger.class),
                                mFakeEventLog));
                        mUserTracker);
        mVisualInterruptionDecisionProvider.start();


        mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class));
        mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class));
        mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class));
        mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class));
+19 −20
Original line number Original line Diff line number Diff line
@@ -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.collection.render.NotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderWrapper;
import com.android.systemui.statusbar.notification.interruption.VisualInterruptionDecisionLogger;
import com.android.systemui.statusbar.notification.interruption.VisualInterruptionRefactor;
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.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.stack.domain.interactor.SharedNotificationContainerInteractor;
import com.android.systemui.statusbar.notification.stack.domain.interactor.SharedNotificationContainerInteractor;
@@ -367,9 +368,6 @@ public class BubblesTest extends SysuiTestCase {
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        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) {
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            doReturn(true).when(mTransitions).isRegistered();
            doReturn(true).when(mTransitions).isRegistered();
        }
        }
@@ -535,25 +533,26 @@ public class BubblesTest extends SysuiTestCase {
        final FakeGlobalSettings fakeGlobalSettings = new FakeGlobalSettings();
        final FakeGlobalSettings fakeGlobalSettings = new FakeGlobalSettings();
        fakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON);
        fakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON);


        TestableNotificationInterruptStateProviderImpl interruptionStateProvider =
        final VisualInterruptionDecisionProvider interruptionDecisionProvider =
                new TestableNotificationInterruptStateProviderImpl(
                VisualInterruptionDecisionProviderTestUtil.INSTANCE.createProviderByFlag(
                        mock(PowerManager.class),
                        mock(AmbientDisplayConfiguration.class),
                        mock(AmbientDisplayConfiguration.class),
                        mock(StatusBarStateController.class),
                        mock(KeyguardStateController.class),
                        mock(BatteryController.class),
                        mock(BatteryController.class),
                        mock(HeadsUpManager.class),
                        mock(DeviceProvisionedController.class),
                        mock(NotificationInterruptLogger.class),
                        new FakeEventLog(),
                        mock(Handler.class),
                        mock(NotifPipelineFlags.class),
                        mock(NotifPipelineFlags.class),
                        fakeGlobalSettings,
                        mock(HeadsUpManager.class),
                        mock(KeyguardNotificationVisibilityProvider.class),
                        mock(KeyguardNotificationVisibilityProvider.class),
                        mock(UiEventLogger.class),
                        mock(KeyguardStateController.class),
                        mock(UserTracker.class),
                        mock(Handler.class),
                        mock(DeviceProvisionedController.class),
                        mock(VisualInterruptionDecisionLogger.class),
                        mock(NotificationInterruptLogger.class),
                        mock(PowerManager.class),
                        mock(StatusBarStateController.class),
                        mock(SystemClock.class),
                        mock(SystemClock.class),
                        fakeGlobalSettings,
                        mock(UiEventLogger.class),
                        new FakeEventLog()
                        mock(UserTracker.class));
                );
        interruptionDecisionProvider.start();


        mShellTaskOrganizer = new ShellTaskOrganizer(mock(ShellInit.class),
        mShellTaskOrganizer = new ShellTaskOrganizer(mock(ShellInit.class),
                mock(ShellCommandHandler.class),
                mock(ShellCommandHandler.class),
@@ -602,7 +601,7 @@ public class BubblesTest extends SysuiTestCase {
                mock(INotificationManager.class),
                mock(INotificationManager.class),
                mIDreamManager,
                mIDreamManager,
                mVisibilityProvider,
                mVisibilityProvider,
                new NotificationInterruptStateProviderWrapper(interruptionStateProvider),
                interruptionDecisionProvider,
                mZenModeController,
                mZenModeController,
                mLockscreenUserManager,
                mLockscreenUserManager,
                mCommonNotifCollection,
                mCommonNotifCollection,