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

Commit 5c84abb1 authored by Gus Prevas's avatar Gus Prevas
Browse files

Factors out list of lifetime extenders from NotificationEntryManager.

This allows us to remove the dependency from NotificationEntryManager on
AmbientPulseManager, which at this point was just there as a lifetime
extender.

Test: atest SystemUITests, manual
Change-Id: I3c995fb81c9e628368b720d9e3ac582b2dae7a74
parent 18e35038
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.statusbar.AmbientPulseManager;
import com.android.systemui.statusbar.NotificationLifetimeExtender;
import com.android.systemui.statusbar.NotificationPresenter;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -87,8 +86,6 @@ public class NotificationEntryManager implements
            Dependency.get(DeviceProvisionedController.class);
    private final ForegroundServiceController mForegroundServiceController =
            Dependency.get(ForegroundServiceController.class);
    private final AmbientPulseManager mAmbientPulseManager =
            Dependency.get(AmbientPulseManager.class);
    private final BubbleController mBubbleController = Dependency.get(BubbleController.class);

    // Lazily retrieved dependencies
@@ -177,16 +174,20 @@ public class NotificationEntryManager implements
        mNotificationData.setHeadsUpManager(mHeadsUpManager);
        mListContainer = listContainer;

        mNotificationLifetimeExtenders.add(mHeadsUpManager);
        mNotificationLifetimeExtenders.add(mAmbientPulseManager);
        mNotificationLifetimeExtenders.add(mGutsManager);
        mNotificationLifetimeExtenders.addAll(getRemoteInputManager().getLifetimeExtenders());
        mDeviceProvisionedController.addCallback(mDeviceProvisionedListener);
    }

        for (NotificationLifetimeExtender extender : mNotificationLifetimeExtenders) {
            extender.setCallback(key -> removeNotification(key, mLatestRankingMap));
    /** Adds multiple {@link NotificationLifetimeExtender}s. */
    public void addNotificationLifetimeExtenders(List<NotificationLifetimeExtender> extenders) {
        for (NotificationLifetimeExtender extender : extenders) {
            addNotificationLifetimeExtender(extender);
        }
    }

        mDeviceProvisionedController.addCallback(mDeviceProvisionedListener);
    /** Adds a {@link NotificationLifetimeExtender}. */
    public void addNotificationLifetimeExtender(NotificationLifetimeExtender extender) {
        mNotificationLifetimeExtenders.add(extender);
        extender.setCallback(key -> removeNotification(key, mLatestRankingMap));
    }

    public NotificationData getNotificationData() {
+8 −1
Original line number Diff line number Diff line
@@ -206,9 +206,16 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
                }
            };

            NotificationGutsManager gutsManager = Dependency.get(NotificationGutsManager.class);

            mViewHierarchyManager.setUpWithPresenter(this, notifListContainer);
            mEntryManager.setUpWithPresenter(this, notifListContainer, mHeadsUpManager);
            mEntryManager.addNotificationEntryListener(notificationEntryListener);
            mEntryManager.addNotificationLifetimeExtender(mHeadsUpManager);
            mEntryManager.addNotificationLifetimeExtender(mAmbientPulseManager);
            mEntryManager.addNotificationLifetimeExtender(gutsManager);
            mEntryManager.addNotificationLifetimeExtenders(
                    remoteInputManager.getLifetimeExtenders());
            mNotificationRowBinder.setUpWithPresenter(this, notifListContainer, mHeadsUpManager,
                    mEntryManager, this);
            mNotificationInterruptionStateProvider.setUpWithPresenter(
@@ -216,7 +223,7 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
            mLockscreenUserManager.setUpWithPresenter(this);
            mMediaManager.setUpWithPresenter(this);
            mVisualStabilityManager.setUpWithPresenter(this);
            Dependency.get(NotificationGutsManager.class).setUpWithPresenter(this,
            gutsManager.setUpWithPresenter(this,
                    notifListContainer, mCheckSaveListener, mOnSettingsClickListener);

            onUserSwitched(mLockscreenUserManager.getCurrentUserId());