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

Commit caeb5d27 authored by Steve Elliott's avatar Steve Elliott Committed by Jeff DeCew
Browse files

Enforce Coordinator encapsulation w/ Dagger

This allows for marking Coordinators with @CoordinatorScope.
Attempting to inject a Coordinator marked with this scope elsewhere in
SysUI will result in a build error.

This does *not* prevent marking Coordinators with @SysUISingleton,
which would allow for injection elsewhere.

Fixes: 204127880
Bug: 204468557
Test: mp droid
Merged-In: Ie79d632eb150790e6a9580b2c955af861bb2d182
Change-Id: Ie79d632eb150790e6a9580b2c955af861bb2d182
parent 9a4112bf
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -23,11 +23,11 @@ import android.service.notification.StatusBarNotification;


import com.android.systemui.ForegroundServiceController;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.statusbar.notification.collection.ListEntry;
import com.android.systemui.statusbar.notification.collection.ListEntry;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner;
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
@@ -48,7 +48,7 @@ import javax.inject.Inject;
 *  frameworks/base/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener
 *  frameworks/base/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener
 *  frameworks/base/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender
 *  frameworks/base/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender
 */
 */
@SysUISingleton
@CoordinatorScope
public class AppOpsCoordinator implements Coordinator {
public class AppOpsCoordinator implements Coordinator {
    private static final String TAG = "AppOpsCoordinator";
    private static final String TAG = "AppOpsCoordinator";


+2 −2
Original line number Original line Diff line number Diff line
@@ -16,10 +16,10 @@


package com.android.systemui.statusbar.notification.collection.coordinator;
package com.android.systemui.statusbar.notification.collection.coordinator;


import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.notification.collection.NotifCollection;
import com.android.systemui.statusbar.notification.collection.NotifCollection;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.notifcollection.DismissedByUserStats;
import com.android.systemui.statusbar.notification.collection.notifcollection.DismissedByUserStats;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifDismissInterceptor;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifDismissInterceptor;
@@ -53,7 +53,7 @@ import javax.inject.Inject;
 * respond to app-cancellations (ie: remove the bubble if the app cancels the notification).
 * respond to app-cancellations (ie: remove the bubble if the app cancels the notification).
 *
 *
 */
 */
@SysUISingleton
@CoordinatorScope
public class BubbleCoordinator implements Coordinator {
public class BubbleCoordinator implements Coordinator {
    private static final String TAG = "BubbleCoordinator";
    private static final String TAG = "BubbleCoordinator";


+2 −2
Original line number Original line Diff line number Diff line
@@ -16,10 +16,10 @@


package com.android.systemui.statusbar.notification.collection.coordinator
package com.android.systemui.statusbar.notification.collection.coordinator


import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.render.NodeController
import com.android.systemui.statusbar.notification.collection.render.NodeController
@@ -34,7 +34,7 @@ import javax.inject.Inject
 * - Elevates important conversation notifications
 * - Elevates important conversation notifications
 * - Puts conversations into its own people section. @see [NotifCoordinators] for section ordering.
 * - Puts conversations into its own people section. @see [NotifCoordinators] for section ordering.
 */
 */
@SysUISingleton
@CoordinatorScope
class ConversationCoordinator @Inject constructor(
class ConversationCoordinator @Inject constructor(
    private val peopleNotificationIdentifier: PeopleNotificationIdentifier,
    private val peopleNotificationIdentifier: PeopleNotificationIdentifier,
    @PeopleHeader peopleHeaderController: NodeController
    @PeopleHeader peopleHeaderController: NodeController
+2 −2
Original line number Original line Diff line number Diff line
@@ -23,9 +23,9 @@ import android.content.pm.PackageManager;
import android.os.RemoteException;
import android.os.RemoteException;
import android.service.notification.StatusBarNotification;
import android.service.notification.StatusBarNotification;


import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;


@@ -36,7 +36,7 @@ import javax.inject.Inject;
 * Special notifications with extra permissions and tags won't be filtered out even when the
 * Special notifications with extra permissions and tags won't be filtered out even when the
 * device is unprovisioned.
 * device is unprovisioned.
 */
 */
@SysUISingleton
@CoordinatorScope
public class DeviceProvisionedCoordinator implements Coordinator {
public class DeviceProvisionedCoordinator implements Coordinator {
    private static final String TAG = "DeviceProvisionedCoordinator";
    private static final String TAG = "DeviceProvisionedCoordinator";


+4 −4
Original line number Original line Diff line number Diff line
@@ -17,17 +17,17 @@ package com.android.systemui.statusbar.notification.collection.coordinator


import android.util.ArraySet
import android.util.ArraySet
import com.android.systemui.Dumpable
import com.android.systemui.Dumpable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dump.DumpManager
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender.OnEndLifetimeExtensionCallback
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender.OnEndLifetimeExtensionCallback
import com.android.systemui.statusbar.notification.row.NotificationGuts
import com.android.systemui.statusbar.notification.row.NotificationGutsManager
import com.android.systemui.statusbar.notification.collection.render.NotifGutsViewListener
import com.android.systemui.statusbar.notification.collection.render.NotifGutsViewListener
import com.android.systemui.statusbar.notification.collection.render.NotifGutsViewManager
import com.android.systemui.statusbar.notification.collection.render.NotifGutsViewManager
import com.android.systemui.statusbar.notification.row.NotificationGuts
import com.android.systemui.statusbar.notification.row.NotificationGutsManager
import java.io.FileDescriptor
import java.io.FileDescriptor
import java.io.PrintWriter
import java.io.PrintWriter
import javax.inject.Inject
import javax.inject.Inject
@@ -38,7 +38,7 @@ private const val TAG = "GutsCoordinator"
 * Coordinates the guts displayed by the [NotificationGutsManager] with the pipeline.
 * Coordinates the guts displayed by the [NotificationGutsManager] with the pipeline.
 * Specifically, this just adds the lifetime extension necessary to keep guts from disappearing.
 * Specifically, this just adds the lifetime extension necessary to keep guts from disappearing.
 */
 */
@SysUISingleton
@CoordinatorScope
class GutsCoordinator @Inject constructor(
class GutsCoordinator @Inject constructor(
    private val notifGutsViewManager: NotifGutsViewManager,
    private val notifGutsViewManager: NotifGutsViewManager,
    private val logger: GutsCoordinatorLogger,
    private val logger: GutsCoordinatorLogger,
Loading