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

Commit d06ec138 authored by Dave Mankoff's avatar Dave Mankoff Committed by Steve Elliott
Browse files

Remove FgServiceDismissalFeatureController from NSSL

Remove ForegroundServiceDismissalFeatureController from
NotificationStackScrollLayout and put it in the
NotificationStackScrollLayoutController.

Bug: 147245740
Test: atest SystemUITests
Change-Id: Ie5eb840cbd3349ab5f69a31585a3fe108ccae322
parent bb499406
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -93,7 +93,6 @@ import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.FakeShadowView;
import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.notification.ShadeViewRefactor;
@@ -531,7 +530,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
            SysuiStatusBarStateController statusbarStateController,
            NotificationSectionsManager notificationSectionsManager,
            ForegroundServiceSectionController fgsSectionController,
            ForegroundServiceDismissalFeatureController fgsFeatureController,
            GroupMembershipManager groupMembershipManager,
            GroupExpansionManager groupExpansionManager
    ) {
@@ -586,18 +584,18 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        mGroupMembershipManager = groupMembershipManager;
        mGroupExpansionManager = groupExpansionManager;
        mStatusbarStateController = statusbarStateController;
        initializeForegroundServiceSection(fgsFeatureController);
    }

    private void initializeForegroundServiceSection(
            ForegroundServiceDismissalFeatureController featureController) {
        if (featureController.isForegroundServiceDismissalEnabled()) {
    void initializeForegroundServiceSection() {
        if (mFgsSectionView != null) {
            return;
        }

        LayoutInflater li = LayoutInflater.from(mContext);
        mFgsSectionView =
                (ForegroundServiceDungeonView) mFgsSectionController.createView(li);
        addView(mFgsSectionView, -1);
    }
    }

    void updateDismissRtlSetting(boolean dismissRtl) {
        mDismissRtl = dismissRtl;
+9 −1
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.ActivityLaunchAnimator;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
@@ -145,6 +146,7 @@ public class NotificationStackScrollLayoutController {
    private final NotificationEntryManager mNotificationEntryManager;
    private final IStatusBarService mIStatusBarService;
    private final UiEventLogger mUiEventLogger;
    private final ForegroundServiceDismissalFeatureController mFgFeatureController;
    private final KeyguardMediaController mKeyguardMediaController;
    private final SysuiStatusBarStateController mStatusBarStateController;
    private final KeyguardBypassController mKeyguardBypassController;
@@ -562,7 +564,8 @@ public class NotificationStackScrollLayoutController {
            NotifCollection notifCollection,
            NotificationEntryManager notificationEntryManager,
            IStatusBarService iStatusBarService,
            UiEventLogger uiEventLogger) {
            UiEventLogger uiEventLogger,
            ForegroundServiceDismissalFeatureController fgFeatureController) {
        mAllowLongPress = allowLongPress;
        mNotificationGutsManager = notificationGutsManager;
        mHeadsUpManager = headsUpManager;
@@ -604,6 +607,7 @@ public class NotificationStackScrollLayoutController {
        mNotificationEntryManager = notificationEntryManager;
        mIStatusBarService = iStatusBarService;
        mUiEventLogger = uiEventLogger;
        mFgFeatureController = fgFeatureController;
    }

    public void attach(NotificationStackScrollLayout view) {
@@ -615,6 +619,10 @@ public class NotificationStackScrollLayoutController {
        mView.setDismissListener((selection) -> mUiEventLogger.log(
                NotificationPanelEvent.fromSelection(selection)));

        if (mFgFeatureController.isForegroundServiceDismissalEnabled()) {
            mView.initializeForegroundServiceSection();
        }

        mSwipeHelper = mNotificationSwipeHelperBuilder
                .setSwipeDirection(SwipeHelper.X)
                .setNotificationCallback(mNotificationCallback)
+0 −1
Original line number Diff line number Diff line
@@ -150,7 +150,6 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
                mStatusBarStateController,
                mNotificationSectionsManager,
                mock(ForegroundServiceSectionController.class),
                mock(ForegroundServiceDismissalFeatureController.class),
                mGroupMembershipManger,
                mGroupExpansionManager
        );
+24 −1
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationLockscreenUserManager.UserChangedListener;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotifCollection;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
@@ -115,6 +116,13 @@ public class NotificationStackScrollerControllerTest extends SysuiTestCase {
    @Mock private NotificationEntryManager mEntryManager;
    @Mock private IStatusBarService mIStatusBarService;
    @Mock private UiEventLogger mUiEventLogger;
    @Mock private FeatureFlags mFeatureFlags;
    @Mock private NotifPipeline mNotifPipeline;
    @Mock private NotifCollection mNotifCollection;
    @Mock private NotificationEntryManager mEntryManager;
    @Mock private IStatusBarService mIStatusBarService;
    @Mock private UiEventLogger mUiEventLogger;
    @Mock private ForegroundServiceDismissalFeatureController mFgFeatureController;

    @Captor
    private ArgumentCaptor<StatusBarStateController.StateListener> mStateListenerArgumentCaptor;
@@ -157,7 +165,8 @@ public class NotificationStackScrollerControllerTest extends SysuiTestCase {
                mNotifCollection,
                mEntryManager,
                mIStatusBarService,
                mUiEventLogger
                mUiEventLogger,
                mFgFeatureController
        );

        when(mNotificationStackScrollLayout.isAttachedToWindow()).thenReturn(true);
@@ -334,6 +343,20 @@ public class NotificationStackScrollerControllerTest extends SysuiTestCase {
        verify(mUiEventLogger).log(NotificationPanelEvent.fromSelection(ROWS_ALL));
    }

    @Test
    public void testForegroundDismissaEnabled() {
        when(mFgFeatureController.isForegroundServiceDismissalEnabled()).thenReturn(true);
        mController.attach(mNotificationStackScrollLayout);
        verify(mNotificationStackScrollLayout).initializeForegroundServiceSection();
    }

    @Test
    public void testForegroundDismissaDisabled() {
        when(mFgFeatureController.isForegroundServiceDismissalEnabled()).thenReturn(false);
        mController.attach(mNotificationStackScrollLayout);
        verify(mNotificationStackScrollLayout, never()).initializeForegroundServiceSection();
    }

    private LogMaker logMatcher(int category, int type) {
        return argThat(new LogMatcher(category, type));
    }