From e684ec3813a18e736dd6690b30148ba32ae0b582 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 9 May 2023 18:39:30 +0000 Subject: [PATCH] [Central Surfaces] Make NotifQSContainer(&Controller) a singleton. Bug: 277762009 Test: compiles Test: QS & shade still work Change-Id: I25640fba97cc89724954dc7afd4e2cdd782ca5ec --- .../shade/NotificationsQSContainerController.kt | 2 ++ .../src/com/android/systemui/shade/ShadeModule.kt | 9 +++++++++ .../statusbar/phone/dagger/StatusBarViewModule.java | 10 ---------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationsQSContainerController.kt b/packages/SystemUI/src/com/android/systemui/shade/NotificationsQSContainerController.kt index 81fe3ca82257b..fba01201190e1 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationsQSContainerController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationsQSContainerController.kt @@ -27,6 +27,7 @@ import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID import androidx.constraintlayout.widget.ConstraintSet.START import androidx.constraintlayout.widget.ConstraintSet.TOP import com.android.systemui.R +import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.fragments.FragmentService import com.android.systemui.navigationbar.NavigationModeController @@ -45,6 +46,7 @@ import kotlin.reflect.KMutableProperty0 @VisibleForTesting internal const val INSET_DEBOUNCE_MILLIS = 500L +@SysUISingleton class NotificationsQSContainerController @Inject constructor( view: NotificationsQuickSettingsContainer, private val navigationModeController: NavigationModeController, diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index 44c732d8082fd..b43fb25b6a7a1 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -147,6 +147,15 @@ abstract class ShadeModule { return notificationPanelView.findViewById(R.id.shade_falsing_tap_again) } + // TODO(b/277762009): Only allow this view's controller to inject the view. See above. + @Provides + @SysUISingleton + fun providesNotificationsQuickSettingsContainer( + notificationShadeWindowView: NotificationShadeWindowView, + ): NotificationsQuickSettingsContainer { + return notificationShadeWindowView.findViewById(R.id.notification_container_parent) + } + // TODO(b/277762009): Only allow this view's controller to inject the view. See above. @Provides @SysUISingleton diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index 4ccbc5a12ea06..76409c26be8f3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -27,8 +27,6 @@ import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shade.NotificationPanelView; import com.android.systemui.shade.NotificationPanelViewController; -import com.android.systemui.shade.NotificationShadeWindowView; -import com.android.systemui.shade.NotificationsQuickSettingsContainer; import com.android.systemui.shade.ShadeExpansionStateManager; import com.android.systemui.shade.ShadeViewController; import com.android.systemui.statusbar.CommandQueue; @@ -122,14 +120,6 @@ public abstract class StatusBarViewModule { abstract ShadeViewController bindsShadeViewController( NotificationPanelViewController notificationPanelViewController); - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - public static NotificationsQuickSettingsContainer getNotificationsQuickSettingsContainer( - NotificationShadeWindowView notificationShadeWindowView) { - return notificationShadeWindowView.findViewById(R.id.notification_container_parent); - } - @Binds @IntoSet abstract StatusBarBoundsProvider.BoundsChangeListener sysBarAttrsListenerAsBoundsListener(