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

Commit 4fd5f9aa authored by Beverly's avatar Beverly
Browse files

Update NotificationIconAreaController

- Make NIAC injectable
- Pass the list of visible notifications to the NIAC instead of relying
on the views being shown in NSSL since the new pipeline uses the
notifications from the data-layer
- In the new pipeline, make the new NotifViewManager trigger the update
of the status bar notification icons

Test: atest SystemUITests
Test: manual (turn on new notification pipeline rendering, see notif icons are
visible in the status bar and in the notification shade)

Change-Id: I885b822da7135d9bd1de2ba123ab6686491d8f6c
parent 3b6d0385
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
@@ -27,24 +27,15 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.dagger.DaggerGlobalRootComponent;
import com.android.systemui.dagger.GlobalRootComponent;
import com.android.systemui.dagger.SysUIComponent;
import com.android.systemui.dagger.WMComponent;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.screenshot.ScreenshotNotificationSmartActionsProvider;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.KeyguardBouncer;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.KeyguardStateController;

import java.util.concurrent.Executor;
@@ -151,19 +142,4 @@ public class SystemUIFactory {
                Dependency.get(KeyguardUpdateMonitor.class), bypassController,
                new Handler(Looper.getMainLooper()));
    }

    public NotificationIconAreaController createNotificationIconAreaController(Context context,
            StatusBar statusBar,
            NotificationWakeUpCoordinator wakeUpCoordinator,
            KeyguardBypassController keyguardBypassController,
            StatusBarStateController statusBarStateController,
            DemoModeController demoModeController) {
        return new NotificationIconAreaController(context, statusBar, statusBarStateController,
                wakeUpCoordinator, keyguardBypassController,
                Dependency.get(NotificationMediaManager.class),
                Dependency.get(NotificationListener.class),
                Dependency.get(DozeParameters.class),
                Dependency.get(BubbleController.class),
                demoModeController);
    }
}
+0 −2
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
import com.android.systemui.statusbar.notification.stack.StackStateAnimator
import com.android.systemui.statusbar.phone.DozeParameters
import com.android.systemui.statusbar.phone.KeyguardBypassController
import com.android.systemui.statusbar.phone.NotificationIconAreaController
import com.android.systemui.statusbar.phone.PanelExpansionListener
import com.android.systemui.statusbar.policy.HeadsUpManager
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener
@@ -98,7 +97,6 @@ class NotificationWakeUpCoordinator @Inject constructor(
        }

    private var collapsedEnoughToHide: Boolean = false
    lateinit var iconAreaController: NotificationIconAreaController

    var pulsing: Boolean = false
        set(value) {
+7 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.ShadeListBuilder
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.statusbar.phone.NotificationIconAreaController
import java.lang.RuntimeException
import javax.inject.Inject

@@ -31,7 +32,8 @@ import javax.inject.Inject
class ShadeViewManager constructor(
    listContainer: NotificationListContainer,
    logger: ShadeViewDifferLogger,
    private val viewBarn: NotifViewBarn
    private val viewBarn: NotifViewBarn,
    private val notificationIconAreaController: NotificationIconAreaController
) {
    private val rootController = RootNodeController(listContainer)
    private val viewDiffer = ShadeViewDiffer(rootController, logger)
@@ -52,6 +54,7 @@ class ShadeViewManager constructor(
            root.children.add(buildNotifNode(entry, root))
        }

        notificationIconAreaController.updateNotificationIcons(notifList)
        return root
    }

@@ -80,9 +83,10 @@ class ShadeViewManager constructor(

class ShadeViewManagerFactory @Inject constructor(
    private val logger: ShadeViewDifferLogger,
    private val viewBarn: NotifViewBarn
    private val viewBarn: NotifViewBarn,
    private val notificationIconAreaController: NotificationIconAreaController
) {
    fun create(listContainer: NotificationListContainer): ShadeViewManager {
        return ShadeViewManager(listContainer, logger, viewBarn)
        return ShadeViewManager(listContainer, logger, viewBarn, notificationIconAreaController)
    }
}
+0 −11
Original line number Diff line number Diff line
@@ -150,7 +150,6 @@ import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
import com.android.systemui.statusbar.phone.LockscreenGestureLogger.LockscreenUiEvent;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationGroupManager.OnGroupChangeListener;
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.ShadeController;
@@ -500,7 +499,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
    private ArrayList<BiConsumer<Float, Float>> mExpandedHeightListeners = new ArrayList<>();
    private int mHeadsUpInset;
    private HeadsUpAppearanceController mHeadsUpAppearanceController;
    private NotificationIconAreaController mIconAreaController;
    private final NotificationLockscreenUserManager mLockscreenUserManager;
    private final Rect mTmpRect = new Rect();
    private final FeatureFlags mFeatureFlags;
@@ -5595,11 +5593,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
        mHeadsUpAppearanceController = headsUpAppearanceController;
    }

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    public void setIconAreaController(NotificationIconAreaController controller) {
        mIconAreaController = controller;
    }

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    @VisibleForTesting
    void clearNotifications(
@@ -5790,10 +5783,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
        mNotificationPanelController = notificationPanelViewController;
    }

    public void updateIconAreaViews() {
        mIconAreaController.updateNotificationIcons();
    }

    /**
     * Set how far the wake up is when waking up from pulsing. This is a height and will adjust the
     * notification positions accordingly.
+0 −9
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
import com.android.systemui.statusbar.phone.HeadsUpTouchHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -479,10 +478,6 @@ public class NotificationStackScrollLayoutController {
        mView.updateFooter();
    }

    public void updateIconAreaViews() {
        mView.updateIconAreaViews();
    }

    public void onUpdateRowStates() {
        mView.onUpdateRowStates();
    }
@@ -504,10 +499,6 @@ public class NotificationStackScrollLayoutController {
        mView.setNotificationPanelController(notificationPanelViewController);
    }

    public void setIconAreaController(NotificationIconAreaController controller) {
        mView.setIconAreaController(controller);
    }

    public void setStatusBar(StatusBar statusBar) {
        mView.setStatusBar(statusBar);
    }
Loading