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

Commit 2e78ec4a authored by Joshua Tsuji's avatar Joshua Tsuji
Browse files

Pull shared testable subclasses into their own files.

This makes it easier to fix the tests after adding new dependencies to the BubbleController constructor.

Test: atest SystemUITests
Change-Id: Iea67826f6dd1e994dca9d6425dd85a4db2cabaf2
parent dc68d926
Loading
Loading
Loading
Loading
+0 −37
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ import static org.mockito.Mockito.when;
import android.app.IActivityManager;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.res.Resources;
import android.hardware.face.FaceManager;
import android.service.notification.ZenModeConfig;
@@ -859,42 +858,6 @@ public class BubbleControllerTest extends SysuiTestCase {
        verify(mNotificationGroupManager, times(1)).onEntryRemoved(groupSummary.getEntry());
    }

    static class TestableBubbleController extends BubbleController {
        // Let's assume surfaces can be synchronized immediately.
        TestableBubbleController(Context context,
                NotificationShadeWindowController notificationShadeWindowController,
                StatusBarStateController statusBarStateController,
                ShadeController shadeController,
                BubbleData data,
                ConfigurationController configurationController,
                NotificationInterruptionStateProvider interruptionStateProvider,
                ZenModeController zenModeController,
                NotificationLockscreenUserManager lockscreenUserManager,
                NotificationGroupManager groupManager,
                NotificationEntryManager entryManager,
                NotifPipeline notifPipeline,
                FeatureFlags featureFlags,
                DumpController dumpController) {
            super(context,
                    notificationShadeWindowController, statusBarStateController, shadeController,
                    data, Runnable::run, configurationController, interruptionStateProvider,
                    zenModeController, lockscreenUserManager, groupManager, entryManager,
                     notifPipeline, featureFlags, dumpController);
            setInflateSynchronously(true);
        }
    }

    static class TestableNotificationInterruptionStateProvider extends
            NotificationInterruptionStateProvider {

        TestableNotificationInterruptionStateProvider(Context context,
                NotificationFilter filter, StatusBarStateController controller,
                BatteryController batteryController) {
            super(context, filter, controller, batteryController);
            mUseHeadsUp = true;
        }
    }

    /**
     * Sets the bubble metadata flags for this entry. These ]flags are normally set by
     * NotificationManagerService when the notification is sent, however, these tests do not
+0 −37
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import static org.mockito.Mockito.when;
import android.app.IActivityManager;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.res.Resources;
import android.hardware.face.FaceManager;
import android.service.notification.ZenModeConfig;
@@ -788,42 +787,6 @@ public class NewNotifPipelineBubbleControllerTest extends SysuiTestCase {
                groupSummary.getEntry()));
    }

    static class TestableBubbleController extends BubbleController {
        // Let's assume surfaces can be synchronized immediately.
        TestableBubbleController(Context context,
                NotificationShadeWindowController notificationShadeWindowController,
                StatusBarStateController statusBarStateController,
                ShadeController shadeController,
                BubbleData data,
                ConfigurationController configurationController,
                NotificationInterruptionStateProvider interruptionStateProvider,
                ZenModeController zenModeController,
                NotificationLockscreenUserManager lockscreenUserManager,
                NotificationGroupManager groupManager,
                NotificationEntryManager entryManager,
                NotifPipeline notifPipeline,
                FeatureFlags featureFlags,
                DumpController dumpController) {
            super(context,
                    notificationShadeWindowController, statusBarStateController, shadeController,
                    data, Runnable::run, configurationController, interruptionStateProvider,
                    zenModeController, lockscreenUserManager, groupManager, entryManager,
                    notifPipeline, featureFlags, dumpController);
            setInflateSynchronously(true);
        }
    }

    static class TestableNotificationInterruptionStateProvider extends
            NotificationInterruptionStateProvider {

        TestableNotificationInterruptionStateProvider(Context context,
                NotificationFilter filter, StatusBarStateController controller,
                BatteryController batteryController) {
            super(context, filter, controller, batteryController);
            mUseHeadsUp = true;
        }
    }

    /**
     * Sets the bubble metadata flags for this entry. These flags are normally set by
     * NotificationManagerService when the notification is sent, however, these tests do not
+61 −0
Original line number Diff line number Diff line
/*
 * 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.bubbles;

import android.content.Context;

import com.android.systemui.DumpController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ZenModeController;

/**
 * Testable BubbleController subclass that immediately synchronizes surfaces.
 */
public class TestableBubbleController extends BubbleController {

    // Let's assume surfaces can be synchronized immediately.
    TestableBubbleController(Context context,
            NotificationShadeWindowController notificationShadeWindowController,
            StatusBarStateController statusBarStateController,
            ShadeController shadeController,
            BubbleData data,
            ConfigurationController configurationController,
            NotificationInterruptionStateProvider interruptionStateProvider,
            ZenModeController zenModeController,
            NotificationLockscreenUserManager lockscreenUserManager,
            NotificationGroupManager groupManager,
            NotificationEntryManager entryManager,
            NotifPipeline notifPipeline,
            FeatureFlags featureFlags,
            DumpController dumpController) {
        super(context,
                notificationShadeWindowController, statusBarStateController, shadeController,
                data, Runnable::run, configurationController, interruptionStateProvider,
                zenModeController, lockscreenUserManager, groupManager, entryManager,
                notifPipeline, featureFlags, dumpController);
        setInflateSynchronously(true);
    }
}
+35 −0
Original line number Diff line number Diff line
/*
 * 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.bubbles;

import android.content.Context;

import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationFilter;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.policy.BatteryController;

public class TestableNotificationInterruptionStateProvider
        extends NotificationInterruptionStateProvider {

    TestableNotificationInterruptionStateProvider(Context context,
            NotificationFilter filter, StatusBarStateController controller,
            BatteryController batteryController) {
        super(context, filter, controller, batteryController);
        mUseHeadsUp = true;
    }
}