From 3226ea68f8a67e228428a056dbbfb55c24098def Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 15:07:58 +0000 Subject: [PATCH] [Central Surfaces] Make shade privacy chip & status icons singletons. Adding the `@Named` to `HeaderPrivacyIconsController` isn't strictly necessary, but it makes those views consistent with the battery views and ensures that the correct views are being passed in. Bug: 277762009 Test: privacy chip and status icons work correctly in the shade Change-Id: I424f96e232936346ca9c5b98e76b2b8f4de369af --- .../qs/HeaderPrivacyIconsController.kt | 6 +++-- .../com/android/systemui/shade/ShadeModule.kt | 20 +++++++++++++++++ .../phone/dagger/StatusBarViewModule.java | 22 ------------------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt index 6f645b5620080..995c6a476f0d7 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt @@ -26,7 +26,9 @@ import java.util.concurrent.Executor import javax.inject.Inject import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.shade.ShadeModule.Companion.SHADE_HEADER import com.android.systemui.statusbar.policy.DeviceProvisionedController +import javax.inject.Named interface ChipVisibilityListener { fun onChipVisibilityRefreshed(visible: Boolean) @@ -45,10 +47,10 @@ interface ChipVisibilityListener { class HeaderPrivacyIconsController @Inject constructor( private val privacyItemController: PrivacyItemController, private val uiEventLogger: UiEventLogger, - private val privacyChip: OngoingPrivacyChip, + @Named(SHADE_HEADER) private val privacyChip: OngoingPrivacyChip, private val privacyDialogController: PrivacyDialogController, private val privacyLogger: PrivacyLogger, - private val iconContainer: StatusIconContainer, + @Named(SHADE_HEADER) private val iconContainer: StatusIconContainer, private val permissionManager: PermissionManager, @Background private val backgroundExecutor: Executor, @Main private val uiExecutor: Executor, diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index d3f7bab31411b..b7551cf3408e5 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -31,9 +31,11 @@ import com.android.systemui.biometrics.AuthRippleView import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlags +import com.android.systemui.privacy.OngoingPrivacyChip import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout +import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.phone.TapAgainView import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.ConfigurationController @@ -176,5 +178,23 @@ abstract class ShadeModule { batteryController, ) } + + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesOngoingPrivacyChip( + @Named(SHADE_HEADER) header: MotionLayout, + ): OngoingPrivacyChip { + return header.findViewById(R.id.privacy_chip) + } + + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesStatusIconContainer( + @Named(SHADE_HEADER) header: MotionLayout, + ): StatusIconContainer { + return header.findViewById(R.id.statusIcons) + } } } 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 244c1dcfcb7f2..67243b6aed005 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 @@ -16,12 +16,8 @@ package com.android.systemui.statusbar.phone.dagger; -import static com.android.systemui.shade.ShadeModule.SHADE_HEADER; - import android.view.LayoutInflater; -import androidx.constraintlayout.motion.widget.MotionLayout; - import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; @@ -29,7 +25,6 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.privacy.OngoingPrivacyChip; import com.android.systemui.shade.NotificationPanelView; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationShadeWindowView; @@ -53,7 +48,6 @@ import com.android.systemui.statusbar.phone.StatusBarBoundsProvider; import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarLocationPublisher; -import com.android.systemui.statusbar.phone.StatusIconContainer; import com.android.systemui.statusbar.phone.SystemBarAttributesListener; import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment; import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger; @@ -126,22 +120,6 @@ public abstract class StatusBarViewModule { abstract ShadeViewController bindsShadeViewController( NotificationPanelViewController notificationPanelViewController); - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - public static OngoingPrivacyChip getSplitShadeOngoingPrivacyChip( - @Named(SHADE_HEADER) MotionLayout header) { - return header.findViewById(R.id.privacy_chip); - } - - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - static StatusIconContainer providesStatusIconContainer( - @Named(SHADE_HEADER) MotionLayout header) { - return header.findViewById(R.id.statusIcons); - } - /** */ @Provides @CentralSurfacesComponent.CentralSurfacesScope