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

Commit 482ad6a5 authored by Beverly's avatar Beverly
Browse files

Some StatusBar cleanup

- Remove AppOpsManager + ForegroundServiceController from status bar, instead
register for appOps directly in the ForegroundServiceController
- Remove DozeLog from status bar - it's dumped via DumpController
- Remove ZenController from status bar - only NSSL used it and NSSL can
get it via injection
- Remove NotifLog from StatusBar - move the notifLog for inflation from
NotificationRowBinderImpl to NEM's onAsyncInflationFinished method

Test: atest SystemUiTests
Change-Id: I9fba540c0d8af40b1d1939ff8cb06ee1f5dcc534
parent f8a28911
Loading
Loading
Loading
Loading
+0 −15
Original line number Original line Diff line number Diff line
@@ -58,18 +58,15 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.CarSystemUIFactory;
import com.android.systemui.CarSystemUIFactory;
import com.android.systemui.Dependency;
import com.android.systemui.Dependency;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.Prefs;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.classifier.FalsingLog;
import com.android.systemui.classifier.FalsingLog;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.ScreenLifecycle;
@@ -104,7 +101,6 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.logging.NotifLog;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideController;
@@ -133,7 +129,6 @@ import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;


import java.io.FileDescriptor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -246,7 +241,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
            AutoHideController autoHideController,
            AutoHideController autoHideController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            StatusBarIconController statusBarIconController,
            StatusBarIconController statusBarIconController,
            DozeLog dozeLog,
            PulseExpansionHandler pulseExpansionHandler,
            PulseExpansionHandler pulseExpansionHandler,
            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
            KeyguardBypassController keyguardBypassController,
            KeyguardBypassController keyguardBypassController,
@@ -264,10 +258,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
            NotificationEntryManager notificationEntryManager,
            NotificationEntryManager notificationEntryManager,
            NotificationInterruptionStateProvider notificationInterruptionStateProvider,
            NotificationInterruptionStateProvider notificationInterruptionStateProvider,
            NotificationViewHierarchyManager notificationViewHierarchyManager,
            NotificationViewHierarchyManager notificationViewHierarchyManager,
            ForegroundServiceController foregroundServiceController,
            AppOpsController appOpsController,
            KeyguardViewMediator keyguardViewMediator,
            KeyguardViewMediator keyguardViewMediator,
            ZenModeController zenModeController,
            NotificationAlertingManager notificationAlertingManager,
            NotificationAlertingManager notificationAlertingManager,
            DisplayMetrics displayMetrics,
            DisplayMetrics displayMetrics,
            MetricsLogger metricsLogger,
            MetricsLogger metricsLogger,
@@ -294,7 +285,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
            ConfigurationController configurationController,
            ConfigurationController configurationController,
            StatusBarWindowController statusBarWindowController,
            StatusBarWindowController statusBarWindowController,
            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuild,
            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuild,
            NotifLog notifLog,
            DozeParameters dozeParameters,
            DozeParameters dozeParameters,
            ScrimController scrimController,
            ScrimController scrimController,
            Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
            Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
@@ -317,7 +307,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
                autoHideController,
                autoHideController,
                keyguardUpdateMonitor,
                keyguardUpdateMonitor,
                statusBarIconController,
                statusBarIconController,
                dozeLog,
                pulseExpansionHandler,
                pulseExpansionHandler,
                notificationWakeUpCoordinator,
                notificationWakeUpCoordinator,
                keyguardBypassController,
                keyguardBypassController,
@@ -335,10 +324,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
                notificationEntryManager,
                notificationEntryManager,
                notificationInterruptionStateProvider,
                notificationInterruptionStateProvider,
                notificationViewHierarchyManager,
                notificationViewHierarchyManager,
                foregroundServiceController,
                appOpsController,
                keyguardViewMediator,
                keyguardViewMediator,
                zenModeController,
                notificationAlertingManager,
                notificationAlertingManager,
                displayMetrics,
                displayMetrics,
                metricsLogger,
                metricsLogger,
@@ -365,7 +351,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
                configurationController,
                configurationController,
                statusBarWindowController,
                statusBarWindowController,
                statusBarWindowViewControllerBuild,
                statusBarWindowViewControllerBuild,
                notifLog,
                dozeParameters,
                dozeParameters,
                scrimController,
                scrimController,
                null /* keyguardLiftController */,
                null /* keyguardLiftController */,
+0 −15
Original line number Original line Diff line number Diff line
@@ -24,14 +24,11 @@ import android.util.DisplayMetrics;


import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
@@ -60,7 +57,6 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.logging.NotifLog;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.AutoHideController;
@@ -87,7 +83,6 @@ import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;


import java.util.Optional;
import java.util.Optional;


@@ -115,7 +110,6 @@ public class CarStatusBarModule {
            AutoHideController autoHideController,
            AutoHideController autoHideController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            StatusBarIconController statusBarIconController,
            StatusBarIconController statusBarIconController,
            DozeLog dozeLog,
            PulseExpansionHandler pulseExpansionHandler,
            PulseExpansionHandler pulseExpansionHandler,
            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
            KeyguardBypassController keyguardBypassController,
            KeyguardBypassController keyguardBypassController,
@@ -133,10 +127,7 @@ public class CarStatusBarModule {
            NotificationEntryManager notificationEntryManager,
            NotificationEntryManager notificationEntryManager,
            NotificationInterruptionStateProvider notificationInterruptionStateProvider,
            NotificationInterruptionStateProvider notificationInterruptionStateProvider,
            NotificationViewHierarchyManager notificationViewHierarchyManager,
            NotificationViewHierarchyManager notificationViewHierarchyManager,
            ForegroundServiceController foregroundServiceController,
            AppOpsController appOpsController,
            KeyguardViewMediator keyguardViewMediator,
            KeyguardViewMediator keyguardViewMediator,
            ZenModeController zenModeController,
            NotificationAlertingManager notificationAlertingManager,
            NotificationAlertingManager notificationAlertingManager,
            DisplayMetrics displayMetrics,
            DisplayMetrics displayMetrics,
            MetricsLogger metricsLogger,
            MetricsLogger metricsLogger,
@@ -163,7 +154,6 @@ public class CarStatusBarModule {
            ConfigurationController configurationController,
            ConfigurationController configurationController,
            StatusBarWindowController statusBarWindowController,
            StatusBarWindowController statusBarWindowController,
            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuilder,
            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuilder,
            NotifLog notifLog,
            DozeParameters dozeParameters,
            DozeParameters dozeParameters,
            ScrimController scrimController,
            ScrimController scrimController,
            Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
            Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
@@ -185,7 +175,6 @@ public class CarStatusBarModule {
                autoHideController,
                autoHideController,
                keyguardUpdateMonitor,
                keyguardUpdateMonitor,
                statusBarIconController,
                statusBarIconController,
                dozeLog,
                pulseExpansionHandler,
                pulseExpansionHandler,
                notificationWakeUpCoordinator,
                notificationWakeUpCoordinator,
                keyguardBypassController,
                keyguardBypassController,
@@ -203,10 +192,7 @@ public class CarStatusBarModule {
                notificationEntryManager,
                notificationEntryManager,
                notificationInterruptionStateProvider,
                notificationInterruptionStateProvider,
                notificationViewHierarchyManager,
                notificationViewHierarchyManager,
                foregroundServiceController,
                appOpsController,
                keyguardViewMediator,
                keyguardViewMediator,
                zenModeController,
                notificationAlertingManager,
                notificationAlertingManager,
                displayMetrics,
                displayMetrics,
                metricsLogger,
                metricsLogger,
@@ -233,7 +219,6 @@ public class CarStatusBarModule {
                configurationController,
                configurationController,
                statusBarWindowController,
                statusBarWindowController,
                statusBarWindowViewControllerBuilder,
                statusBarWindowViewControllerBuilder,
                notifLog,
                dozeParameters,
                dozeParameters,
                scrimController,
                scrimController,
                lockscreenWallpaperLazy,
                lockscreenWallpaperLazy,
+10 −1
Original line number Original line Diff line number Diff line
@@ -15,12 +15,14 @@
package com.android.systemui;
package com.android.systemui;


import android.annotation.Nullable;
import android.annotation.Nullable;
import android.app.AppOpsManager;
import android.os.UserHandle;
import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.service.notification.StatusBarNotification;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.SparseArray;
import android.util.SparseArray;


import com.android.internal.messages.nano.SystemMessageProto;
import com.android.internal.messages.nano.SystemMessageProto;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;


@@ -33,14 +35,21 @@ import javax.inject.Singleton;
 */
 */
@Singleton
@Singleton
public class ForegroundServiceController {
public class ForegroundServiceController {
    private static final int[] APP_OPS = new int[] {AppOpsManager.OP_CAMERA,
            AppOpsManager.OP_SYSTEM_ALERT_WINDOW,
            AppOpsManager.OP_RECORD_AUDIO,
            AppOpsManager.OP_COARSE_LOCATION,
            AppOpsManager.OP_FINE_LOCATION};


    private final SparseArray<ForegroundServicesUserState> mUserServices = new SparseArray<>();
    private final SparseArray<ForegroundServicesUserState> mUserServices = new SparseArray<>();
    private final Object mMutex = new Object();
    private final Object mMutex = new Object();
    private final NotificationEntryManager mEntryManager;
    private final NotificationEntryManager mEntryManager;


    @Inject
    @Inject
    public ForegroundServiceController(NotificationEntryManager entryManager) {
    public ForegroundServiceController(NotificationEntryManager entryManager,
            AppOpsController appOpsController) {
        mEntryManager = entryManager;
        mEntryManager = entryManager;
        appOpsController.addCallback(APP_OPS, this::onAppOpChanged);
    }
    }


    /**
    /**
+2 −0
Original line number Original line Diff line number Diff line
@@ -261,6 +261,7 @@ public class NotificationEntryManager implements
            boolean isNew = mNotificationData.get(entry.getKey()) == null;
            boolean isNew = mNotificationData.get(entry.getKey()) == null;
            if (isNew) {
            if (isNew) {
                for (NotificationEntryListener listener : mNotificationEntryListeners) {
                for (NotificationEntryListener listener : mNotificationEntryListeners) {
                    mNotifLog.log(NotifEvent.INFLATED, entry);
                    listener.onEntryInflated(entry, inflatedFlags);
                    listener.onEntryInflated(entry, inflatedFlags);
                }
                }
                mNotificationData.add(entry);
                mNotificationData.add(entry);
@@ -270,6 +271,7 @@ public class NotificationEntryManager implements
                }
                }
            } else {
            } else {
                for (NotificationEntryListener listener : mNotificationEntryListeners) {
                for (NotificationEntryListener listener : mNotificationEntryListeners) {
                    mNotifLog.log(NotifEvent.INFLATED, entry);
                    listener.onEntryReinflated(entry);
                    listener.onEntryReinflated(entry);
                }
                }
            }
            }
+0 −4
Original line number Original line Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.systemui.statusbar.notification;
import static com.android.internal.util.Preconditions.checkNotNull;
import static com.android.internal.util.Preconditions.checkNotNull;


import com.android.internal.statusbar.NotificationVisibility;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
@@ -34,17 +33,14 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
public class NotificationListController {
public class NotificationListController {
    private final NotificationEntryManager mEntryManager;
    private final NotificationEntryManager mEntryManager;
    private final NotificationListContainer mListContainer;
    private final NotificationListContainer mListContainer;
    private final ForegroundServiceController mForegroundServiceController;
    private final DeviceProvisionedController mDeviceProvisionedController;
    private final DeviceProvisionedController mDeviceProvisionedController;


    public NotificationListController(
    public NotificationListController(
            NotificationEntryManager entryManager,
            NotificationEntryManager entryManager,
            NotificationListContainer listContainer,
            NotificationListContainer listContainer,
            ForegroundServiceController foregroundServiceController,
            DeviceProvisionedController deviceProvisionedController) {
            DeviceProvisionedController deviceProvisionedController) {
        mEntryManager = checkNotNull(entryManager);
        mEntryManager = checkNotNull(entryManager);
        mListContainer = checkNotNull(listContainer);
        mListContainer = checkNotNull(listContainer);
        mForegroundServiceController = checkNotNull(foregroundServiceController);
        mDeviceProvisionedController = checkNotNull(deviceProvisionedController);
        mDeviceProvisionedController = checkNotNull(deviceProvisionedController);
    }
    }


Loading