From 0e2230c880b0cab2d51681b50f45a667643dadc3 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Thu, 19 Aug 2021 10:17:22 -0400 Subject: [PATCH 1/3] 1/3 Begin removine SuperStatusBarViewFactory. Use the StatusBarComponent in its place. Bug: 190746471 Test: atest SystemUITests && manual Change-Id: Idc7c347d19309dbbab8c134370d31479ddf5eb86 --- .../statusbar/SuperStatusBarViewFactory.java | 34 ------------------- .../systemui/statusbar/phone/StatusBar.java | 14 ++++---- .../phone/dagger/StatusBarComponent.java | 16 +++++---- .../phone/dagger/StatusBarPhoneModule.java | 7 ++-- .../phone/dagger/StatusBarViewModule.java | 21 ++++++++++++ .../statusbar/phone/StatusBarTest.java | 12 +++---- 6 files changed, 44 insertions(+), 60 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java index e4ae560ba69ba..78ebe9bcbb9e5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java @@ -23,8 +23,6 @@ import android.view.ViewGroup; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfComponent; -import com.android.systemui.statusbar.phone.NotificationPanelView; -import com.android.systemui.statusbar.phone.NotificationShadeWindowView; import com.android.systemui.statusbar.phone.StatusBarWindowView; import com.android.systemui.util.InjectionInflationController; @@ -41,7 +39,6 @@ public class SuperStatusBarViewFactory { private final InjectionInflationController mInjectionInflationController; private final NotificationShelfComponent.Builder mNotificationShelfComponentBuilder; - private NotificationShadeWindowView mNotificationShadeWindowView; private StatusBarWindowView mStatusBarWindowView; private NotificationShelfController mNotificationShelfController; @@ -54,28 +51,6 @@ public class SuperStatusBarViewFactory { mNotificationShelfComponentBuilder = notificationShelfComponentBuilder; } - /** - * Gets the inflated {@link NotificationShadeWindowView} from - * {@link R.layout#super_notification_shade}. - * Returns a cached instance, if it has already been inflated. - */ - public NotificationShadeWindowView getNotificationShadeWindowView() { - if (mNotificationShadeWindowView != null) { - return mNotificationShadeWindowView; - } - - mNotificationShadeWindowView = (NotificationShadeWindowView) - mInjectionInflationController.injectable( - LayoutInflater.from(mContext)).inflate(R.layout.super_notification_shade, - /* root= */ null); - if (mNotificationShadeWindowView == null) { - throw new IllegalStateException( - "R.layout.super_notification_shade could not be properly inflated"); - } - - return mNotificationShadeWindowView; - } - /** * Gets the inflated {@link StatusBarWindowView} from {@link R.layout#super_status_bar}. * Returns a cached instance, if it has already been inflated. @@ -127,13 +102,4 @@ public class SuperStatusBarViewFactory { return mNotificationShelfController; } - - public NotificationPanelView getNotificationPanelView() { - NotificationShadeWindowView notificationShadeWindowView = getNotificationShadeWindowView(); - if (notificationShadeWindowView == null) { - return null; - } - - return mNotificationShadeWindowView.findViewById(R.id.notification_panel); - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 02d74316ecb2b..dda67e7923b94 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -228,11 +228,11 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.tuner.TunerService; import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation; +import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.concurrency.MessageRouter; import com.android.systemui.volume.VolumeComponent; import com.android.systemui.wmshell.BubblesManager; -import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.startingsurface.SplashscreenContentDrawer; @@ -248,7 +248,6 @@ import java.util.Optional; import java.util.concurrent.Executor; import javax.inject.Named; -import javax.inject.Provider; import dagger.Lazy; @@ -491,7 +490,7 @@ public class StatusBar extends SystemUI implements protected NotificationShadeWindowViewController mNotificationShadeWindowViewController; private final DozeParameters mDozeParameters; private final Lazy mBiometricUnlockControllerLazy; - private final Provider mStatusBarComponentBuilder; + private final StatusBarComponent.Factory mStatusBarComponentFactory; private final PluginManager mPluginManager; private final Optional mSplitScreenOptional; private final StatusBarNotificationActivityStarter.Builder @@ -744,7 +743,7 @@ public class StatusBar extends SystemUI implements DozeScrimController dozeScrimController, VolumeComponent volumeComponent, CommandQueue commandQueue, - Provider statusBarComponentBuilder, + StatusBarComponent.Factory statusBarComponentFactory, PluginManager pluginManager, Optional splitScreenOptional, LightsOutNotifController lightsOutNotifController, @@ -841,7 +840,7 @@ public class StatusBar extends SystemUI implements mNotificationShadeDepthControllerLazy = notificationShadeDepthControllerLazy; mVolumeComponent = volumeComponent; mCommandQueue = commandQueue; - mStatusBarComponentBuilder = statusBarComponentBuilder; + mStatusBarComponentFactory = statusBarComponentFactory; mPluginManager = pluginManager; mSplitScreenOptional = splitScreenOptional; mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder; @@ -1533,9 +1532,8 @@ public class StatusBar extends SystemUI implements } private void inflateStatusBarWindow() { - mNotificationShadeWindowView = mSuperStatusBarViewFactory.getNotificationShadeWindowView(); - StatusBarComponent statusBarComponent = mStatusBarComponentBuilder.get() - .statusBarWindowView(mNotificationShadeWindowView).build(); + StatusBarComponent statusBarComponent = mStatusBarComponentFactory.create(); + mNotificationShadeWindowView = statusBarComponent.getNotificationShadeWindowView(); mNotificationShadeWindowViewController = statusBarComponent .getNotificationShadeWindowViewController(); mNotificationShadeWindowController.setNotificationShadeView(mNotificationShadeWindowView); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java index d408c0cc32670..a5ff9e2fdf96f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java @@ -34,7 +34,6 @@ import java.lang.annotation.Retention; import javax.inject.Scope; -import dagger.BindsInstance; import dagger.Subcomponent; /** @@ -46,11 +45,9 @@ public interface StatusBarComponent { /** * Builder for {@link StatusBarComponent}. */ - @Subcomponent.Builder - interface Builder { - @BindsInstance Builder statusBarWindowView( - NotificationShadeWindowView notificationShadeWindowView); - StatusBarComponent build(); + @Subcomponent.Factory + interface Factory { + StatusBarComponent create(); } /** @@ -61,6 +58,13 @@ public interface StatusBarComponent { @Scope @interface StatusBarScope {} + /** + * Creates a {@link NotificationShadeWindowView}/ + * @return + */ + @StatusBarScope + NotificationShadeWindowView getNotificationShadeWindowView(); + /** * Creates a NotificationShadeWindowViewController. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java index b36c45e7f8ef9..e11ef0ac7ef69 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java @@ -104,11 +104,11 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.tuner.TunerService; import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation; +import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.concurrency.MessageRouter; import com.android.systemui.volume.VolumeComponent; import com.android.systemui.wmshell.BubblesManager; -import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.startingsurface.StartingSurface; @@ -117,7 +117,6 @@ import java.util.Optional; import java.util.concurrent.Executor; import javax.inject.Named; -import javax.inject.Provider; import dagger.Lazy; import dagger.Module; @@ -187,7 +186,7 @@ public interface StatusBarPhoneModule { DozeScrimController dozeScrimController, VolumeComponent volumeComponent, CommandQueue commandQueue, - Provider statusBarComponentBuilder, + StatusBarComponent.Factory statusBarComponentFactory, PluginManager pluginManager, Optional splitScreenOptional, LightsOutNotifController lightsOutNotifController, @@ -281,7 +280,7 @@ public interface StatusBarPhoneModule { dozeScrimController, volumeComponent, commandQueue, - statusBarComponentBuilder, + statusBarComponentFactory, pluginManager, splitScreenOptional, lightsOutNotifController, 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 0e83eda2734a2..c5fba13dde3cb 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 @@ -17,6 +17,8 @@ package com.android.systemui.statusbar.phone.dagger; import android.annotation.Nullable; +import android.content.Context; +import android.view.LayoutInflater; import android.view.View; import com.android.keyguard.LockIconView; @@ -26,6 +28,7 @@ import com.android.systemui.biometrics.AuthRippleView; import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationShadeWindowView; import com.android.systemui.statusbar.phone.TapAgainView; +import com.android.systemui.util.InjectionInflationController; import javax.inject.Named; @@ -37,6 +40,24 @@ public abstract class StatusBarViewModule { public static final String SPLIT_SHADE_HEADER = "split_shade_header"; + /** */ + @Provides + @StatusBarComponent.StatusBarScope + public static NotificationShadeWindowView providesNotificationShadeWindowView( + InjectionInflationController injectionInflationController, + Context context) { + NotificationShadeWindowView notificationShadeWindowView = (NotificationShadeWindowView) + injectionInflationController.injectable( + LayoutInflater.from(context)).inflate(R.layout.super_notification_shade, + /* root= */ null); + if (notificationShadeWindowView == null) { + throw new IllegalStateException( + "R.layout.super_notification_shade could not be properly inflated"); + } + + return notificationShadeWindowView; + } + /** */ @Provides @StatusBarComponent.StatusBarScope diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 6c59c3e27f238..1adaee2a9f8fb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -140,12 +140,12 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.tuner.TunerService; import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation; +import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.MessageRouterImpl; import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.volume.VolumeComponent; import com.android.systemui.wmshell.BubblesManager; -import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.startingsurface.StartingSurface; @@ -160,8 +160,6 @@ import java.io.ByteArrayOutputStream; import java.io.PrintWriter; import java.util.Optional; -import javax.inject.Provider; - import dagger.Lazy; @SmallTest @@ -235,8 +233,7 @@ public class StatusBarTest extends SysuiTestCase { @Mock private ViewMediatorCallback mKeyguardVieMediatorCallback; @Mock private VolumeComponent mVolumeComponent; @Mock private CommandQueue mCommandQueue; - @Mock private Provider mStatusBarComponentBuilderProvider; - @Mock private StatusBarComponent.Builder mStatusBarComponentBuilder; + @Mock private StatusBarComponent.Factory mStatusBarComponentFactory; @Mock private StatusBarComponent mStatusBarComponent; @Mock private PluginManager mPluginManager; @Mock private LegacySplitScreen mLegacySplitScreen; @@ -341,8 +338,7 @@ public class StatusBarTest extends SysuiTestCase { when(mLockscreenWallpaperLazy.get()).thenReturn(mLockscreenWallpaper); when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController); - when(mStatusBarComponentBuilderProvider.get()).thenReturn(mStatusBarComponentBuilder); - when(mStatusBarComponentBuilder.build()).thenReturn(mStatusBarComponent); + when(mStatusBarComponentFactory.create()).thenReturn(mStatusBarComponent); when(mStatusBarComponent.getNotificationShadeWindowViewController()).thenReturn( mNotificationShadeWindowViewController); @@ -407,7 +403,7 @@ public class StatusBarTest extends SysuiTestCase { mDozeScrimController, mVolumeComponent, mCommandQueue, - mStatusBarComponentBuilderProvider, + mStatusBarComponentFactory, mPluginManager, Optional.of(mLegacySplitScreen), mLightsOutNotifController, From b00611cfd9991103103b7038952b9573e4de5c79 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Thu, 19 Aug 2021 11:29:56 -0400 Subject: [PATCH 2/3] 2/3 Remove SuperStatusBarViewFactory#getNotificationShelfController Refactor its code to live in the StatusBarComponent and StatusBarViewModule. Bug: 190746471 Test: atest SystemUITests && manual Change-Id: Id851da5accd9931d5646886f739c83f67e87179e --- .../statusbar/SuperStatusBarViewFactory.java | 40 +---------------- .../systemui/statusbar/phone/StatusBar.java | 12 ++--- .../phone/dagger/StatusBarComponent.java | 10 +++++ .../phone/dagger/StatusBarViewModule.java | 44 +++++++++++++++++++ 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java index 78ebe9bcbb9e5..b8ff298b532c0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java @@ -18,11 +18,9 @@ package com.android.systemui.statusbar; import android.content.Context; import android.view.LayoutInflater; -import android.view.ViewGroup; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfComponent; import com.android.systemui.statusbar.phone.StatusBarWindowView; import com.android.systemui.util.InjectionInflationController; @@ -37,18 +35,14 @@ public class SuperStatusBarViewFactory { private final Context mContext; private final InjectionInflationController mInjectionInflationController; - private final NotificationShelfComponent.Builder mNotificationShelfComponentBuilder; private StatusBarWindowView mStatusBarWindowView; - private NotificationShelfController mNotificationShelfController; @Inject public SuperStatusBarViewFactory(Context context, - InjectionInflationController injectionInflationController, - NotificationShelfComponent.Builder notificationShelfComponentBuilder) { + InjectionInflationController injectionInflationController) { mContext = context; mInjectionInflationController = injectionInflationController; - mNotificationShelfComponentBuilder = notificationShelfComponentBuilder; } /** @@ -70,36 +64,4 @@ public class SuperStatusBarViewFactory { } return mStatusBarWindowView; } - - /** - * Gets the inflated {@link NotificationShelf} from - * {@link R.layout#status_bar_notification_shelf}. - * Returns a cached instance, if it has already been inflated. - * - * @param container the expected container to hold the {@link NotificationShelf}. The view - * isn't immediately attached, but the layout params of this view is used - * during inflation. - */ - public NotificationShelfController getNotificationShelfController(ViewGroup container) { - if (mNotificationShelfController != null) { - return mNotificationShelfController; - } - - NotificationShelf view = (NotificationShelf) LayoutInflater.from(mContext) - .inflate(R.layout.status_bar_notification_shelf, container, /* attachToRoot= */ - false); - - if (view == null) { - throw new IllegalStateException( - "R.layout.status_bar_notification_shelf could not be properly inflated"); - } - - NotificationShelfComponent component = mNotificationShelfComponentBuilder - .notificationShelf(view) - .build(); - mNotificationShelfController = component.getNotificationShelfController(); - mNotificationShelfController.init(); - - return mNotificationShelfController; - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index dda67e7923b94..154b04782a66a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1107,14 +1107,10 @@ public class StatusBar extends SystemUI implements // TODO: Deal with the ugliness that comes from having some of the statusbar broken out // into fragments, but the rest here, it leaves some awkward lifecycle and whatnot. - mStackScrollerController = - mNotificationPanelViewController.getNotificationStackScrollLayoutController(); - mStackScroller = mStackScrollerController.getView(); NotificationListContainer notifListContainer = mStackScrollerController.getNotificationListContainer(); mNotificationLogger.setUpWithContainer(notifListContainer); - inflateShelf(); mNotificationIconAreaController.setupShelf(mNotificationShelfController); mNotificationPanelViewController.addExpansionListener(mWakeUpCoordinator); mNotificationPanelViewController.addExpansionListener( @@ -1526,11 +1522,6 @@ public class StatusBar extends SystemUI implements }; } - private void inflateShelf() { - mNotificationShelfController = mSuperStatusBarViewFactory - .getNotificationShelfController(mStackScroller); - } - private void inflateStatusBarWindow() { StatusBarComponent statusBarComponent = mStatusBarComponentFactory.create(); mNotificationShadeWindowView = statusBarComponent.getNotificationShadeWindowView(); @@ -1542,7 +1533,10 @@ public class StatusBar extends SystemUI implements mPhoneStatusBarWindow = mSuperStatusBarViewFactory.getStatusBarWindowView(); mNotificationPanelViewController = statusBarComponent.getNotificationPanelViewController(); statusBarComponent.getLockIconViewController().init(); + mStackScrollerController = statusBarComponent.getNotificationStackScrollLayoutController(); + mStackScroller = mStackScrollerController.getView(); + mNotificationShelfController = statusBarComponent.getNotificationShelfController(); mAuthRippleController = statusBarComponent.getAuthRippleController(); mAuthRippleController.init(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java index a5ff9e2fdf96f..418f5884ef62e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarComponent.java @@ -20,6 +20,8 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; import com.android.keyguard.LockIconViewController; import com.android.systemui.biometrics.AuthRippleController; +import com.android.systemui.statusbar.NotificationShelfController; +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; import com.android.systemui.statusbar.phone.NotificationPanelViewController; import com.android.systemui.statusbar.phone.NotificationShadeWindowView; import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController; @@ -65,6 +67,14 @@ public interface StatusBarComponent { @StatusBarScope NotificationShadeWindowView getNotificationShadeWindowView(); + /** */ + @StatusBarScope + NotificationShelfController getNotificationShelfController(); + + /** */ + @StatusBarScope + NotificationStackScrollLayoutController getNotificationStackScrollLayoutController(); + /** * Creates a NotificationShadeWindowViewController. */ 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 c5fba13dde3cb..ecf3b86561b90 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 @@ -25,6 +25,11 @@ import com.android.keyguard.LockIconView; import com.android.systemui.R; import com.android.systemui.battery.BatteryMeterView; import com.android.systemui.biometrics.AuthRippleView; +import com.android.systemui.statusbar.NotificationShelf; +import com.android.systemui.statusbar.NotificationShelfController; +import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfComponent; +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationShadeWindowView; import com.android.systemui.statusbar.phone.TapAgainView; @@ -58,6 +63,45 @@ public abstract class StatusBarViewModule { return notificationShadeWindowView; } + /** */ + @Provides + @StatusBarComponent.StatusBarScope + public static NotificationStackScrollLayout providesNotificationStackScrollLayout( + NotificationStackScrollLayoutController notificationStackScrollLayoutController) { + return notificationStackScrollLayoutController.getView(); + } + + /** */ + @Provides + @StatusBarComponent.StatusBarScope + public static NotificationShelf providesNotificationShelf(LayoutInflater layoutInflater, + NotificationStackScrollLayout notificationStackScrollLayout) { + NotificationShelf view = (NotificationShelf) layoutInflater.inflate( + R.layout.status_bar_notification_shelf, notificationStackScrollLayout, false); + + if (view == null) { + throw new IllegalStateException( + "R.layout.status_bar_notification_shelf could not be properly inflated"); + } + return view; + } + + /** */ + @Provides + @StatusBarComponent.StatusBarScope + public static NotificationShelfController providesStatusBarWindowView( + NotificationShelfComponent.Builder notificationShelfComponentBuilder, + NotificationShelf notificationShelf) { + NotificationShelfComponent component = notificationShelfComponentBuilder + .notificationShelf(notificationShelf) + .build(); + NotificationShelfController notificationShelfController = + component.getNotificationShelfController(); + notificationShelfController.init(); + + return notificationShelfController; + } + /** */ @Provides @StatusBarComponent.StatusBarScope From d10975311ed633e3ab5648fb517a605efae7282b Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Thu, 19 Aug 2021 14:01:40 -0400 Subject: [PATCH 3/3] 3/3 Remove SuperStatusBarViewFactory. StatusBarWindowView now has a provider defined in SystemUIModule. Can we move it to StatusBarScope easily? Can we move it to SysUI/SysUIG such that Auto/TV/Arc etc don't have to thing about it? Bug: 190746471 Test: atest SystemUITests Change-Id: I4c44e6723476df0797a7d0ac0ac8ef7f17ad7734 --- .../systemui/dagger/SystemUIModule.java | 19 ++++++ .../statusbar/SuperStatusBarViewFactory.java | 67 ------------------- .../SystemEventChipAnimationController.kt | 7 +- ...NotificationShadeWindowViewController.java | 12 ++-- .../systemui/statusbar/phone/StatusBar.java | 15 ++--- .../phone/StatusBarWindowController.java | 11 ++- .../phone/dagger/StatusBarPhoneModule.java | 6 +- .../NotificationShadeWindowViewTest.java | 5 +- .../statusbar/phone/StatusBarTest.java | 5 +- 9 files changed, 42 insertions(+), 105 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java index 55aad5d5d145d..d333341ccd623 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java @@ -18,6 +18,7 @@ package com.android.systemui.dagger; import android.app.INotificationManager; import android.content.Context; +import android.view.LayoutInflater; import androidx.annotation.Nullable; @@ -26,6 +27,7 @@ import com.android.keyguard.clock.ClockModule; import com.android.keyguard.dagger.KeyguardBouncerComponent; import com.android.systemui.BootCompleteCache; import com.android.systemui.BootCompleteCacheImpl; +import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.appops.dagger.AppOpsModule; import com.android.systemui.assist.AssistModule; @@ -61,6 +63,7 @@ import com.android.systemui.statusbar.notification.row.dagger.NotificationRowCom import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfComponent; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; +import com.android.systemui.statusbar.phone.StatusBarWindowView; import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.HeadsUpManager; @@ -69,6 +72,7 @@ import com.android.systemui.statusbar.policy.dagger.SmartRepliesInflationModule; import com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule; import com.android.systemui.tuner.dagger.TunerModule; import com.android.systemui.user.UserModule; +import com.android.systemui.util.InjectionInflationController; import com.android.systemui.util.concurrency.SysUIConcurrencyModule; import com.android.systemui.util.dagger.UtilModule; import com.android.systemui.util.sensors.SensorModule; @@ -198,4 +202,19 @@ public abstract class SystemUIModule { groupManager, entryManager, notifPipeline, sysUiState, featureFlags, dumpManager, sysuiMainExecutor)); } + + @Provides + @SysUISingleton + static StatusBarWindowView providesStatusBarWindowView(Context context, + InjectionInflationController injectionInflationController) { + StatusBarWindowView view = + (StatusBarWindowView) injectionInflationController.injectable( + LayoutInflater.from(context)).inflate(R.layout.super_status_bar, + /* root= */ null); + if (view == null) { + throw new IllegalStateException( + "R.layout.super_status_bar could not be properly inflated"); + } + return view; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java deleted file mode 100644 index b8ff298b532c0..0000000000000 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.statusbar; - -import android.content.Context; -import android.view.LayoutInflater; - -import com.android.systemui.R; -import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.statusbar.phone.StatusBarWindowView; -import com.android.systemui.util.InjectionInflationController; - -import javax.inject.Inject; - -/** - * Creates a single instance of super_status_bar and super_notification_shade that can be shared - * across various system ui objects. - */ -@SysUISingleton -public class SuperStatusBarViewFactory { - - private final Context mContext; - private final InjectionInflationController mInjectionInflationController; - - private StatusBarWindowView mStatusBarWindowView; - - @Inject - public SuperStatusBarViewFactory(Context context, - InjectionInflationController injectionInflationController) { - mContext = context; - mInjectionInflationController = injectionInflationController; - } - - /** - * Gets the inflated {@link StatusBarWindowView} from {@link R.layout#super_status_bar}. - * Returns a cached instance, if it has already been inflated. - */ - public StatusBarWindowView getStatusBarWindowView() { - if (mStatusBarWindowView != null) { - return mStatusBarWindowView; - } - - mStatusBarWindowView = - (StatusBarWindowView) mInjectionInflationController.injectable( - LayoutInflater.from(mContext)).inflate(R.layout.super_status_bar, - /* root= */ null); - if (mStatusBarWindowView == null) { - throw new IllegalStateException( - "R.layout.super_status_bar could not be properly inflated"); - } - return mStatusBarWindowView; - } -} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt index 7291b5a8be3b7..589446f3b075e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt @@ -24,13 +24,10 @@ import android.view.View import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout - import com.android.systemui.R -import com.android.systemui.statusbar.SuperStatusBarViewFactory import com.android.systemui.statusbar.phone.StatusBarLocationPublisher import com.android.systemui.statusbar.phone.StatusBarWindowController import com.android.systemui.statusbar.phone.StatusBarWindowView - import javax.inject.Inject /** @@ -38,7 +35,7 @@ import javax.inject.Inject */ class SystemEventChipAnimationController @Inject constructor( private val context: Context, - private val statusBarViewFactory: SuperStatusBarViewFactory, + private val statusBarWindowView: StatusBarWindowView, private val statusBarWindowController: StatusBarWindowController, private val locationPublisher: StatusBarLocationPublisher ) : SystemStatusChipAnimationCallback { @@ -51,7 +48,6 @@ class SystemEventChipAnimationController @Inject constructor( private lateinit var animationWindowView: FrameLayout private lateinit var animationDotView: View - private lateinit var statusBarWindowView: StatusBarWindowView private var currentAnimatedView: View? = null // TODO: move to dagger @@ -125,7 +121,6 @@ class SystemEventChipAnimationController @Inject constructor( private fun init() { initialized = true - statusBarWindowView = statusBarViewFactory.statusBarWindowView animationWindowView = LayoutInflater.from(context) .inflate(R.layout.system_event_animation_window, null) as FrameLayout animationDotView = animationWindowView.findViewById(R.id.dot_view) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java index b5d9bd67bd2d9..8b9dd1d5e2077 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java @@ -47,7 +47,6 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.PulseExpansionHandler; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationEntryManager; @@ -106,7 +105,7 @@ public class NotificationShadeWindowViewController { private boolean mExpandingBelowNotch; private final DockManager mDockManager; private final NotificationPanelViewController mNotificationPanelViewController; - private final SuperStatusBarViewFactory mStatusBarViewFactory; + private final StatusBarWindowView mStatusBarWindowView; // Used for determining view / touch intersection private int[] mTempLocation = new int[2]; @@ -136,7 +135,7 @@ public class NotificationShadeWindowViewController { NotificationShadeDepthController depthController, NotificationShadeWindowView notificationShadeWindowView, NotificationPanelViewController notificationPanelViewController, - SuperStatusBarViewFactory statusBarViewFactory, + StatusBarWindowView statusBarWindowView, NotificationStackScrollLayoutController notificationStackScrollLayoutController, StatusBarKeyguardViewManager statusBarKeyguardViewManager) { mInjectionInflationController = injectionInflationController; @@ -160,7 +159,7 @@ public class NotificationShadeWindowViewController { mDockManager = dockManager; mNotificationPanelViewController = notificationPanelViewController; mDepthController = depthController; - mStatusBarViewFactory = statusBarViewFactory; + mStatusBarWindowView = statusBarWindowView; mNotificationStackScrollLayoutController = notificationStackScrollLayoutController; mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; @@ -465,11 +464,10 @@ public class NotificationShadeWindowViewController { public void setStatusBarView(PhoneStatusBarView statusBarView) { mStatusBarView = statusBarView; - if (statusBarView != null && mStatusBarViewFactory != null) { + if (statusBarView != null) { mBarTransitions = new PhoneStatusBarTransitions( statusBarView, - mStatusBarViewFactory.getStatusBarWindowView() - .findViewById(R.id.status_bar_container)); + mStatusBarWindowView.findViewById(R.id.status_bar_container)); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 154b04782a66a..84665ab23a2e3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -194,7 +194,6 @@ import com.android.systemui.statusbar.OperatorNameViewController; import com.android.systemui.statusbar.PowerButtonReveal; import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.StatusBarState; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.notification.DynamicPrivacyController; @@ -458,7 +457,6 @@ public class StatusBar extends SystemUI implements private final Point mCurrentDisplaySize = new Point(); protected NotificationShadeWindowView mNotificationShadeWindowView; - protected StatusBarWindowView mPhoneStatusBarWindow; protected PhoneStatusBarView mStatusBarView; private PhoneStatusBarViewController mPhoneStatusBarViewController; private AuthRippleController mAuthRippleController; @@ -496,7 +494,7 @@ public class StatusBar extends SystemUI implements private final StatusBarNotificationActivityStarter.Builder mStatusBarNotificationActivityStarterBuilder; private final ShadeController mShadeController; - private final SuperStatusBarViewFactory mSuperStatusBarViewFactory; + private final StatusBarWindowView mStatusBarWindowView; private final LightsOutNotifController mLightsOutNotifController; private final InitController mInitController; @@ -750,7 +748,7 @@ public class StatusBar extends SystemUI implements StatusBarNotificationActivityStarter.Builder statusBarNotificationActivityStarterBuilder, ShadeController shadeController, - SuperStatusBarViewFactory superStatusBarViewFactory, + StatusBarWindowView statusBarWindowView, StatusBarKeyguardViewManager statusBarKeyguardViewManager, ViewMediatorCallback viewMediatorCallback, InitController initController, @@ -845,7 +843,7 @@ public class StatusBar extends SystemUI implements mSplitScreenOptional = splitScreenOptional; mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder; mShadeController = shadeController; - mSuperStatusBarViewFactory = superStatusBarViewFactory; + mStatusBarWindowView = statusBarWindowView; mLightsOutNotifController = lightsOutNotifController; mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; mKeyguardViewMediatorCallback = viewMediatorCallback; @@ -1119,7 +1117,7 @@ public class StatusBar extends SystemUI implements // Allow plugins to reference DarkIconDispatcher and StatusBarStateController mPluginDependencyProvider.allowPluginDependency(DarkIconDispatcher.class); mPluginDependencyProvider.allowPluginDependency(StatusBarStateController.class); - FragmentHostManager.get(mPhoneStatusBarWindow) + FragmentHostManager.get(mStatusBarWindowView) .addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> { CollapsedStatusBarFragment statusBarFragment = (CollapsedStatusBarFragment) fragment; @@ -1530,7 +1528,6 @@ public class StatusBar extends SystemUI implements mNotificationShadeWindowController.setNotificationShadeView(mNotificationShadeWindowView); mNotificationShadeWindowViewController.setupExpandedStatusBar(); mStatusBarWindowController = statusBarComponent.getStatusBarWindowController(); - mPhoneStatusBarWindow = mSuperStatusBarViewFactory.getStatusBarWindowView(); mNotificationPanelViewController = statusBarComponent.getNotificationPanelViewController(); statusBarComponent.getLockIconViewController().init(); mStackScrollerController = statusBarComponent.getNotificationStackScrollLayoutController(); @@ -1611,7 +1608,7 @@ public class StatusBar extends SystemUI implements } public StatusBarWindowView getStatusBarWindow() { - return mPhoneStatusBarWindow; + return mStatusBarWindowView; } public NotificationShadeWindowViewController getNotificationShadeWindowViewController() { @@ -2564,7 +2561,7 @@ public class StatusBar extends SystemUI implements private ActivityLaunchAnimator.Controller wrapAnimationController( ActivityLaunchAnimator.Controller animationController, boolean dismissShade) { View rootView = animationController.getLaunchContainer().getRootView(); - if (rootView == mSuperStatusBarViewFactory.getStatusBarWindowView()) { + if (rootView == mStatusBarWindowView) { // We are animating a view in the status bar. We have to make sure that the status bar // window matches the full screen during the animation and that we are expanding the // view below the other status bar text. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java index 3d3b58ae0c1f6..aec27d0ac2010 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java @@ -43,7 +43,6 @@ import android.view.WindowManager; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import javax.inject.Inject; @@ -58,14 +57,13 @@ public class StatusBarWindowController { private final Context mContext; private final WindowManager mWindowManager; private final IWindowManager mIWindowManager; - private final SuperStatusBarViewFactory mSuperStatusBarViewFactory; private final StatusBarContentInsetsProvider mContentInsetsProvider; private final Resources mResources; private int mBarHeight = -1; private final State mCurrentState = new State(); - private ViewGroup mStatusBarView; - private ViewGroup mLaunchAnimationContainer; + private final ViewGroup mStatusBarView; + private final ViewGroup mLaunchAnimationContainer; private WindowManager.LayoutParams mLp; private final WindowManager.LayoutParams mLpChanged; @@ -74,15 +72,14 @@ public class StatusBarWindowController { Context context, WindowManager windowManager, IWindowManager iWindowManager, - SuperStatusBarViewFactory superStatusBarViewFactory, + StatusBarWindowView statusBarWindowView, StatusBarContentInsetsProvider contentInsetsProvider, @Main Resources resources) { mContext = context; mWindowManager = windowManager; mIWindowManager = iWindowManager; mContentInsetsProvider = contentInsetsProvider; - mSuperStatusBarViewFactory = superStatusBarViewFactory; - mStatusBarView = mSuperStatusBarViewFactory.getStatusBarWindowView(); + mStatusBarView = statusBarWindowView; mLaunchAnimationContainer = mStatusBarView.findViewById( R.id.status_bar_launch_animation_container); mLpChanged = new WindowManager.LayoutParams(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java index e11ef0ac7ef69..a7b57b966c229 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java @@ -58,7 +58,6 @@ import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.OperatorNameViewController; import com.android.systemui.statusbar.PulseExpansionHandler; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.notification.DynamicPrivacyController; @@ -92,6 +91,7 @@ import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarLocationPublisher; import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter; import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager; +import com.android.systemui.statusbar.phone.StatusBarWindowView; import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController; import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController; import com.android.systemui.statusbar.policy.BatteryController; @@ -193,7 +193,7 @@ public interface StatusBarPhoneModule { StatusBarNotificationActivityStarter.Builder statusBarNotificationActivityStarterBuilder, ShadeController shadeController, - SuperStatusBarViewFactory superStatusBarViewFactory, + StatusBarWindowView statusBarWindowView, StatusBarKeyguardViewManager statusBarKeyguardViewManager, ViewMediatorCallback viewMediatorCallback, InitController initController, @@ -286,7 +286,7 @@ public interface StatusBarPhoneModule { lightsOutNotifController, statusBarNotificationActivityStarterBuilder, shadeController, - superStatusBarViewFactory, + statusBarWindowView, statusBarKeyguardViewManager, viewMediatorCallback, initController, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java index 6c1a3c90d83d4..9a7a55921c7dc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java @@ -41,7 +41,6 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.PulseExpansionHandler; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationEntryManager; @@ -85,7 +84,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase { @Mock private NotificationPanelViewController mNotificationPanelViewController; @Mock private NotificationStackScrollLayout mNotificationStackScrollLayout; @Mock private NotificationShadeDepthController mNotificationShadeDepthController; - @Mock private SuperStatusBarViewFactory mStatusBarViewFactory; + @Mock private StatusBarWindowView mStatusBarWindowView; @Mock private NotificationShadeWindowController mNotificationShadeWindowController; @Mock private NotificationStackScrollLayoutController mNotificationStackScrollLayoutController; @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; @@ -129,7 +128,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase { mNotificationShadeDepthController, mView, mNotificationPanelViewController, - mStatusBarViewFactory, + mStatusBarWindowView, mNotificationStackScrollLayoutController, mStatusBarKeyguardViewManager); mController.setupExpandedStatusBar(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 1adaee2a9f8fb..a1c158ebdcc82 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -109,7 +109,6 @@ import com.android.systemui.statusbar.OperatorNameViewController; import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.StatusBarStateControllerImpl; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationEntryManager; @@ -237,7 +236,7 @@ public class StatusBarTest extends SysuiTestCase { @Mock private StatusBarComponent mStatusBarComponent; @Mock private PluginManager mPluginManager; @Mock private LegacySplitScreen mLegacySplitScreen; - @Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory; + @Mock private StatusBarWindowView mStatusBarWindowView; @Mock private LightsOutNotifController mLightsOutNotifController; @Mock private ViewMediatorCallback mViewMediatorCallback; @Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager; @@ -409,7 +408,7 @@ public class StatusBarTest extends SysuiTestCase { mLightsOutNotifController, mStatusBarNotificationActivityStarterBuilder, mShadeController, - mSuperStatusBarViewFactory, + mStatusBarWindowView, mStatusBarKeyguardViewManager, mViewMediatorCallback, mInitController,