Make CentralSurfaces an Interface.

CentralSurfaces is now an interface. It is a very large and ugly one.
This allows us to remove the provider in StatusBarPhoneModule, and
will make it easier to control how the Optional for CentralSurfaces
is setup.

It is renamed CentralSurfacesInt temporarily to allow maintenance of
the blame and history of CentralSurfaces in CentralSurfacesImpl.

Bug: 229228871
Test: atest SystemUITests && manual
Change-Id: Iab41b70e0c65d75560010d961dcb52a11fd237f5
Merged-In: Iab41b70e0c65d75560010d961dcb52a11fd237f5
diff --git a/packages/SystemUI/proguard.flags b/packages/SystemUI/proguard.flags
index e74b6c7..0dc6c69 100644
--- a/packages/SystemUI/proguard.flags
+++ b/packages/SystemUI/proguard.flags
@@ -3,7 +3,7 @@
 
 -keep class com.android.systemui.recents.OverviewProxyRecentsImpl
 -keep class com.android.systemui.statusbar.car.CarStatusBar
--keep class com.android.systemui.statusbar.phone.CentralSurfaces
+-keep class com.android.systemui.statusbar.phone.CentralSurfacesInt
 -keep class com.android.systemui.statusbar.tv.TvStatusBar
 -keep class com.android.systemui.car.CarSystemUIFactory
 -keep class com.android.systemui.SystemUIFactory
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardViewController.java
index ca8728a..ad61462 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardViewController.java
@@ -24,7 +24,7 @@
 
 import com.android.systemui.keyguard.KeyguardViewMediator;
 import com.android.systemui.statusbar.phone.BiometricUnlockController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.NotificationPanelViewController;
 import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
@@ -183,7 +183,7 @@
     /**
      * Registers the CentralSurfaces to which this Keyguard View is mounted.
      */
-    void registerCentralSurfaces(CentralSurfaces centralSurfaces,
+    void registerCentralSurfaces(CentralSurfacesInt centralSurfaces,
             NotificationPanelViewController notificationPanelViewController,
             @Nullable PanelExpansionStateManager panelExpansionStateManager,
             BiometricUnlockController biometricUnlockController,
diff --git a/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java b/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
index 7af6f66..0221646 100644
--- a/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
@@ -24,7 +24,7 @@
 import com.android.systemui.animation.ActivityLaunchAnimator;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.plugins.ActivityStarter;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.util.Optional;
 
@@ -40,10 +40,10 @@
 @SysUISingleton
 public class ActivityStarterDelegate implements ActivityStarter {
 
-    private Lazy<Optional<CentralSurfaces>> mActualStarterOptionalLazy;
+    private Lazy<Optional<CentralSurfacesInt>> mActualStarterOptionalLazy;
 
     @Inject
-    public ActivityStarterDelegate(Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy) {
+    public ActivityStarterDelegate(Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy) {
         mActualStarterOptionalLazy = centralSurfacesOptionalLazy;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java b/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java
index bd8e44c..8c29b0c 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java
@@ -54,7 +54,7 @@
 import com.android.systemui.recents.Recents;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.StatusBarWindowCallback;
 import com.android.systemui.util.Assert;
 
@@ -180,7 +180,7 @@
     private final Optional<Recents> mRecentsOptional;
     private Locale mLocale;
     private final AccessibilityManager mA11yManager;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final NotificationShadeWindowController mNotificationShadeController;
     private final StatusBarWindowCallback mNotificationShadeCallback;
     private boolean mDismissNotificationShadeActionRegistered;
@@ -188,7 +188,7 @@
     @Inject
     public SystemActions(Context context,
             NotificationShadeWindowController notificationShadeController,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             Optional<Recents> recentsOptional) {
         super(context);
         mRecentsOptional = recentsOptional;
@@ -311,9 +311,9 @@
 
         // Saving state in instance variable since this callback is called quite often to avoid
         // binder calls
-        final Optional<CentralSurfaces> centralSurfacesOptional =
+        final Optional<CentralSurfacesInt> centralSurfacesOptional =
                 mCentralSurfacesOptionalLazy.get();
-        if (centralSurfacesOptional.map(CentralSurfaces::isPanelExpanded).orElse(false)
+        if (centralSurfacesOptional.map(CentralSurfacesInt::isPanelExpanded).orElse(false)
                 && !centralSurfacesOptional.get().isKeyguardShowing()) {
             if (!mDismissNotificationShadeActionRegistered) {
                 mA11yManager.registerSystemAction(
@@ -467,7 +467,7 @@
     }
 
     private void handleNotifications() {
-        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::animateExpandNotificationsPanel);
+        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfacesInt::animateExpandNotificationsPanel);
     }
 
     private void handleQuickSettings() {
diff --git a/packages/SystemUI/src/com/android/systemui/assist/PhoneStateMonitor.java b/packages/SystemUI/src/com/android/systemui/assist/PhoneStateMonitor.java
index dfff00b..6a7a938 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/PhoneStateMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/PhoneStateMonitor.java
@@ -36,7 +36,7 @@
 import com.android.systemui.shared.system.TaskStackChangeListener;
 import com.android.systemui.shared.system.TaskStackChangeListeners;
 import com.android.systemui.statusbar.StatusBarState;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -69,7 +69,7 @@
     };
 
     private final Context mContext;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final StatusBarStateController mStatusBarStateController;
 
     private boolean mLauncherShowing;
@@ -77,7 +77,7 @@
 
     @Inject
     PhoneStateMonitor(Context context, BroadcastDispatcher broadcastDispatcher,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             BootCompleteCache bootCompleteCache,
             StatusBarStateController statusBarStateController) {
         mContext = context;
@@ -182,7 +182,7 @@
 
     private boolean isBouncerShowing() {
         return mCentralSurfacesOptionalLazy.get()
-                .map(CentralSurfaces::isBouncerShowing).orElse(false);
+                .map(CentralSurfacesInt::isBouncerShowing).orElse(false);
     }
 
     private boolean isKeyguardLocked() {
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
index 76c1dbc..9e1951c 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
@@ -40,7 +40,7 @@
 import com.android.systemui.statusbar.commandline.Command
 import com.android.systemui.statusbar.commandline.CommandRegistry
 import com.android.systemui.statusbar.phone.BiometricUnlockController
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent.CentralSurfacesScope
 import com.android.systemui.statusbar.policy.ConfigurationController
@@ -61,7 +61,7 @@
  */
 @CentralSurfacesScope
 class AuthRippleController @Inject constructor(
-    private val centralSurfaces: CentralSurfaces,
+    private val centralSurfaces: CentralSurfacesInt,
     private val sysuiContext: Context,
     private val authController: AuthController,
     private val configurationController: ConfigurationController,
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
index bbeb66c..72a0f2f 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
@@ -67,7 +67,7 @@
 import com.android.systemui.statusbar.notification.row.dagger.ExpandableNotificationRowComponent;
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfComponent;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
 import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -178,7 +178,7 @@
     abstract Recents optionalRecents();
 
     @BindsOptionalOf
-    abstract CentralSurfaces optionalCentralSurfaces();
+    abstract CentralSurfacesInt optionalCentralSurfaces();
 
     @BindsOptionalOf
     abstract UdfpsHbmProvider optionalUdfpsHbmProvider();
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java b/packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java
index f769a23..a7580c3 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java
@@ -37,7 +37,7 @@
 import com.android.internal.logging.UiEvent;
 import com.android.internal.logging.UiEventLogger;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBouncer;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
 import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent;
@@ -80,7 +80,7 @@
 
     private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private float mCurrentExpansion;
-    private final Optional<CentralSurfaces> mCentralSurfaces;
+    private final Optional<CentralSurfacesInt> mCentralSurfaces;
 
     private VelocityTracker mVelocityTracker;
 
@@ -111,7 +111,7 @@
                         // scrolls.
                         mCapture = Math.abs(distanceY) > Math.abs(distanceX);
                         mBouncerInitiallyShowing = mCentralSurfaces
-                                .map(CentralSurfaces::isBouncerShowing)
+                                .map(CentralSurfacesInt::isBouncerShowing)
                                 .orElse(false);
 
                         if (mCapture) {
@@ -188,7 +188,7 @@
     public BouncerSwipeTouchHandler(
             DisplayMetrics displayMetrics,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
-            Optional<CentralSurfaces> centralSurfaces,
+            Optional<CentralSurfacesInt> centralSurfaces,
             NotificationShadeWindowController notificationShadeWindowController,
             ValueAnimatorCreator valueAnimatorCreator,
             VelocityTrackerFactory velocityTrackerFactory,
@@ -212,7 +212,7 @@
 
     @Override
     public void getTouchInitiationRegion(Region region) {
-        if (mCentralSurfaces.map(CentralSurfaces::isBouncerShowing).orElse(false)) {
+        if (mCentralSurfaces.map(CentralSurfacesInt::isBouncerShowing).orElse(false)) {
             region.op(new Rect(0, 0, mDisplayMetrics.widthPixels,
                             Math.round(
                                     mDisplayMetrics.heightPixels * mBouncerZoneScreenPercentage)),
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
index acb080a..a244d4b 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
@@ -121,7 +121,7 @@
 import com.android.systemui.scrim.ScrimDrawable;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
 import com.android.systemui.statusbar.VibratorHelper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.SystemUIDialog;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -236,7 +236,7 @@
     private int mDialogPressDelay = DIALOG_PRESS_DELAY; // ms
     protected Handler mMainHandler;
     private int mSmallestScreenWidthDp;
-    private final Optional<CentralSurfaces> mCentralSurfacesOptional;
+    private final Optional<CentralSurfacesInt> mCentralSurfacesOptional;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
     private final DialogLaunchAnimator mDialogLaunchAnimator;
 
@@ -344,7 +344,7 @@
             RingerModeTracker ringerModeTracker,
             @Main Handler handler,
             PackageManager packageManager,
-            Optional<CentralSurfaces> centralSurfacesOptional,
+            Optional<CentralSurfacesInt> centralSurfacesOptional,
             KeyguardUpdateMonitor keyguardUpdateMonitor,
             DialogLaunchAnimator dialogLaunchAnimator) {
         mContext = context;
@@ -426,7 +426,7 @@
         return mUiEventLogger;
     }
 
-    protected Optional<CentralSurfaces> getCentralSurfaces() {
+    protected Optional<CentralSurfacesInt> getCentralSurfaces() {
         return mCentralSurfacesOptional;
     }
 
@@ -874,7 +874,7 @@
             mUiEventLogger.log(GlobalActionsEvent.GA_EMERGENCY_DIALER_PRESS);
             if (mTelecomManager != null) {
                 // Close shade so user sees the activity
-                mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShade);
+                mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::collapseShade);
                 Intent intent = mTelecomManager.createLaunchEmergencyDialerIntent(
                         null /* number */);
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
@@ -1006,7 +1006,7 @@
                             mIActivityManager.requestInteractiveBugReport();
                         }
                         // Close shade so user sees the activity
-                        mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShade);
+                        mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::collapseShade);
                     } catch (RemoteException e) {
                     }
                 }
@@ -1026,7 +1026,7 @@
                 mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS);
                 mIActivityManager.requestFullBugReport();
                 // Close shade so user sees the activity
-                mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShade);
+                mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::collapseShade);
             } catch (RemoteException e) {
             }
             return false;
@@ -2162,7 +2162,7 @@
         protected final Runnable mOnRefreshCallback;
         private UiEventLogger mUiEventLogger;
         private GestureDetector mGestureDetector;
-        private Optional<CentralSurfaces> mCentralSurfacesOptional;
+        private Optional<CentralSurfacesInt> mCentralSurfacesOptional;
         private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
         private LockPatternUtils mLockPatternUtils;
         private float mWindowDimAmount;
@@ -2191,7 +2191,7 @@
                             float distanceY) {
                         if (distanceY < 0 && distanceY > distanceX
                                 && e1.getY() <= mCentralSurfacesOptional.map(
-                                        CentralSurfaces::getStatusBarHeight).orElse(0)) {
+                                        CentralSurfacesInt::getStatusBarHeight).orElse(0)) {
                             // Downwards scroll from top
                             openShadeAndDismiss();
                             return true;
@@ -2204,7 +2204,7 @@
                             float velocityY) {
                         if (velocityY > 0 && Math.abs(velocityY) > Math.abs(velocityX)
                                 && e1.getY() <= mCentralSurfacesOptional.map(
-                                        CentralSurfaces::getStatusBarHeight).orElse(0)) {
+                                        CentralSurfacesInt::getStatusBarHeight).orElse(0)) {
                             // Downwards fling from top
                             openShadeAndDismiss();
                             return true;
@@ -2219,7 +2219,7 @@
                 NotificationShadeWindowController notificationShadeWindowController,
                 Runnable onRefreshCallback, boolean keyguardShowing,
                 MyPowerOptionsAdapter powerAdapter, UiEventLogger uiEventLogger,
-                Optional<CentralSurfaces> centralSurfacesOptional,
+                Optional<CentralSurfacesInt> centralSurfacesOptional,
                 KeyguardUpdateMonitor keyguardUpdateMonitor,
                 LockPatternUtils lockPatternUtils) {
             // We set dismissOnDeviceLock to false because we have a custom broadcast receiver to
@@ -2265,7 +2265,7 @@
 
         private void openShadeAndDismiss() {
             mUiEventLogger.log(GlobalActionsEvent.GA_CLOSE_TAP_OUTSIDE);
-            if (mCentralSurfacesOptional.map(CentralSurfaces::isKeyguardShowing).orElse(false)) {
+            if (mCentralSurfacesOptional.map(CentralSurfacesInt::isKeyguardShowing).orElse(false)) {
                 // match existing lockscreen behavior to open QS when swiping from status bar
                 mCentralSurfacesOptional.ifPresent(
                         centralSurfaces -> centralSurfaces.animateExpandSettingsPanel(null));
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 29e940f..c45cfe9 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -126,7 +126,7 @@
 import com.android.systemui.statusbar.NotificationShadeWindowController;
 import com.android.systemui.statusbar.SysuiStatusBarStateController;
 import com.android.systemui.statusbar.phone.BiometricUnlockController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.DozeParameters;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.NotificationPanelViewController;
@@ -2816,7 +2816,7 @@
      * @param bypassController
      * @return the View Controller for the Keyguard View this class is mediating.
      */
-    public KeyguardViewController registerCentralSurfaces(CentralSurfaces centralSurfaces,
+    public KeyguardViewController registerCentralSurfaces(CentralSurfacesInt centralSurfaces,
             NotificationPanelViewController panelView,
             @Nullable PanelExpansionStateManager panelExpansionStateManager,
             BiometricUnlockController biometricUnlockController,
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
index 779292c..7bdd7ae 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
@@ -50,7 +50,7 @@
 import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shared.system.QuickStepContract;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
@@ -79,7 +79,7 @@
         Dumpable {
     private final AccessibilityManager mAccessibilityManager;
     private final Lazy<AssistManager> mAssistManagerLazy;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final UserTracker mUserTracker;
     private final SystemActions mSystemActions;
     private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver;
@@ -113,7 +113,7 @@
             SystemActions systemActions,
             OverviewProxyService overviewProxyService,
             Lazy<AssistManager> assistManagerLazy,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             NavigationModeController navigationModeController,
             UserTracker userTracker,
             DumpManager dumpManager) {
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
index 357ff38..f39b92b 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
@@ -54,8 +54,8 @@
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG_WINDOW_STATE;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.dumpBarTransitions;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.DEBUG_WINDOW_STATE;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.dumpBarTransitions;
 
 import android.annotation.IdRes;
 import android.app.ActivityTaskManager;
@@ -140,7 +140,7 @@
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 import com.android.systemui.statusbar.phone.AutoHideController;
 import com.android.systemui.statusbar.phone.BarTransitions;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.LightBarController;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
@@ -187,7 +187,7 @@
     private final Lazy<AssistManager> mAssistManagerLazy;
     private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private final SysUiState mSysUiFlagsContainer;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final ShadeController mShadeController;
     private final NotificationRemoteInputManager mNotificationRemoteInputManager;
     private final OverviewProxyService mOverviewProxyService;
@@ -499,7 +499,7 @@
             CommandQueue commandQueue,
             Optional<Pip> pipOptional,
             Optional<Recents> recentsOptional,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             ShadeController shadeController,
             NotificationRemoteInputManager notificationRemoteInputManager,
             NotificationShadeDepthController notificationShadeDepthController,
@@ -1189,13 +1189,13 @@
         // If an incoming call is ringing, HOME is totally disabled.
         // (The user is already on the InCallUI at this point,
         // and their ONLY options are to answer or reject the call.)
-        final Optional<CentralSurfaces> centralSurfacesOptional = mCentralSurfacesOptionalLazy.get();
+        final Optional<CentralSurfacesInt> centralSurfacesOptional = mCentralSurfacesOptionalLazy.get();
         switch (event.getAction()) {
             case MotionEvent.ACTION_DOWN:
                 mHomeBlockedThisTouch = false;
                 if (mTelecomManagerOptional.isPresent()
                         && mTelecomManagerOptional.get().isRinging()) {
-                    if (centralSurfacesOptional.map(CentralSurfaces::isKeyguardShowing)
+                    if (centralSurfacesOptional.map(CentralSurfacesInt::isKeyguardShowing)
                             .orElse(false)) {
                         Log.i(TAG, "Ignoring HOME; there's a ringing incoming call. " +
                                 "No heads up");
@@ -1212,7 +1212,7 @@
             case MotionEvent.ACTION_UP:
             case MotionEvent.ACTION_CANCEL:
                 mHandler.removeCallbacks(mOnVariableDurationHomeLongClick);
-                centralSurfacesOptional.ifPresent(CentralSurfaces::awakenDreams);
+                centralSurfacesOptional.ifPresent(CentralSurfacesInt::awakenDreams);
                 break;
         }
         return false;
@@ -1246,7 +1246,7 @@
                 AssistManager.INVOCATION_TYPE_KEY,
                 AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS);
         mAssistManagerLazy.get().startAssist(args);
-        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::awakenDreams);
+        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfacesInt::awakenDreams);
         mView.abortCurrentGesture();
         return true;
     }
@@ -1272,7 +1272,7 @@
             LatencyTracker.getInstance(mContext).onActionStart(
                     LatencyTracker.ACTION_TOGGLE_RECENTS);
         }
-        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::awakenDreams);
+        mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfacesInt::awakenDreams);
         mCommandQueue.toggleRecentApps();
     }
 
@@ -1454,7 +1454,7 @@
     private void checkBarModes() {
         // We only have status bar on default display now.
         if (mIsOnDefaultDisplay) {
-            mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::checkBarModes);
+            mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfacesInt::checkBarModes);
         } else {
             checkNavBarModes();
         }
@@ -1473,7 +1473,7 @@
      */
     public void checkNavBarModes() {
         final boolean anim =
-                mCentralSurfacesOptionalLazy.get().map(CentralSurfaces::isDeviceInteractive)
+                mCentralSurfacesOptionalLazy.get().map(CentralSurfacesInt::isDeviceInteractive)
                         .orElse(false)
                 && mNavigationBarWindowState != WINDOW_STATE_HIDDEN;
         getBarTransitions().transitionTo(mTransitionMode, anim);
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
index f3a3f10..9a15e1f 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
@@ -86,7 +86,7 @@
 import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.shared.system.WindowManagerWrapper;
 import com.android.systemui.statusbar.phone.AutoHideController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.LightBarTransitionsController;
 import com.android.systemui.statusbar.phone.NotificationPanelViewController;
 import com.android.wm.shell.back.BackAnimation;
@@ -1331,7 +1331,7 @@
         getContextDisplay().getRealSize(size);
 
         pw.println("NavigationBarView:");
-        pw.println(String.format("      this: " + CentralSurfaces.viewInfo(this)
+        pw.println(String.format("      this: " + CentralSurfacesInt.viewInfo(this)
                         + " " + visibilityToString(getVisibility())));
 
         getWindowVisibleDisplayFrame(r);
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
index 623bb12..5f11318 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
@@ -47,7 +47,7 @@
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.io.PrintWriter;
 import java.util.Arrays;
@@ -105,11 +105,11 @@
     private IThermalEventListener mUsbThermalEventListener;
     private final BroadcastDispatcher mBroadcastDispatcher;
     private final CommandQueue mCommandQueue;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
 
     @Inject
     public PowerUI(Context context, BroadcastDispatcher broadcastDispatcher,
-            CommandQueue commandQueue, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            CommandQueue commandQueue, Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             WarningsUI warningsUI, EnhancedEstimates enhancedEstimates,
             PowerManager powerManager) {
         super(context);
@@ -701,9 +701,9 @@
             int status = temp.getStatus();
 
             if (status >= Temperature.THROTTLING_EMERGENCY) {
-                final Optional<CentralSurfaces> centralSurfacesOptional =
+                final Optional<CentralSurfacesInt> centralSurfacesOptional =
                         mCentralSurfacesOptionalLazy.get();
-                if (!centralSurfacesOptional.map(CentralSurfaces::isDeviceInVrMode)
+                if (!centralSurfacesOptional.map(CentralSurfacesInt::isDeviceInVrMode)
                         .orElse(false)) {
                     mWarnings.showHighTemperatureWarning();
                     Slog.d(TAG, "SkinThermalEventListener: notifyThrottling was called "
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
index fbdabc7..32b54f1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
@@ -53,7 +53,7 @@
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.statusbar.phone.AutoTileManager;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.tuner.TunerService;
 import com.android.systemui.tuner.TunerService.Tunable;
@@ -101,7 +101,7 @@
     private final StatusBarIconController mIconController;
     private final ArrayList<QSFactory> mQsFactories = new ArrayList<>();
     private int mCurrentUser;
-    private final Optional<CentralSurfaces> mCentralSurfacesOptional;
+    private final Optional<CentralSurfacesInt> mCentralSurfacesOptional;
     private Context mUserContext;
     private UserTracker mUserTracker;
     private SecureSettings mSecureSettings;
@@ -120,7 +120,7 @@
             Provider<AutoTileManager> autoTiles,
             DumpManager dumpManager,
             BroadcastDispatcher broadcastDispatcher,
-            Optional<CentralSurfaces> centralSurfacesOptional,
+            Optional<CentralSurfacesInt> centralSurfacesOptional,
             QSLogger qsLogger,
             UiEventLogger uiEventLogger,
             UserTracker userTracker,
@@ -226,17 +226,17 @@
 
     @Override
     public void collapsePanels() {
-        mCentralSurfacesOptional.ifPresent(CentralSurfaces::postAnimateCollapsePanels);
+        mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::postAnimateCollapsePanels);
     }
 
     @Override
     public void forceCollapsePanels() {
-        mCentralSurfacesOptional.ifPresent(CentralSurfaces::postAnimateForceCollapsePanels);
+        mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::postAnimateForceCollapsePanels);
     }
 
     @Override
     public void openPanels() {
-        mCentralSurfacesOptional.ifPresent(CentralSurfaces::postAnimateOpenPanels);
+        mCentralSurfacesOptional.ifPresent(CentralSurfacesInt::postAnimateOpenPanels);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
index f389df0..1940be8 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
@@ -26,7 +26,7 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.shared.recents.IOverviewProxy;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.util.Optional;
 
@@ -42,7 +42,7 @@
 
     private final static String TAG = "OverviewProxyRecentsImpl";
     @Nullable
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
 
     private Context mContext;
     private Handler mHandler;
@@ -51,7 +51,7 @@
 
     @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
     @Inject
-    public OverviewProxyRecentsImpl(Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy) {
+    public OverviewProxyRecentsImpl(Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy) {
         mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy;
     }
 
@@ -109,9 +109,9 @@
                 }
             };
             // Preload only if device for current user is unlocked
-            final Optional<CentralSurfaces> centralSurfacesOptional =
+            final Optional<CentralSurfacesInt> centralSurfacesOptional =
                     mCentralSurfacesOptionalLazy.get();
-            if (centralSurfacesOptional.map(CentralSurfaces::isKeyguardShowing).orElse(false)) {
+            if (centralSurfacesOptional.map(CentralSurfacesInt::isKeyguardShowing).orElse(false)) {
                 centralSurfacesOptional.get().executeRunnableDismissingKeyguard(() -> {
                         mHandler.post(toggleRecents);
                     }, null,  true /* dismissShade */, false /* afterKeyguardGone */,
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index c723fbb..d8323c5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -101,7 +101,7 @@
 import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.NotificationPanelViewController;
 import com.android.systemui.statusbar.phone.StatusBarWindowCallback;
 import com.android.systemui.statusbar.policy.CallbackController;
@@ -145,7 +145,7 @@
 
     private final Context mContext;
     private final Optional<Pip> mPipOptional;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final Optional<SplitScreen> mSplitScreenOptional;
     private SysUiState mSysUiState;
     private final Handler mHandler;
@@ -400,7 +400,7 @@
         @Override
         public void toggleNotificationPanel() {
             verifyCallerAndClearCallingIdentityPostMain("toggleNotificationPanel", () ->
-                    mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::togglePanel));
+                    mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfacesInt::togglePanel));
         }
 
 
@@ -555,7 +555,7 @@
     @Inject
     public OverviewProxyService(Context context, CommandQueue commandQueue,
             Lazy<NavigationBarController> navBarControllerLazy,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             NavigationModeController navModeController,
             NotificationShadeWindowController statusBarWinController, SysUiState sysUiState,
             Optional<Pip> pipOptional,
diff --git a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
index c272602..1ed6a3a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
@@ -56,7 +56,7 @@
 import com.android.systemui.navigationbar.NavigationModeController;
 import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.shared.system.WindowManagerWrapper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.util.leak.RotationUtils;
 
 import java.util.ArrayList;
@@ -70,7 +70,7 @@
         NavigationModeController.ModeChangedListener {
 
     private final Context mContext;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
 
     private final AccessibilityManager mAccessibilityService;
     private final WindowManager mWindowManager;
@@ -85,7 +85,7 @@
     @Inject
     public ScreenPinningRequest(
             Context context,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy) {
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy) {
         mContext = context;
         mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy;
         mAccessibilityService = (AccessibilityManager)
@@ -269,10 +269,10 @@
                         .setVisibility(View.INVISIBLE);
             }
 
-            final Optional<CentralSurfaces> centralSurfacesOptional =
+            final Optional<CentralSurfacesInt> centralSurfacesOptional =
                     mCentralSurfacesOptionalLazy.get();
             boolean recentsVisible =
-                    centralSurfacesOptional.map(CentralSurfaces::isOverviewEnabled).orElse(false);
+                    centralSurfacesOptional.map(CentralSurfacesInt::isOverviewEnabled).orElse(false);
             boolean touchExplorationEnabled = mAccessibilityService.isTouchExplorationEnabled();
             int descriptionStringResId;
             if (QuickStepContract.isGesturalMode(mNavBarMode)) {
@@ -294,7 +294,7 @@
             }
 
             NavigationBarView navigationBarView =
-                    centralSurfacesOptional.map(CentralSurfaces::getNavigationBarView).orElse(null);
+                    centralSurfacesOptional.map(CentralSurfacesInt::getNavigationBarView).orElse(null);
             if (navigationBarView != null) {
                 ((ImageView) mLayout.findViewById(R.id.screen_pinning_back_icon))
                         .setImageDrawable(navigationBarView.getBackDrawable());
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java b/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
index daaa897..c457829 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
@@ -24,7 +24,7 @@
 import static com.android.systemui.screenshot.ScreenshotController.EXTRA_DISALLOW_ENTER_PIP;
 import static com.android.systemui.screenshot.ScreenshotController.EXTRA_ID;
 import static com.android.systemui.screenshot.ScreenshotController.EXTRA_SMART_ACTIONS_ENABLED;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.SYSTEM_DIALOG_REASON_SCREENSHOT;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.SYSTEM_DIALOG_REASON_SCREENSHOT;
 
 import android.app.ActivityOptions;
 import android.app.PendingIntent;
@@ -36,7 +36,7 @@
 import android.view.WindowManagerGlobal;
 
 import com.android.systemui.shared.system.ActivityManagerWrapper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.util.Optional;
 
@@ -49,12 +49,12 @@
 public class ActionProxyReceiver extends BroadcastReceiver {
     private static final String TAG = "ActionProxyReceiver";
 
-    private final CentralSurfaces mCentralSurfaces;
+    private final CentralSurfacesInt mCentralSurfaces;
     private final ActivityManagerWrapper mActivityManagerWrapper;
     private final ScreenshotSmartActions mScreenshotSmartActions;
 
     @Inject
-    public ActionProxyReceiver(Optional<CentralSurfaces> centralSurfacesOptional,
+    public ActionProxyReceiver(Optional<CentralSurfacesInt> centralSurfacesOptional,
             ActivityManagerWrapper activityManagerWrapper,
             ScreenshotSmartActions screenshotSmartActions) {
         mCentralSurfaces = centralSurfacesOptional.orElse(null);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 5585cde..aa80b73 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -23,7 +23,7 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.INVALID_DISPLAY;
 
-import static com.android.systemui.statusbar.phone.CentralSurfaces.ONLY_CORE_APPS;
+import static com.android.systemui.statusbar.phone.CentralSurfacesImpl.ONLY_CORE_APPS;
 
 import android.annotation.Nullable;
 import android.app.ITransientNotificationCallback;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
index c1ea6bf..f913332 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
@@ -34,7 +34,7 @@
 import com.android.systemui.statusbar.notification.row.ExpandableView
 import com.android.systemui.statusbar.notification.stack.AmbientState
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.statusbar.phone.LSShadeTransitionLogger
 import com.android.systemui.statusbar.phone.NotificationPanelViewController
@@ -78,7 +78,7 @@
     private var useSplitShade: Boolean = false
     private lateinit var nsslController: NotificationStackScrollLayoutController
     lateinit var notificationPanelController: NotificationPanelViewController
-    lateinit var centralSurfaces: CentralSurfaces
+    lateinit var centralSurfaces: CentralSurfacesInt
     lateinit var qS: QS
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
index 68d35f9..db6709a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java
@@ -34,7 +34,7 @@
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.statusbar.dagger.CentralSurfacesModule;
 import com.android.systemui.statusbar.notification.collection.NotifCollection;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.NotificationListenerWithPlugins;
 import com.android.systemui.util.time.SystemClock;
 
@@ -54,7 +54,7 @@
 @SuppressLint("OverrideAbstract")
 public class NotificationListener extends NotificationListenerWithPlugins {
     private static final String TAG = "NotificationListener";
-    private static final boolean DEBUG = CentralSurfaces.DEBUG;
+    private static final boolean DEBUG = CentralSurfacesInt.DEBUG;
     private static final long MAX_RANKING_DELAY_MILLIS = 500L;
 
     private final Context mContext;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index 76f9db4..37a5d74 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -16,9 +16,9 @@
 package com.android.systemui.statusbar;
 
 import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG_MEDIA_FAKE_ARTWORK;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.ENABLE_LOCKSCREEN_WALLPAPER;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.SHOW_LOCKSCREEN_MEDIA_ARTWORK;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.DEBUG_MEDIA_FAKE_ARTWORK;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.ENABLE_LOCKSCREEN_WALLPAPER;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.SHOW_LOCKSCREEN_MEDIA_ARTWORK;
 
 import android.annotation.MainThread;
 import android.annotation.NonNull;
@@ -66,7 +66,7 @@
 import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
 import com.android.systemui.statusbar.phone.BiometricUnlockController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.LockscreenWallpaper;
 import com.android.systemui.statusbar.phone.ScrimController;
@@ -132,7 +132,7 @@
 
     private final Context mContext;
     private final ArrayList<MediaListener> mMediaListeners;
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final MediaArtworkProcessor mMediaArtworkProcessor;
     private final Set<AsyncTask<?, ?, ?>> mProcessArtworkTasks = new ArraySet<>();
 
@@ -177,7 +177,7 @@
      */
     public NotificationMediaManager(
             Context context,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             Lazy<NotificationShadeWindowController> notificationShadeWindowController,
             NotificationVisibilityProvider visibilityProvider,
             NotificationEntryManager notificationEntryManager,
@@ -663,7 +663,7 @@
                 mNotificationShadeWindowController.get();
         boolean hideBecauseOccluded =
                 mCentralSurfacesOptionalLazy.get()
-                        .map(CentralSurfaces::isOccluded).orElse(false);
+                        .map(CentralSurfacesInt::isOccluded).orElse(false);
 
         final boolean hasArtwork = artworkDrawable != null;
         mColorExtractor.setHasMediaArtwork(hasMediaArtwork);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index d71dec8..8eac2a8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -64,7 +64,7 @@
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
 import com.android.systemui.statusbar.notification.logging.NotificationLogger;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.policy.RemoteInputUriController;
 import com.android.systemui.statusbar.policy.RemoteInputView;
 import com.android.systemui.util.DumpUtilsKt;
@@ -102,7 +102,7 @@
     private final Handler mMainHandler;
     private final ActionClickLogger mLogger;
 
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
 
     protected final Context mContext;
     protected final NotifPipelineFlags mNotifPipelineFlags;
@@ -262,7 +262,7 @@
             NotificationVisibilityProvider visibilityProvider,
             NotificationEntryManager notificationEntryManager,
             RemoteInputNotificationRebuilder rebuilder,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             StatusBarStateController statusBarStateController,
             @Main Handler mainHandler,
             RemoteInputUriController remoteInputUriController,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateController.java b/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateController.java
index 7807738..96829a0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateController.java
@@ -20,16 +20,16 @@
 
 import com.android.systemui.plugins.qs.QS;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 /**
  * Calculates and moves the QS frame vertically.
  */
 public abstract class QsFrameTranslateController {
 
-    protected CentralSurfaces mCentralSurfaces;
+    protected CentralSurfacesInt mCentralSurfaces;
 
-    public QsFrameTranslateController(CentralSurfaces centralSurfaces) {
+    public QsFrameTranslateController(CentralSurfacesInt centralSurfaces) {
         mCentralSurfaces = centralSurfaces;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateImpl.java
index 33e2245..dfdaa3c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/QsFrameTranslateImpl.java
@@ -21,7 +21,7 @@
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.plugins.qs.QS;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import javax.inject.Inject;
 
@@ -32,7 +32,7 @@
 public class QsFrameTranslateImpl extends QsFrameTranslateController {
 
     @Inject
-    public QsFrameTranslateImpl(CentralSurfaces centralSurfaces) {
+    public QsFrameTranslateImpl(CentralSurfacesInt centralSurfaces) {
         super(centralSurfaces);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java b/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java
index 2b31901..3432fe6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java
@@ -25,7 +25,7 @@
 import android.view.WindowInsetsController.Behavior;
 
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import java.lang.annotation.Retention;
 
@@ -92,7 +92,7 @@
     int getCurrentOrUpcomingState();
 
     /**
-     * Update the dozing state from {@link CentralSurfaces}'s perspective
+     * Update the dozing state from {@link CentralSurfacesInt}'s perspective
      * @param isDozing well, are we dozing?
      * @return {@code true} if the state changed, else {@code false}
      */
@@ -117,7 +117,7 @@
     void setAndInstrumentDozeAmount(View view, float dozeAmount, boolean animated);
 
     /**
-     * Update the expanded state from {@link CentralSurfaces}'s perspective
+     * Update the expanded state from {@link CentralSurfacesInt}'s perspective
      * @param expanded are we expanded?
      * @return {@code true} if the state changed, else {@code false}
      */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
index 83290af..fda5b18 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
@@ -60,7 +60,8 @@
 import com.android.systemui.statusbar.notification.collection.legacy.VisualStabilityManager;
 import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
+import com.android.systemui.statusbar.phone.CentralSurfacesImpl;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.ManagedProfileController;
 import com.android.systemui.statusbar.phone.ManagedProfileControllerImpl;
@@ -87,7 +88,7 @@
 import dagger.Provides;
 
 /**
- * This module provides instances needed to construct {@link CentralSurfaces}. These are moved to
+ * This module provides instances needed to construct {@link CentralSurfacesImpl}. These are moved to
  * this separate from {@link CentralSurfacesModule} module so that components that wish to build
  * their own version of CentralSurfaces can include just dependencies, without injecting
  * CentralSurfaces itself.
@@ -105,7 +106,7 @@
             NotificationVisibilityProvider visibilityProvider,
             NotificationEntryManager notificationEntryManager,
             RemoteInputNotificationRebuilder rebuilder,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             StatusBarStateController statusBarStateController,
             Handler mainHandler,
             RemoteInputUriController remoteInputUriController,
@@ -134,7 +135,7 @@
     @Provides
     static NotificationMediaManager provideNotificationMediaManager(
             Context context,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             Lazy<NotificationShadeWindowController> notificationShadeWindowController,
             NotificationVisibilityProvider visibilityProvider,
             NotificationEntryManager notificationEntryManager,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StartCentralSurfacesModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StartCentralSurfacesModule.kt
index fe55dea7..bf404af 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StartCentralSurfacesModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StartCentralSurfacesModule.kt
@@ -17,7 +17,8 @@
 package com.android.systemui.statusbar.dagger
 
 import com.android.systemui.CoreStartable
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
+import com.android.systemui.statusbar.phone.CentralSurfacesImpl
 import dagger.Binds
 import dagger.Module
 import dagger.multibindings.ClassKey
@@ -28,6 +29,6 @@
     /** Start the CentralSurfaces   */
     @Binds
     @IntoMap
-    @ClassKey(CentralSurfaces::class)
-    abstract fun bindsCentralSurfaces(centralSurfaces: CentralSurfaces): CoreStartable
+    @ClassKey(CentralSurfacesInt::class)
+    abstract fun bindsCentralSurfaces(centralSurfaces: CentralSurfacesImpl): CoreStartable
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
index 392145a..633f5c5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
@@ -24,7 +24,7 @@
 import com.android.systemui.DejankUtils;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.wm.shell.bubbles.Bubbles;
 
 import java.util.Optional;
@@ -39,7 +39,7 @@
     private static final String TAG = "NotificationClicker";
 
     private final NotificationClickerLogger mLogger;
-    private final Optional<CentralSurfaces> mCentralSurfacesOptional;
+    private final Optional<CentralSurfacesInt> mCentralSurfacesOptional;
     private final Optional<Bubbles> mBubblesOptional;
     private final NotificationActivityStarter mNotificationActivityStarter;
 
@@ -53,7 +53,7 @@
 
     private NotificationClicker(
             NotificationClickerLogger logger,
-            Optional<CentralSurfaces> centralSurfacesOptional,
+            Optional<CentralSurfacesInt> centralSurfacesOptional,
             Optional<Bubbles> bubblesOptional,
             NotificationActivityStarter notificationActivityStarter) {
         mLogger = logger;
@@ -137,7 +137,7 @@
 
         /** Builds an instance. */
         public NotificationClicker build(
-                Optional<CentralSurfaces> centralSurfacesOptional,
+                Optional<CentralSurfacesInt> centralSurfacesOptional,
                 Optional<Bubbles> bubblesOptional,
                 NotificationActivityStarter notificationActivityStarter
         ) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/TargetSdkResolver.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/TargetSdkResolver.kt
index c71eade..2401ffd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/TargetSdkResolver.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/TargetSdkResolver.kt
@@ -23,7 +23,7 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
 import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import javax.inject.Inject
 
 @SysUISingleton
@@ -39,7 +39,7 @@
     }
 
     private fun resolveNotificationSdk(sbn: StatusBarNotification): Int {
-        val pmUser = CentralSurfaces.getPackageManagerForUser(context, sbn.user.identifier)
+        val pmUser = CentralSurfacesInt.getPackageManagerForUser(context, sbn.user.identifier)
         var targetSdk = 0
         // Extract target SDK version.
         try {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/legacy/LegacyNotificationPresenterExtensions.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/legacy/LegacyNotificationPresenterExtensions.java
index bdbb0eb..cf1e97d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/legacy/LegacyNotificationPresenterExtensions.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/legacy/LegacyNotificationPresenterExtensions.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection.legacy;
 
-import static com.android.systemui.statusbar.phone.CentralSurfaces.SPEW;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.SPEW;
 
 import android.service.notification.StatusBarNotification;
 import android.util.Log;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
index 34c8044..02d67403 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
@@ -84,7 +84,7 @@
 import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
 import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager;
 import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.NotifActivityLaunchEventsModule;
 import com.android.systemui.statusbar.phone.NotifPanelEventsModule;
@@ -153,7 +153,7 @@
     @Provides
     static NotificationGutsManager provideNotificationGutsManager(
             Context context,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             @Main Handler mainHandler,
             @Background Handler bgHandler,
             AccessibilityManager accessibilityManager,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt
index 11ffde6..7e2470f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt
@@ -43,7 +43,7 @@
 import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder
 import com.android.systemui.statusbar.notification.row.NotifBindPipelineInitializer
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper
 import com.android.systemui.statusbar.policy.DeviceProvisionedController
 import com.android.systemui.statusbar.policy.HeadsUpManager
@@ -63,7 +63,7 @@
  */
 @SysUISingleton
 class NotificationsControllerImpl @Inject constructor(
-    private val centralSurfaces: Lazy<CentralSurfaces>,
+    private val centralSurfaces: Lazy<CentralSurfacesInt>,
     private val notifPipelineFlags: NotifPipelineFlags,
     private val notificationListener: NotificationListener,
     private val entryManager: NotificationEntryManager,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index 0ae3653..cbe6c27 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -112,7 +112,7 @@
 import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainer;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 import com.android.systemui.statusbar.notification.stack.SwipeableView;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.policy.HeadsUpManager;
 import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
@@ -398,7 +398,7 @@
 
             return isSystem;
         } else {
-            PackageManager packageManager = CentralSurfaces.getPackageManagerForUser(
+            PackageManager packageManager = CentralSurfacesInt.getPackageManagerForUser(
                     context, sbn.getUser().getIdentifier());
             Boolean isSystemNotification = null;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
index 4c69304..2e7febe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
@@ -47,7 +47,7 @@
 import com.android.systemui.statusbar.notification.InflationException;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
 import com.android.systemui.statusbar.policy.InflatedSmartReplyViewHolder;
 import com.android.systemui.statusbar.policy.SmartReplyStateInflater;
@@ -841,7 +841,7 @@
             StatusBarNotification sbn = mEntry.getSbn();
             final String ident = sbn.getPackageName() + "/0x"
                     + Integer.toHexString(sbn.getId());
-            Log.e(CentralSurfaces.TAG, "couldn't inflate view for notification " + ident, e);
+            Log.e(CentralSurfacesInt.TAG, "couldn't inflate view for notification " + ident, e);
             if (mCallback != null) {
                 mCallback.handleInflationException(mRow.getEntry(),
                         new InflationException("Couldn't inflate contentViews" + e));
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
index 8a7155a..917e84a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
@@ -70,7 +70,7 @@
 import com.android.systemui.statusbar.notification.dagger.NotificationsModule;
 import com.android.systemui.statusbar.notification.row.NotificationInfo.CheckSaveListener;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 import com.android.systemui.wmshell.BubblesManager;
@@ -119,7 +119,7 @@
     @VisibleForTesting
     protected String mKeyToRemoveOnGutsClosed;
 
-    private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    private final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final Handler mMainHandler;
     private final Handler mBgHandler;
     private final Optional<BubblesManager> mBubblesManagerOptional;
@@ -138,7 +138,7 @@
      * Injected constructor. See {@link NotificationsModule}.
      */
     public NotificationGutsManager(Context context,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             @Main Handler mainHandler,
             @Background Handler bgHandler,
             AccessibilityManager accessibilityManager,
@@ -341,7 +341,7 @@
         }
         StatusBarNotification sbn = row.getEntry().getSbn();
         UserHandle userHandle = sbn.getUser();
-        PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(mContext,
+        PackageManager pmUser = CentralSurfacesInt.getPackageManagerForUser(mContext,
                 userHandle.getIdentifier());
 
         feedbackInfo.bindGuts(pmUser, sbn, row.getEntry(), row, mAssistantFeedbackController);
@@ -362,7 +362,7 @@
         // Settings link is only valid for notifications that specify a non-system user
         NotificationInfo.OnSettingsClickListener onSettingsClick = null;
         UserHandle userHandle = sbn.getUser();
-        PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(
+        PackageManager pmUser = CentralSurfacesInt.getPackageManagerForUser(
                 mContext, userHandle.getIdentifier());
         final NotificationInfo.OnAppSettingsClickListener onAppSettingsClick =
                 (View v, Intent intent) -> {
@@ -415,7 +415,7 @@
         // Settings link is only valid for notifications that specify a non-system user
         NotificationInfo.OnSettingsClickListener onSettingsClick = null;
         UserHandle userHandle = sbn.getUser();
-        PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(
+        PackageManager pmUser = CentralSurfacesInt.getPackageManagerForUser(
                 mContext, userHandle.getIdentifier());
 
         if (!userHandle.equals(UserHandle.ALL)
@@ -457,7 +457,7 @@
         // Settings link is only valid for notifications that specify a non-system user
         NotificationConversationInfo.OnSettingsClickListener onSettingsClick = null;
         UserHandle userHandle = sbn.getUser();
-        PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(
+        PackageManager pmUser = CentralSurfacesInt.getPackageManagerForUser(
                 mContext, userHandle.getIdentifier());
         final NotificationConversationInfo.OnAppSettingsClickListener onAppSettingsClick =
                 (View v, Intent intent) -> {
@@ -570,7 +570,7 @@
                             .setLeaveOpenOnKeyguardHide(true);
                 }
 
-                Optional<CentralSurfaces> centralSurfacesOptional =
+                Optional<CentralSurfacesInt> centralSurfacesOptional =
                         mCentralSurfacesOptionalLazy.get();
                 if (centralSurfacesOptional.isPresent()) {
                     Runnable r = () -> mMainHandler.post(
@@ -584,7 +584,7 @@
                     return true;
                 }
                 /**
-                 * When {@link CentralSurfaces} doesn't exist, falling through to call
+                 * When {@link CentralSurfacesInt} doesn't exist, falling through to call
                  * {@link #openGutsInternal(View,int,int,NotificationMenuRowPlugin.MenuItem)}.
                  */
             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/dagger/ExpandableNotificationRowComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/dagger/ExpandableNotificationRowComponent.java
index 1a7417a..c871c4b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/dagger/ExpandableNotificationRowComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/dagger/ExpandableNotificationRowComponent.java
@@ -26,7 +26,7 @@
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowController;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import dagger.Binds;
 import dagger.BindsInstance;
@@ -100,7 +100,7 @@
             // but since this field is used in the guts, it must be accurate.
             // Therefore we will only show the application label, or, failing that, the
             // package name. No substitutions.
-            PackageManager pmUser = CentralSurfaces.getPackageManagerForUser(
+            PackageManager pmUser = CentralSurfacesInt.getPackageManagerForUser(
                     context, statusBarNotification.getUser().getIdentifier());
             final String pkg = statusBarNotification.getPackageName();
             try {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 36cd173..fda4a0d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -100,7 +100,7 @@
 import com.android.systemui.statusbar.notification.row.ExpandableView;
 import com.android.systemui.statusbar.notification.row.FooterView;
 import com.android.systemui.statusbar.notification.row.StackScrollerDecorView;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;
 import com.android.systemui.statusbar.phone.HeadsUpTouchHelper;
 import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
@@ -305,7 +305,7 @@
         }
     };
     private NotificationStackScrollLogger mLogger;
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     private int[] mTempInt2 = new int[2];
     private boolean mGenerateChildOrderChangedEvent;
     private HashSet<Runnable> mAnimationFinishedRunnables = new HashSet<>();
@@ -4590,7 +4590,7 @@
     }
 
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
-    public void setCentralSurfaces(CentralSurfaces centralSurfaces) {
+    public void setCentralSurfaces(CentralSurfacesInt centralSurfaces) {
         this.mCentralSurfaces = centralSurfaces;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
index c2750c2..8c5e12d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
@@ -109,7 +109,7 @@
 import com.android.systemui.statusbar.notification.row.NotificationGuts;
 import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
 import com.android.systemui.statusbar.notification.row.NotificationSnooze;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;
 import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
 import com.android.systemui.statusbar.phone.HeadsUpTouchHelper;
@@ -175,7 +175,7 @@
     private final KeyguardBypassController mKeyguardBypassController;
     private final NotificationLockscreenUserManager mLockscreenUserManager;
     // TODO: CentralSurfaces should be encapsulated behind a Controller
-    private final CentralSurfaces mCentralSurfaces;
+    private final CentralSurfacesInt mCentralSurfaces;
     private final SectionHeaderController mSilentHeaderController;
     private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
     private final InteractionJankMonitor mJankMonitor;
@@ -637,7 +637,7 @@
             FalsingManager falsingManager,
             @Main Resources resources,
             NotificationSwipeHelper.Builder notificationSwipeHelperBuilder,
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             ScrimController scrimController,
             NotificationGroupManagerLegacy legacyGroupManager,
             GroupExpansionManager groupManager,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
index c1869e0..c722b2d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java
@@ -699,7 +699,7 @@
             public void run() {
                 mNotificationShadeWindowController.setForceDozeBrightness(false);
             }
-        }, CentralSurfaces.FADE_KEYGUARD_DURATION_PULSING);
+        }, CentralSurfacesInt.FADE_KEYGUARD_DURATION_PULSING);
     }
 
     public void finishKeyguardFadingAway() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
index 9060d5f..04242fc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java
@@ -72,7 +72,7 @@
 /** */
 @CentralSurfacesComponent.CentralSurfacesScope
 public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callbacks {
-    private final CentralSurfaces mCentralSurfaces;
+    private final CentralSurfacesInt mCentralSurfaces;
     private final Context mContext;
     private final ShadeController mShadeController;
     private final CommandQueue mCommandQueue;
@@ -106,7 +106,7 @@
 
     @Inject
     CentralSurfacesCommandQueueCallbacks(
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             Context context,
             @Main Resources resources,
             ShadeController shadeController,
@@ -207,8 +207,8 @@
 
     @Override
     public void animateExpandNotificationsPanel() {
-        if (CentralSurfaces.SPEW) {
-            Log.d(CentralSurfaces.TAG,
+        if (CentralSurfacesInt.SPEW) {
+            Log.d(CentralSurfacesInt.TAG,
                     "animateExpand: mExpandedVisible=" + mCentralSurfaces.isExpandedVisible());
         }
         if (!mCommandQueue.panelsEnabled()) {
@@ -220,8 +220,8 @@
 
     @Override
     public void animateExpandSettingsPanel(@Nullable String subPanel) {
-        if (CentralSurfaces.SPEW) {
-            Log.d(CentralSurfaces.TAG,
+        if (CentralSurfacesInt.SPEW) {
+            Log.d(CentralSurfacesInt.TAG,
                     "animateExpand: mExpandedVisible=" + mCentralSurfaces.isExpandedVisible());
         }
         if (!mCommandQueue.panelsEnabled()) {
@@ -244,7 +244,7 @@
 
     @Override
     public void dismissKeyboardShortcutsMenu() {
-        mCentralSurfaces.resendMessage(CentralSurfaces.MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU);
+        mCentralSurfaces.resendMessage(CentralSurfacesInt.MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU);
     }
     /**
      * State is one or more of the DISABLE constants from StatusBarManager.
@@ -257,7 +257,7 @@
 
         int state2BeforeAdjustment = state2;
         state2 = mRemoteInputQuickSettingsDisabler.adjustDisableFlags(state2);
-        Log.d(CentralSurfaces.TAG,
+        Log.d(CentralSurfacesInt.TAG,
                 mDisableFlagsLogger.getDisableFlagsString(
                         /* old= */ new DisableFlagsLogger.DisableState(
                                 mCentralSurfaces.getDisabled1(), mCentralSurfaces.getDisabled2()),
@@ -306,8 +306,8 @@
      */
     @Override
     public void handleSystemKey(int key) {
-        if (CentralSurfaces.SPEW) {
-            Log.d(CentralSurfaces.TAG, "handleNavigationKey: " + key);
+        if (CentralSurfacesInt.SPEW) {
+            Log.d(CentralSurfacesInt.TAG, "handleNavigationKey: " + key);
         }
         if (!mCommandQueue.panelsEnabled() || !mKeyguardUpdateMonitor.isDeviceInteractive()
                 || mKeyguardStateController.isShowing() && !mKeyguardStateController.isOccluded()) {
@@ -345,15 +345,15 @@
     public void onCameraLaunchGestureDetected(int source) {
         mCentralSurfaces.setLastCameraLaunchSource(source);
         if (mCentralSurfaces.isGoingToSleep()) {
-            if (CentralSurfaces.DEBUG_CAMERA_LIFT) {
-                Slog.d(CentralSurfaces.TAG, "Finish going to sleep before launching camera");
+            if (CentralSurfacesInt.DEBUG_CAMERA_LIFT) {
+                Slog.d(CentralSurfacesInt.TAG, "Finish going to sleep before launching camera");
             }
             mCentralSurfaces.setLaunchCameraOnFinishedGoingToSleep(true);
             return;
         }
         if (!mNotificationPanelViewController.canCameraGestureBeLaunched()) {
-            if (CentralSurfaces.DEBUG_CAMERA_LIFT) {
-                Slog.d(CentralSurfaces.TAG, "Can't launch camera right now");
+            if (CentralSurfacesInt.DEBUG_CAMERA_LIFT) {
+                Slog.d(CentralSurfacesInt.TAG, "Can't launch camera right now");
             }
             return;
         }
@@ -364,7 +364,7 @@
         vibrateForCameraGesture();
 
         if (source == StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP) {
-            Log.v(CentralSurfaces.TAG, "Camera launch");
+            Log.v(CentralSurfacesInt.TAG, "Camera launch");
             mKeyguardUpdateMonitor.onCameraLaunched();
         }
 
@@ -379,11 +379,11 @@
                 // Avoid flickering of the scrim when we instant launch the camera and the bouncer
                 // comes on.
                 mCentralSurfaces.acquireGestureWakeLock(
-                        CentralSurfaces.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
+                        CentralSurfacesInt.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
             }
             if (isWakingUpOrAwake()) {
-                if (CentralSurfaces.DEBUG_CAMERA_LIFT) {
-                    Slog.d(CentralSurfaces.TAG, "Launching camera");
+                if (CentralSurfacesInt.DEBUG_CAMERA_LIFT) {
+                    Slog.d(CentralSurfacesInt.TAG, "Launching camera");
                 }
                 if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
                     mStatusBarKeyguardViewManager.reset(true /* hide */);
@@ -396,8 +396,8 @@
                 // we will dismiss us too early since we are waiting on an activity to be drawn and
                 // incorrectly get notified because of the screen on event (which resumes and pauses
                 // some activities)
-                if (CentralSurfaces.DEBUG_CAMERA_LIFT) {
-                    Slog.d(CentralSurfaces.TAG, "Deferring until screen turns on");
+                if (CentralSurfacesInt.DEBUG_CAMERA_LIFT) {
+                    Slog.d(CentralSurfacesInt.TAG, "Deferring until screen turns on");
                 }
                 mCentralSurfaces.setLaunchCameraOnFinishedWaking(true);
             }
@@ -409,7 +409,7 @@
         Intent emergencyIntent = mCentralSurfaces.getEmergencyActionIntent();
 
         if (emergencyIntent == null) {
-            Log.wtf(CentralSurfaces.TAG, "Couldn't find an app to process the emergency intent.");
+            Log.wtf(CentralSurfacesInt.TAG, "Couldn't find an app to process the emergency intent.");
             return;
         }
 
@@ -438,7 +438,7 @@
             // Avoid flickering of the scrim when we instant launch the camera and the bouncer
             // comes on.
             mCentralSurfaces.acquireGestureWakeLock(
-                    CentralSurfaces.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
+                    CentralSurfacesInt.LAUNCH_TRANSITION_TIMEOUT_MS + 1000L);
         }
 
         if (isWakingUpOrAwake()) {
@@ -492,7 +492,7 @@
 
     @Override
     public void toggleKeyboardShortcutsMenu(int deviceId) {
-        mCentralSurfaces.resendMessage(new CentralSurfaces.KeyboardShortcutsMessage(deviceId));
+        mCentralSurfaces.resendMessage(new CentralSurfacesInt.KeyboardShortcutsMessage(deviceId));
     }
 
     @Override
@@ -580,8 +580,8 @@
             // Make sure to pass -1 for repeat so VibratorManagerService doesn't stop us when going
             // to sleep.
             return VibrationEffect.createWaveform(
-                    CentralSurfaces.CAMERA_LAUNCH_GESTURE_VIBRATION_TIMINGS,
-                    CentralSurfaces.CAMERA_LAUNCH_GESTURE_VIBRATION_AMPLITUDES,
+                    CentralSurfacesInt.CAMERA_LAUNCH_GESTURE_VIBRATION_TIMINGS,
+                    CentralSurfacesInt.CAMERA_LAUNCH_GESTURE_VIBRATION_AMPLITUDES,
                     /* repeat= */ -1);
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
similarity index 94%
rename from packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java
rename to packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index b8411a6..925f1c0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -40,7 +40,6 @@
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
-import static com.android.wm.shell.transition.Transitions.ENABLE_SHELL_TRANSITIONS;
 
 import android.annotation.Nullable;
 import android.app.ActivityManager;
@@ -66,7 +65,6 @@
 import android.content.IntentFilter;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
 import android.content.res.Configuration;
 import android.graphics.Point;
@@ -101,7 +99,6 @@
 import android.view.IWindowManager;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
-import android.view.RemoteAnimationAdapter;
 import android.view.ThreadedRenderer;
 import android.view.View;
 import android.view.ViewGroup;
@@ -114,7 +111,6 @@
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleRegistry;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -141,7 +137,6 @@
 import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
 import com.android.systemui.animation.ActivityLaunchAnimator;
 import com.android.systemui.animation.DelegateLaunchAnimatorController;
-import com.android.systemui.animation.RemoteTransitionAdapter;
 import com.android.systemui.assist.AssistManager;
 import com.android.systemui.biometrics.AuthRippleController;
 import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -149,6 +144,7 @@
 import com.android.systemui.charging.WirelessChargingAnimation;
 import com.android.systemui.classifier.FalsingCollector;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
+import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.dagger.qualifiers.UiBackground;
 import com.android.systemui.demomode.DemoMode;
@@ -167,7 +163,6 @@
 import com.android.systemui.keyguard.WakefulnessLifecycle;
 import com.android.systemui.navigationbar.NavigationBarController;
 import com.android.systemui.navigationbar.NavigationBarView;
-import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.DarkIconDispatcher;
 import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.OverlayPlugin;
@@ -257,6 +252,7 @@
 import java.util.Optional;
 import java.util.concurrent.Executor;
 
+import javax.inject.Inject;
 import javax.inject.Named;
 
 import dagger.Lazy;
@@ -274,62 +270,25 @@
  * to break up this class into many small classes, and any code added here will slow down that goal.
  * </b>
  */
-public class CentralSurfaces extends CoreStartable implements
-        ActivityStarter,
-        LifecycleOwner {
-    public static final boolean MULTIUSER_DEBUG = false;
-
-    protected static final int MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU = 1027;
-
-    // Should match the values in PhoneWindowManager
-    public static final String SYSTEM_DIALOG_REASON_KEY = "reason";
-    public static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
-    public static final String SYSTEM_DIALOG_REASON_DREAM = "dream";
-    static public final String SYSTEM_DIALOG_REASON_SCREENSHOT = "screenshot";
+@SysUISingleton
+public class CentralSurfacesImpl extends CoreStartable implements
+        CentralSurfacesInt {
 
     private static final String BANNER_ACTION_CANCEL =
             "com.android.systemui.statusbar.banner_action_cancel";
     private static final String BANNER_ACTION_SETUP =
             "com.android.systemui.statusbar.banner_action_setup";
-    public static final String TAG = "CentralSurfaces";
-    public static final boolean DEBUG = false;
-    public static final boolean SPEW = false;
-    public static final boolean DUMPTRUCK = true; // extra dumpsys info
-    public static final boolean DEBUG_GESTURES = false;
-    public static final boolean DEBUG_MEDIA_FAKE_ARTWORK = false;
-    public static final boolean DEBUG_CAMERA_LIFT = false;
-
-    public static final boolean DEBUG_WINDOW_STATE = false;
-
-    // additional instrumentation for testing purposes; intended to be left on during development
-    public static final boolean CHATTY = DEBUG;
-
-    public static final boolean SHOW_LOCKSCREEN_MEDIA_ARTWORK = true;
-
-    public static final String ACTION_FAKE_ARTWORK = "fake_artwork";
 
     private static final int MSG_OPEN_SETTINGS_PANEL = 1002;
     private static final int MSG_LAUNCH_TRANSITION_TIMEOUT = 1003;
     // 1020-1040 reserved for BaseStatusBar
 
-    // Time after we abort the launch transition.
-    static final long LAUNCH_TRANSITION_TIMEOUT_MS = 5000;
-
-    protected static final boolean CLOSE_PANEL_WHEN_EMPTIED = true;
-
     /**
      * The delay to reset the hint text when the hint animation is finished running.
      */
     private static final int HINT_RESET_DELAY_MS = 1200;
 
-    public static final int FADE_KEYGUARD_START_DELAY = 100;
-    public static final int FADE_KEYGUARD_DURATION = 300;
-    public static final int FADE_KEYGUARD_DURATION_PULSING = 96;
-
-    public static final long[] CAMERA_LAUNCH_GESTURE_VIBRATION_TIMINGS =
-            new long[]{20, 20, 20, 20, 100, 20};
-    public static final int[] CAMERA_LAUNCH_GESTURE_VIBRATION_AMPLITUDES =
-            new int[]{39, 82, 139, 213, 0, 127};
+    private static final UiEventLogger sUiEventLogger = new UiEventLoggerImpl();
 
     /**
      * If true, the system is in the half-boot-to-decryption-screen state.
@@ -337,11 +296,6 @@
      */
     public static final boolean ONLY_CORE_APPS;
 
-    /** If true, the lockscreen will show a distinct wallpaper */
-    public static final boolean ENABLE_LOCKSCREEN_WALLPAPER = true;
-
-    private static final UiEventLogger sUiEventLogger = new UiEventLoggerImpl();
-
     static {
         boolean onlyCoreApps;
         try {
@@ -375,11 +329,13 @@
         mStatusBarWindowState = state;
     }
 
-    void acquireGestureWakeLock(long time) {
+    @Override
+    public void acquireGestureWakeLock(long time) {
         mGestureWakeLock.acquire(time);
     }
 
-    boolean setAppearance(int appearance) {
+    @Override
+    public boolean setAppearance(int appearance) {
         if (mAppearance != appearance) {
             mAppearance = appearance;
             return updateBarMode(barMode(isTransientShown(), appearance));
@@ -388,80 +344,98 @@
         return false;
     }
 
-    int getBarMode() {
+    @Override
+    public int getBarMode() {
         return mStatusBarMode;
     }
 
-    void resendMessage(int msg) {
+    @Override
+    public void resendMessage(int msg) {
         mMessageRouter.cancelMessages(msg);
         mMessageRouter.sendMessage(msg);
     }
 
-    void resendMessage(Object msg) {
+    @Override
+    public void resendMessage(Object msg) {
         mMessageRouter.cancelMessages(msg.getClass());
         mMessageRouter.sendMessage(msg);
     }
 
-    int getDisabled1() {
+    @Override
+    public int getDisabled1() {
         return mDisabled1;
     }
 
-    void setDisabled1(int disabled) {
+    @Override
+    public void setDisabled1(int disabled) {
         mDisabled1 = disabled;
     }
 
-    int getDisabled2() {
+    @Override
+    public int getDisabled2() {
         return mDisabled2;
     }
 
-    void setDisabled2(int disabled) {
+    @Override
+    public void setDisabled2(int disabled) {
         mDisabled2 = disabled;
     }
 
-    void setLastCameraLaunchSource(int source) {
+    @Override
+    public void setLastCameraLaunchSource(int source) {
         mLastCameraLaunchSource = source;
     }
 
-    void setLaunchCameraOnFinishedGoingToSleep(boolean launch) {
+    @Override
+    public void setLaunchCameraOnFinishedGoingToSleep(boolean launch) {
         mLaunchCameraOnFinishedGoingToSleep = launch;
     }
 
-    void setLaunchCameraOnFinishedWaking(boolean launch) {
+    @Override
+    public void setLaunchCameraOnFinishedWaking(boolean launch) {
         mLaunchCameraWhenFinishedWaking = launch;
     }
 
-    void setLaunchEmergencyActionOnFinishedGoingToSleep(boolean launch) {
+    @Override
+    public void setLaunchEmergencyActionOnFinishedGoingToSleep(boolean launch) {
         mLaunchEmergencyActionOnFinishedGoingToSleep = launch;
     }
 
-    void setLaunchEmergencyActionOnFinishedWaking(boolean launch) {
+    @Override
+    public void setLaunchEmergencyActionOnFinishedWaking(boolean launch) {
         mLaunchEmergencyActionWhenFinishedWaking = launch;
     }
 
-    void setTopHidesStatusBar(boolean hides) {
+    @Override
+    public void setTopHidesStatusBar(boolean hides) {
         mTopHidesStatusBar = hides;
     }
 
-    QSPanelController getQSPanelController() {
+    @Override
+    public QSPanelController getQSPanelController() {
         return mQSPanelController;
     }
 
     /** */
+    @Override
     public void animateExpandNotificationsPanel() {
         mCommandQueueCallbacks.animateExpandNotificationsPanel();
     }
 
     /** */
+    @Override
     public void animateExpandSettingsPanel(@Nullable String subpanel) {
         mCommandQueueCallbacks.animateExpandSettingsPanel(subpanel);
     }
 
     /** */
+    @Override
     public void animateCollapsePanels(int flags, boolean force) {
         mCommandQueueCallbacks.animateCollapsePanels(flags, force);
     }
 
     /** */
+    @Override
     public void togglePanel() {
         mCommandQueueCallbacks.togglePanel();
     }
@@ -712,7 +686,8 @@
      * Instead, an @Provide method is included. See {@link StatusBarPhoneModule}.
      */
     @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
-    public CentralSurfaces(
+    @Inject
+    public CentralSurfacesImpl(
             Context context,
             NotificationsController notificationsController,
             FragmentService fragmentService,
@@ -1490,6 +1465,7 @@
      * @param where the view requesting the wakeup
      * @param why the reason for the wake up
      */
+    @Override
     public void wakeUpIfDozing(long time, View where, String why) {
         if (mDozing && mScreenOffAnimationController.allowWakeUpIfDozing()) {
             mPowerManager.wakeUp(
@@ -1597,7 +1573,7 @@
 
                     @Override
                     public void notifyBiometricAuthModeChanged() {
-                        CentralSurfaces.this.notifyBiometricAuthModeChanged();
+                        CentralSurfacesImpl.this.notifyBiometricAuthModeChanged();
                     }
 
                     private void setWakeAndUnlocking(boolean wakeAndUnlocking) {
@@ -1626,22 +1602,27 @@
         Trace.endSection();
     }
 
+    @Override
     public NotificationShadeWindowView getNotificationShadeWindowView() {
         return mNotificationShadeWindowView;
     }
 
+    @Override
     public NotificationShadeWindowViewController getNotificationShadeWindowViewController() {
         return mNotificationShadeWindowViewController;
     }
 
+    @Override
     public NotificationPanelViewController getNotificationPanelViewController() {
         return mNotificationPanelViewController;
     }
 
+    @Override
     public ViewGroup getBouncerContainer() {
         return mNotificationShadeWindowViewController.getBouncerContainer();
     }
 
+    @Override
     public int getStatusBarHeight() {
         return mStatusBarWindowController.getStatusBarHeight();
     }
@@ -1651,7 +1632,8 @@
      * If the user switcher is simple then disable QS during setup because
      * the user intends to use the lock screen user switcher, QS in not needed.
      */
-    void updateQsExpansionEnabled() {
+    @Override
+    public void updateQsExpansionEnabled() {
         final boolean expandEnabled = mDeviceProvisionedController.isDeviceProvisioned()
                 && (mUserSetup || mUserSwitcherController == null
                         || !mUserSwitcherController.isSimpleUserSwitcher())
@@ -1663,6 +1645,7 @@
         Log.d(TAG, "updateQsExpansionEnabled - QS Expand enabled: " + expandEnabled);
     }
 
+    @Override
     public boolean isShadeDisabled() {
         return (mDisabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) != 0;
     }
@@ -1671,6 +1654,7 @@
      * Request a notification update
      * @param reason why we're requesting a notification update
      */
+    @Override
     public void requestNotificationUpdate(String reason) {
         mNotificationsController.requestNotificationUpdate(reason);
     }
@@ -1678,6 +1662,7 @@
     /**
      * Asks {@link KeyguardUpdateMonitor} to run face auth.
      */
+    @Override
     public void requestFaceAuth(boolean userInitiatedRequest) {
         if (!mKeyguardStateController.canDismissLockScreen()) {
             mKeyguardUpdateMonitor.requestFaceAuth(userInitiatedRequest);
@@ -1692,7 +1677,8 @@
                 && mFalsingCollector.isReportingEnabled() ? View.VISIBLE : View.INVISIBLE);
     }
 
-    boolean areNotificationAlertsDisabled() {
+    @Override
+    public boolean areNotificationAlertsDisabled() {
         return (mDisabled1 & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) != 0;
     }
 
@@ -1744,7 +1730,7 @@
                     getDelegate().onIntentStarted(willAnimate);
 
                     if (willAnimate) {
-                        CentralSurfaces.this.mIsLaunchingActivityOverLockscreen = true;
+                        CentralSurfacesImpl.this.mIsLaunchingActivityOverLockscreen = true;
                     }
                 }
 
@@ -1771,7 +1757,7 @@
                     // animation so that we can assume that mIsLaunchingActivityOverLockscreen
                     // being true means that we will collapse the shade (or at least run the
                     // post collapse runnables) later on.
-                    CentralSurfaces.this.mIsLaunchingActivityOverLockscreen = false;
+                    CentralSurfacesImpl.this.mIsLaunchingActivityOverLockscreen = false;
                     getDelegate().onLaunchAnimationEnd(isExpandingFullyAbove);
                 }
 
@@ -1781,7 +1767,7 @@
                     // animation so that we can assume that mIsLaunchingActivityOverLockscreen
                     // being true means that we will collapse the shade (or at least run the
                     // post collapse runnables) later on.
-                    CentralSurfaces.this.mIsLaunchingActivityOverLockscreen = false;
+                    CentralSurfacesImpl.this.mIsLaunchingActivityOverLockscreen = false;
                     getDelegate().onLaunchAnimationCancelled();
                 }
             };
@@ -1795,7 +1781,8 @@
                 intent.getPackage(), showOverLockscreenWhenLocked, (adapter) -> TaskStackBuilder
                         .create(mContext)
                         .addNextIntent(intent)
-                        .startActivities(getActivityOptions(getDisplayId(), adapter),
+                        .startActivities(
+                                CentralSurfacesInt.getActivityOptions(getDisplayId(), adapter),
                                 userHandle));
     }
 
@@ -1803,6 +1790,7 @@
      * Whether we are currently animating an activity launch above the lockscreen (occluding
      * activity).
      */
+    @Override
     public boolean isLaunchingActivityOverLockscreen() {
         return mIsLaunchingActivityOverLockscreen;
     }
@@ -1819,6 +1807,7 @@
                 null /* animationController */, getActivityUserHandle(intent));
     }
 
+    @Override
     public void setQsExpanded(boolean expanded) {
         mNotificationShadeWindowController.setQsExpanded(expanded);
         mNotificationPanelViewController.setStatusAccessibilityImportance(expanded
@@ -1830,10 +1819,12 @@
         }
     }
 
+    @Override
     public boolean isWakeUpComingFromTouch() {
         return mWakeUpComingFromTouch;
     }
 
+    @Override
     public boolean isFalsingThresholdNeeded() {
         return true;
     }
@@ -1841,10 +1832,12 @@
     /**
      * To be called when there's a state change in StatusBarKeyguardViewManager.
      */
+    @Override
     public void onKeyguardViewManagerStatesUpdated() {
         logStateToEventlog();
     }
 
+    @Override
     public void setPanelExpanded(boolean isExpanded) {
         if (mPanelExpanded != isExpanded) {
             mNotificationLogger.onPanelExpandedChanged(isExpanded);
@@ -1865,15 +1858,18 @@
         }
     }
 
+    @Override
     public ViewGroup getNotificationScrollLayout() {
         return mStackScroller;
     }
 
+    @Override
     public boolean isPulsing() {
         return mDozeServiceHost.isPulsing();
     }
 
-    @Nullable
+    @androidx.annotation.Nullable
+    @Override
     public View getAmbientIndicationContainer() {
         return mAmbientIndicationContainer;
     }
@@ -1884,12 +1880,14 @@
      *
      * @return whether the keyguard is currently occluded
      */
+    @Override
     public boolean isOccluded() {
         return mKeyguardStateController.isOccluded();
     }
 
     /** A launch animation was cancelled. */
     //TODO: These can / should probably be moved to NotificationPresenter or ShadeController
+    @Override
     public void onLaunchAnimationCancelled(boolean isLaunchForActivity) {
         if (mPresenter.isPresenterFullyCollapsed() && !mPresenter.isCollapsing()
                 && isLaunchForActivity) {
@@ -1900,6 +1898,7 @@
     }
 
     /** A launch animation ended. */
+    @Override
     public void onLaunchAnimationEnd(boolean launchIsFullScreen) {
         if (!mPresenter.isCollapsing()) {
             onClosingFinished();
@@ -1914,6 +1913,7 @@
      *
      * Note: This method must be called *before* dismissing the keyguard.
      */
+    @Override
     public boolean shouldAnimateLaunch(boolean isActivityIntent, boolean showOverLockscreen) {
         // TODO(b/184121838): Support launch animations when occluded.
         if (isOccluded()) {
@@ -1934,31 +1934,27 @@
     }
 
     /** Whether we should animate an activity launch. */
+    @Override
     public boolean shouldAnimateLaunch(boolean isActivityIntent) {
         return shouldAnimateLaunch(isActivityIntent, false /* showOverLockscreen */);
     }
 
+    @Override
     public boolean isDeviceInVrMode() {
         return mPresenter.isDeviceInVrMode();
     }
 
+    @Override
     public NotificationPresenter getPresenter() {
         return mPresenter;
     }
 
     @VisibleForTesting
-    void setBarStateForTest(int state) {
+    @Override
+    public void setBarStateForTest(int state) {
         mState = state;
     }
 
-    static class KeyboardShortcutsMessage {
-        final int mDeviceId;
-
-        KeyboardShortcutsMessage(int deviceId) {
-            mDeviceId = deviceId;
-        }
-    }
-
     static class AnimateExpandSettingsPanelMessage {
         final String mSubpanel;
 
@@ -1988,7 +1984,8 @@
         mHeadsUpManager.releaseAllImmediately();
     }
 
-    void wakeUpForFullScreenIntent() {
+    @Override
+    public void wakeUpForFullScreenIntent() {
         if (isGoingToSleep() || mDozing) {
             mPowerManager.wakeUp(
                     SystemClock.uptimeMillis(),
@@ -1999,7 +1996,8 @@
         }
     }
 
-    void makeExpandedVisible(boolean force) {
+    @Override
+    public void makeExpandedVisible(boolean force) {
         if (SPEW) Log.d(TAG, "Make expanded visible: expanded visible=" + mExpandedVisible);
         if (!force && (mExpandedVisible || !mCommandQueue.panelsEnabled())) {
             return;
@@ -2016,24 +2014,29 @@
         setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true);
     }
 
+    @Override
     public void postAnimateCollapsePanels() {
         mMainExecutor.execute(mShadeController::animateCollapsePanels);
     }
 
+    @Override
     public void postAnimateForceCollapsePanels() {
         mMainExecutor.execute(
                 () -> mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE,
                 true /* force */));
     }
 
+    @Override
     public void postAnimateOpenPanels() {
         mMessageRouter.sendMessage(MSG_OPEN_SETTINGS_PANEL);
     }
 
+    @Override
     public boolean isExpandedVisible() {
         return mExpandedVisible;
     }
 
+    @Override
     public boolean isPanelExpanded() {
         return mPanelExpanded;
     }
@@ -2041,6 +2044,7 @@
     /**
      * Called when another window is about to transfer it's input focus.
      */
+    @Override
     public void onInputFocusTransfer(boolean start, boolean cancel, float velocity) {
         if (!mCommandQueue.panelsEnabled()) {
             return;
@@ -2053,6 +2057,7 @@
         }
     }
 
+    @Override
     public void animateCollapseQuickSettings() {
         if (mState == StatusBarState.SHADE) {
             mNotificationPanelViewController.collapsePanel(
@@ -2104,6 +2109,7 @@
     }
 
     /** Called when a touch event occurred on {@link PhoneStatusBarView}. */
+    @Override
     public void onTouchEvent(MotionEvent event) {
         // TODO(b/202981994): Move this touch debugging to a central location. (Right now, it's
         //   split between NotificationPanelViewController and here.)
@@ -2140,15 +2146,18 @@
         }
     }
 
+    @Override
     public GestureRecorder getGestureRecorder() {
         return mGestureRec;
     }
 
+    @Override
     public BiometricUnlockController getBiometricUnlockController() {
         return mBiometricUnlockController;
     }
 
-    void showTransientUnchecked() {
+    @Override
+    public void showTransientUnchecked() {
         if (!mTransientShown) {
             mTransientShown = true;
             mNoAnimationOnNextBarModeChange = true;
@@ -2156,8 +2165,8 @@
         }
     }
 
-
-    void clearTransient() {
+    @Override
+    public void clearTransient() {
         if (mTransientShown) {
             mTransientShown = false;
             maybeUpdateBarMode();
@@ -2201,7 +2210,8 @@
         }
     }
 
-    protected void showWirelessChargingAnimation(int batteryLevel) {
+    @Override
+    public void showWirelessChargingAnimation(int batteryLevel) {
         showChargingAnimation(batteryLevel, UNKNOWN_BATTERY_LEVEL, 0);
     }
 
@@ -2222,6 +2232,7 @@
                 }, false, sUiEventLogger).show(animationDelay);
     }
 
+    @Override
     public void checkBarModes() {
         if (mDemoModeController.isInDemoMode()) return;
         if (mStatusBarTransitions != null) {
@@ -2232,12 +2243,14 @@
     }
 
     // Called by NavigationBarFragment
+    @Override
     public void setQsScrimEnabled(boolean scrimEnabled) {
         mNotificationPanelViewController.setQsScrimEnabled(scrimEnabled);
     }
 
     /** Temporarily hides Bubbles if the status bar is hidden. */
-    void updateBubblesVisibility() {
+    @Override
+    public void updateBubblesVisibility() {
         mBubblesOptional.ifPresent(bubbles -> bubbles.onStatusBarVisibilityChanged(
                 mStatusBarMode != MODE_LIGHTS_OUT
                         && mStatusBarMode != MODE_LIGHTS_OUT_TRANSPARENT
@@ -2260,6 +2273,7 @@
 
     private final Runnable mCheckBarModes = this::checkBarModes;
 
+    @Override
     public void setInteracting(int barWindow, boolean interacting) {
         mInteractingWindows = interacting
                 ? (mInteractingWindows | barWindow)
@@ -2278,11 +2292,6 @@
         }
     }
 
-    public static String viewInfo(View v) {
-        return "[(" + v.getLeft() + "," + v.getTop() + ")(" + v.getRight() + "," + v.getBottom()
-                + ") " + v.getWidth() + "x" + v.getHeight() + "]";
-    }
-
     @Override
     public void dump(PrintWriter pwOriginal, String[] args) {
         IndentingPrintWriter pw = DumpUtilsKt.asIndenting(pwOriginal);
@@ -2290,8 +2299,8 @@
             pw.println("Current Status Bar state:");
             pw.println("  mExpandedVisible=" + mExpandedVisible);
             pw.println("  mDisplayMetrics=" + mDisplayMetrics);
-            pw.println("  mStackScroller: " + viewInfo(mStackScroller));
-            pw.println("  mStackScroller: " + viewInfo(mStackScroller)
+            pw.println("  mStackScroller: " + CentralSurfacesInt.viewInfo(mStackScroller));
+            pw.println("  mStackScroller: " + CentralSurfacesInt.viewInfo(mStackScroller)
                     + " scroll " + mStackScroller.getScrollX()
                     + "," + mStackScroller.getScrollY());
         }
@@ -2307,7 +2316,8 @@
         pw.println("  ShadeWindowView: ");
         if (mNotificationShadeWindowViewController != null) {
             mNotificationShadeWindowViewController.dump(pw, args);
-            dumpBarTransitions(pw, "PhoneStatusBarTransitions", mStatusBarTransitions);
+            CentralSurfacesInt.dumpBarTransitions(
+                    pw, "PhoneStatusBarTransitions", mStatusBarTransitions);
         }
 
         pw.println("  mMediaManager: ");
@@ -2396,16 +2406,7 @@
                 + CameraIntents.getOverrideCameraPackage(mContext));
     }
 
-    public static void dumpBarTransitions(
-            PrintWriter pw, String var, @Nullable BarTransitions transitions) {
-        pw.print("  "); pw.print(var); pw.print(".BarTransitions.mMode=");
-        if (transitions != null) {
-            pw.println(BarTransitions.modeToString(transitions.getMode()));
-        } else {
-            pw.println("Unknown");
-        }
-    }
-
+    @Override
     public void createAndAddWindows(@Nullable RegisterStatusBarResult result) {
         makeStatusBarView(result);
         mNotificationShadeWindowController.attach();
@@ -2422,26 +2423,32 @@
         }
     }
 
-    float getDisplayDensity() {
+    @Override
+    public float getDisplayDensity() {
         return mDisplayMetrics.density;
     }
 
+    @Override
     public float getDisplayWidth() {
         return mDisplayMetrics.widthPixels;
     }
 
+    @Override
     public float getDisplayHeight() {
         return mDisplayMetrics.heightPixels;
     }
 
-    int getRotation() {
+    @Override
+    public int getRotation() {
         return mDisplay.getRotation();
     }
 
-    int getDisplayId() {
+    @Override
+    public int getDisplayId() {
         return mDisplayId;
     }
 
+    @Override
     public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
             boolean dismissShade, int flags) {
         startActivityDismissingKeyguard(intent, onlyProvisioned, dismissShade,
@@ -2449,12 +2456,14 @@
                 flags, null /* animationController */, getActivityUserHandle(intent));
     }
 
+    @Override
     public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
             boolean dismissShade) {
         startActivityDismissingKeyguard(intent, onlyProvisioned, dismissShade, 0);
     }
 
-    void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
+    @Override
+    public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
             final boolean dismissShade, final boolean disallowEnterPictureInPictureWhileLaunching,
             final Callback callback, int flags,
             @Nullable ActivityLaunchAnimator.Controller animationController,
@@ -2486,7 +2495,7 @@
             mActivityLaunchAnimator.startIntentWithAnimation(animController,
                     animate, intent.getPackage(), (adapter) -> {
                         ActivityOptions options = new ActivityOptions(
-                                getActivityOptions(mDisplayId, adapter));
+                                CentralSurfacesInt.getActivityOptions(mDisplayId, adapter));
                         options.setDisallowEnterPictureInPictureWhileLaunching(
                                 disallowEnterPictureInPictureWhileLaunching);
                         if (CameraIntents.isInsecureCameraIntent(intent)) {
@@ -2559,10 +2568,12 @@
         return animationController;
     }
 
+    @Override
     public void readyForKeyguardDone() {
         mStatusBarKeyguardViewManager.readyForKeyguardDone();
     }
 
+    @Override
     public void executeRunnableDismissingKeyguard(final Runnable runnable,
             final Runnable cancelAction,
             final boolean dismissShade,
@@ -2572,6 +2583,7 @@
                 deferred, false /* willAnimateOnKeyguard */);
     }
 
+    @Override
     public void executeRunnableDismissingKeyguard(final Runnable runnable,
             final Runnable cancelAction,
             final boolean dismissShade,
@@ -2600,7 +2612,7 @@
                         // ordering.
                         mMainExecutor.execute(mShadeController::runPostCollapseRunnables);
                     }
-                } else if (CentralSurfaces.this.isInLaunchTransition()
+                } else if (CentralSurfacesImpl.this.isInLaunchTransition()
                         && mNotificationPanelViewController.isLaunchTransitionFinished()) {
 
                     // We are not dismissing the shade, but the launch transition is already
@@ -2670,6 +2682,7 @@
         }
     };
 
+    @Override
     public void resetUserExpandedStates() {
         mNotificationsController.resetUserExpandedStates();
     }
@@ -2711,6 +2724,7 @@
      *
      * @param newUserId userId of the new user
      */
+    @Override
     public void setLockscreenUser(int newUserId) {
         if (mLockscreenWallpaper != null) {
             mLockscreenWallpaper.setCurrentUser(newUserId);
@@ -2893,6 +2907,7 @@
                 delay);
     }
 
+    @Override
     public void showKeyguard() {
         mStatusBarStateController.setKeyguardRequested(true);
         mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
@@ -2900,16 +2915,19 @@
         mAssistManagerLazy.get().onLockscreenShown();
     }
 
+    @Override
     public boolean hideKeyguard() {
         mStatusBarStateController.setKeyguardRequested(false);
         return updateIsKeyguard();
     }
 
-    boolean updateIsKeyguard() {
+    @Override
+    public boolean updateIsKeyguard() {
         return updateIsKeyguard(false /* forceStateChange */);
     }
 
-    boolean updateIsKeyguard(boolean forceStateChange) {
+    @Override
+    public boolean updateIsKeyguard(boolean forceStateChange) {
         boolean wakeAndUnlocking = mBiometricUnlockController.isWakeAndUnlock();
 
         // For dozing, keyguard needs to be shown whenever the device is non-interactive. Otherwise
@@ -2950,6 +2968,7 @@
         return false;
     }
 
+    @Override
     public void showKeyguardImpl() {
         Trace.beginSection("CentralSurfaces#showKeyguard");
         // In case we're locking while a smartspace transition is in progress, reset it.
@@ -2982,6 +3001,7 @@
         mPresenter.updateMediaMetaData(true /* metaDataChanged */, true);
     }
 
+    @Override
     public boolean isInLaunchTransition() {
         return mNotificationPanelViewController.isLaunchTransitionRunning()
                 || mNotificationPanelViewController.isLaunchTransitionFinished();
@@ -2996,6 +3016,7 @@
      *                    if the transition is cancelled, instead cancelRunnable will run
      * @param cancelRunnable the runnable to be run if the transition is cancelled
      */
+    @Override
     public void fadeKeyguardAfterLaunchTransition(final Runnable beforeFading,
             Runnable endRunnable, Runnable cancelRunnable) {
         mMessageRouter.cancelMessages(MSG_LAUNCH_TRANSITION_TIMEOUT);
@@ -3035,6 +3056,7 @@
      * Fades the content of the Keyguard while we are dozing and makes it invisible when finished
      * fading.
      */
+    @Override
     public void fadeKeyguardWhilePulsing() {
         mNotificationPanelViewController.fadeOut(0, FADE_KEYGUARD_DURATION_PULSING,
                 ()-> {
@@ -3046,6 +3068,7 @@
     /**
      * Plays the animation when an activity that was occluding Keyguard goes away.
      */
+    @Override
     public void animateKeyguardUnoccluding() {
         mNotificationPanelViewController.setExpandedFraction(0f);
         mCommandQueueCallbacks.animateExpandNotificationsPanel();
@@ -3057,6 +3080,7 @@
      * Keyguard goes away via fadeKeyguardAfterLaunchTransition, however, that might not happen
      * because the launched app crashed or something else went wrong.
      */
+    @Override
     public void startLaunchTransitionTimeout() {
         mMessageRouter.sendMessageDelayed(
                 MSG_LAUNCH_TRANSITION_TIMEOUT, LAUNCH_TRANSITION_TIMEOUT_MS);
@@ -3084,6 +3108,7 @@
     /**
      * @return true if we would like to stay in the shade, false if it should go away entirely
      */
+    @Override
     public boolean hideKeyguardImpl(boolean forceStateChange) {
         Trace.beginSection("CentralSurfaces#hideKeyguard");
         boolean staying = mStatusBarStateController.leaveOpenOnKeyguardHide();
@@ -3135,6 +3160,7 @@
     /**
      * Notifies the status bar that Keyguard is going away very soon.
      */
+    @Override
     public void keyguardGoingAway() {
         // Treat Keyguard exit animation as an app transition to achieve nice transition for status
         // bar.
@@ -3150,6 +3176,7 @@
      * @param fadeoutDuration the duration of the exit animation, in milliseconds
      * @param isBypassFading is this a fading away animation while bypassing
      */
+    @Override
     public void setKeyguardFadingAway(long startTime, long delay, long fadeoutDuration,
             boolean isBypassFading) {
         mCommandQueue.appTransitionStarting(mDisplayId, startTime + fadeoutDuration
@@ -3165,6 +3192,7 @@
     /**
      * Notifies that the Keyguard fading away animation is done.
      */
+    @Override
     public void finishKeyguardFadingAway() {
         mKeyguardStateController.notifyKeyguardDoneFading();
         mScrimController.setExpansionAffectsAlpha(true);
@@ -3225,12 +3253,14 @@
         Trace.endSection();
     }
 
+    @Override
     public void userActivity() {
         if (mState == StatusBarState.KEYGUARD) {
             mKeyguardViewMediatorCallback.userActivity();
         }
     }
 
+    @Override
     public boolean interceptMediaKey(KeyEvent event) {
         return mState == StatusBarState.KEYGUARD
                 && mStatusBarKeyguardViewManager.interceptMediaKey(event);
@@ -3242,6 +3272,7 @@
      * should be handled before routing to IME, in order to prevent the user having to hit back
      * twice to exit bouncer.
      */
+    @Override
     public boolean dispatchKeyEventPreIme(KeyEvent event) {
         switch (event.getKeyCode()) {
             case KeyEvent.KEYCODE_BACK:
@@ -3258,6 +3289,7 @@
             && mStatusBarKeyguardViewManager.shouldDismissOnMenuPressed();
     }
 
+    @Override
     public boolean onMenuPressed() {
         if (shouldUnlockOnMenuPressed()) {
             mShadeController.animateCollapsePanels(
@@ -3267,11 +3299,13 @@
         return false;
     }
 
+    @Override
     public void endAffordanceLaunch() {
         releaseGestureWakeLock();
         mNotificationPanelViewController.onAffordanceLaunchEnded();
     }
 
+    @Override
     public boolean onBackPressed() {
         final boolean isScrimmedBouncer =
                 mScrimController.getState() == ScrimState.BOUNCER_SCRIMMED;
@@ -3311,6 +3345,7 @@
         return false;
     }
 
+    @Override
     public boolean onSpacePressed() {
         if (mDeviceInteractive && mState != StatusBarState.SHADE) {
             mShadeController.animateCollapsePanels(
@@ -3343,6 +3378,7 @@
      * @param performAction the action to perform when the bouncer is dismissed.
      * @param cancelAction the action to perform when unlock is aborted.
      */
+    @Override
     public void showBouncerWithDimissAndCancelIfKeyguard(OnDismissAction performAction,
             Runnable cancelAction) {
         if ((mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)
@@ -3354,7 +3390,8 @@
         }
     }
 
-    void instantCollapseNotificationPanel() {
+    @Override
+    public void instantCollapseNotificationPanel() {
         mNotificationPanelViewController.instantCollapse();
         mShadeController.runPostCollapseRunnables();
     }
@@ -3363,7 +3400,8 @@
      * Collapse the panel directly if we are on the main thread, post the collapsing on the main
      * thread if we are not.
      */
-    void collapsePanelOnMainThread() {
+    @Override
+    public void collapsePanelOnMainThread() {
         if (Looper.getMainLooper().isCurrentThread()) {
             mShadeController.collapsePanel();
         } else {
@@ -3372,7 +3410,8 @@
     }
 
     /** Collapse the panel. The collapsing will be animated for the given {@code duration}. */
-    void collapsePanelWithDuration(int duration) {
+    @Override
+    public void collapsePanelWithDuration(int duration) {
         mNotificationPanelViewController.collapseWithDuration(duration);
     }
 
@@ -3408,14 +3447,17 @@
         }
     }
 
+    @Override
     public LightRevealScrim getLightRevealScrim() {
         return mLightRevealScrim;
     }
 
+    @Override
     public void onTrackingStarted() {
         mShadeController.runPostCollapseRunnables();
     }
 
+    @Override
     public void onClosingFinished() {
         mShadeController.runPostCollapseRunnables();
         if (!mPresenter.isPresenterFullyCollapsed()) {
@@ -3425,31 +3467,37 @@
         }
     }
 
+    @Override
     public void onUnlockHintStarted() {
         mFalsingCollector.onUnlockHintStarted();
         mKeyguardIndicationController.showActionToUnlock();
     }
 
+    @Override
     public void onHintFinished() {
         // Delay the reset a bit so the user can read the text.
         mKeyguardIndicationController.hideTransientIndicationDelayed(HINT_RESET_DELAY_MS);
     }
 
+    @Override
     public void onCameraHintStarted() {
         mFalsingCollector.onCameraHintStarted();
         mKeyguardIndicationController.showTransientIndication(R.string.camera_hint);
     }
 
+    @Override
     public void onVoiceAssistHintStarted() {
         mFalsingCollector.onLeftAffordanceHintStarted();
         mKeyguardIndicationController.showTransientIndication(R.string.voice_hint);
     }
 
+    @Override
     public void onPhoneHintStarted() {
         mFalsingCollector.onLeftAffordanceHintStarted();
         mKeyguardIndicationController.showTransientIndication(R.string.phone_hint);
     }
 
+    @Override
     public void onTrackingStopped(boolean expand) {
         if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) {
             if (!expand && !mKeyguardStateController.canDismissLockScreen()) {
@@ -3459,18 +3507,22 @@
     }
 
     // TODO: Figure out way to remove these.
+    @Override
     public NavigationBarView getNavigationBarView() {
         return mNavigationBarController.getNavigationBarView(mDisplayId);
     }
 
+    @Override
     public boolean isOverviewEnabled() {
         return mNavigationBarController.isOverviewEnabled(mDisplayId);
     }
 
+    @Override
     public void showPinningEnterExitToast(boolean entering) {
         mNavigationBarController.showPinningEnterExitToast(mDisplayId, entering);
     }
 
+    @Override
     public void showPinningEscapeToast() {
         mNavigationBarController.showPinningEscapeToast(mDisplayId);
     }
@@ -3479,6 +3531,7 @@
      * TODO: Remove this method. Views should not be passed forward. Will cause theme issues.
      * @return bottom area view
      */
+    @Override
     public KeyguardBottomAreaView getKeyguardBottomAreaView() {
         return mNotificationPanelViewController.getKeyguardBottomAreaView();
     }
@@ -3486,6 +3539,7 @@
     /**
      * Propagation of the bouncer state, indicating that it's fully visible.
      */
+    @Override
     public void setBouncerShowing(boolean bouncerShowing) {
         mBouncerShowing = bouncerShowing;
         mKeyguardBypassController.setBouncerShowing(bouncerShowing);
@@ -3505,10 +3559,11 @@
      * {@link #setBouncerShowing(boolean)} leads to unintended side effects from states modified
      * behind the dream.
      */
+    @Override
     public void setBouncerShowingOverDream(boolean bouncerShowingOverDream) {
         mBouncerShowingOverDream = bouncerShowingOverDream;
     }
-
+  
     /**
      * Propagate the bouncer state to status bar components.
      *
@@ -3529,6 +3584,7 @@
     /**
      * Collapses the notification shade if it is tracking or expanded.
      */
+    @Override
     public void collapseShade() {
         if (mNotificationPanelViewController.isTracking()) {
             mNotificationShadeWindowViewController.cancelCurrentTouch();
@@ -3651,7 +3707,8 @@
      * collapse the panel after we expanded it, and thus we would end up with a blank
      * Keyguard.
      */
-    void updateNotificationPanelTouchState() {
+    @Override
+    public void updateNotificationPanelTouchState() {
         boolean goingToSleepWithoutAnimation = isGoingToSleep()
                 && !mDozeParameters.shouldControlScreenOff();
         boolean disabled = (!mDeviceInteractive && !mDozeServiceHost.isPulsing())
@@ -3686,6 +3743,7 @@
         }
     };
 
+    @Override
     public int getWakefulnessState() {
         return mWakefulnessLifecycle.getWakefulness();
     }
@@ -3694,15 +3752,19 @@
      * @return true if the screen is currently fully off, i.e. has finished turning off and has
      * since not started turning on.
      */
+    @Override
     public boolean isScreenFullyOff() {
         return mScreenLifecycle.getScreenState() == ScreenLifecycle.SCREEN_OFF;
     }
 
+    @Override
     public void showScreenPinningRequest(int taskId, boolean allowCancel) {
         mScreenPinningRequest.showPrompt(taskId, allowCancel);
     }
 
-    @Nullable Intent getEmergencyActionIntent() {
+    @Nullable
+    @Override
+    public Intent getEmergencyActionIntent() {
         Intent emergencyIntent = new Intent(EmergencyGesture.ACTION_LAUNCH_EMERGENCY);
         PackageManager pm = mContext.getPackageManager();
         List<ResolveInfo> emergencyActivities = pm.queryIntentActivities(emergencyIntent,
@@ -3746,7 +3808,8 @@
         return emergencyActivities.get(0);
     }
 
-    boolean isCameraAllowedByAdmin() {
+    @Override
+    public boolean isCameraAllowedByAdmin() {
         if (mDevicePolicyManager.getCameraDisabled(null,
                 mLockscreenUserManager.getCurrentUserId())) {
             return false;
@@ -3760,7 +3823,8 @@
         return true;
     }
 
-    boolean isGoingToSleep() {
+    @Override
+    public boolean isGoingToSleep() {
         return mWakefulnessLifecycle.getWakefulness()
                 == WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP;
     }
@@ -3770,6 +3834,7 @@
                 || mWakefulnessLifecycle.getWakefulness() == WakefulnessLifecycle.WAKEFULNESS_AWAKE;
     }
 
+    @Override
     public void notifyBiometricAuthModeChanged() {
         mDozeServiceHost.updateDozing();
         updateScrimController();
@@ -3780,6 +3845,7 @@
      * 0.0f means we're not transitioning yet, while 1 means we're all the way in the full
      * shade.
      */
+    @Override
     public void setTransitionToFullShadeProgress(float transitionToFullShadeProgress) {
         mTransitionToFullShadeProgress = transitionToFullShadeProgress;
     }
@@ -3788,10 +3854,12 @@
      * Sets the amount of progress to the bouncer being fully hidden/visible. 1 means the bouncer
      * is fully hidden, while 0 means the bouncer is visible.
      */
+    @Override
     public void setBouncerHiddenFraction(float expansion) {
         mScrimController.setBouncerHiddenFraction(expansion);
     }
 
+    @Override
     @VisibleForTesting
     public void updateScrimController() {
         Trace.beginSection("CentralSurfaces#updateScrimController");
@@ -3854,6 +3922,7 @@
         Trace.endSection();
     }
 
+    @Override
     public boolean isKeyguardShowing() {
         if (mStatusBarKeyguardViewManager == null) {
             Slog.i(TAG, "isKeyguardShowing() called before startKeyguard(), returning true");
@@ -3862,6 +3931,7 @@
         return mStatusBarKeyguardViewManager.isShowing();
     }
 
+    @Override
     public boolean shouldIgnoreTouch() {
         return (mStatusBarStateController.isDozing()
                 && mDozeServiceHost.getIgnoreTouchWhilePulsing())
@@ -3911,6 +3981,7 @@
 
     private final Lazy<AssistManager> mAssistManagerLazy;
 
+    @Override
     public boolean isDeviceInteractive() {
         return mDeviceInteractive;
     }
@@ -3939,11 +4010,13 @@
         }
     };
 
+    @Override
     public void setNotificationSnoozed(StatusBarNotification sbn, SnoozeOption snoozeOption) {
         mNotificationsController.setNotificationSnoozed(sbn, snoozeOption);
     }
 
 
+    @Override
     public void awakenDreams() {
         mUiBgExecutor.execute(() -> {
             try {
@@ -4053,7 +4126,8 @@
                         controller, animate, intent.getCreatorPackage(),
                         (animationAdapter) -> {
                             ActivityOptions options = new ActivityOptions(
-                                    getActivityOptions(mDisplayId, animationAdapter));
+                                    CentralSurfacesInt.getActivityOptions(
+                                            mDisplayId, animationAdapter));
                             // TODO b/221255671: restrict this to only be set for notifications
                             options.setEligibleForLegacyPermissionPrompt(true);
                             return intent.sendAndReturnResult(null, 0, null, null, null,
@@ -4082,62 +4156,8 @@
         mMainExecutor.execute(runnable);
     }
 
-    /**
-     * Returns an ActivityOptions bundle created using the given parameters.
-     *
-     * @param displayId The ID of the display to launch the activity in. Typically this would be the
-     *                  display the status bar is on.
-     * @param animationAdapter The animation adapter used to start this activity, or {@code null}
-     *                         for the default animation.
-     */
-    public static Bundle getActivityOptions(int displayId,
-            @Nullable RemoteAnimationAdapter animationAdapter) {
-        ActivityOptions options = getDefaultActivityOptions(animationAdapter);
-        options.setLaunchDisplayId(displayId);
-        options.setCallerDisplayId(displayId);
-        return options.toBundle();
-    }
-
-    /**
-     * Returns an ActivityOptions bundle created using the given parameters.
-     *
-     * @param displayId The ID of the display to launch the activity in. Typically this would be the
-     *                  display the status bar is on.
-     * @param animationAdapter The animation adapter used to start this activity, or {@code null}
-     *                         for the default animation.
-     * @param isKeyguardShowing Whether keyguard is currently showing.
-     * @param eventTime The event time in milliseconds since boot, not including sleep. See
-     *                  {@link ActivityOptions#setSourceInfo}.
-     */
-    public static Bundle getActivityOptions(int displayId,
-            @Nullable RemoteAnimationAdapter animationAdapter, boolean isKeyguardShowing,
-            long eventTime) {
-        ActivityOptions options = getDefaultActivityOptions(animationAdapter);
-        options.setSourceInfo(isKeyguardShowing ? ActivityOptions.SourceInfo.TYPE_LOCKSCREEN
-                : ActivityOptions.SourceInfo.TYPE_NOTIFICATION, eventTime);
-        options.setLaunchDisplayId(displayId);
-        options.setCallerDisplayId(displayId);
-        return options.toBundle();
-    }
-
-    public static ActivityOptions getDefaultActivityOptions(
-            @Nullable RemoteAnimationAdapter animationAdapter) {
-        ActivityOptions options;
-        if (animationAdapter != null) {
-            if (ENABLE_SHELL_TRANSITIONS) {
-                options = ActivityOptions.makeRemoteTransition(
-                        RemoteTransitionAdapter.adaptRemoteAnimation(animationAdapter));
-            } else {
-                options = ActivityOptions.makeRemoteAnimation(animationAdapter);
-            }
-        } else {
-            options = ActivityOptions.makeBasic();
-        }
-        options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR);
-        return options;
-    }
-
-    void visibilityChanged(boolean visible) {
+    @Override
+    public void visibilityChanged(boolean visible) {
         if (mVisible != visible) {
             mVisible = visible;
             if (!visible) {
@@ -4160,6 +4180,7 @@
     /**
      * Clear Buzz/Beep/Blink.
      */
+    @Override
     public void clearNotificationEffects() {
         try {
             mBarService.clearNotificationEffects();
@@ -4171,6 +4192,7 @@
     /**
      * @return Whether the security bouncer from Keyguard is showing.
      */
+    @Override
     public boolean isBouncerShowing() {
         return mBouncerShowing;
     }
@@ -4178,10 +4200,12 @@
     /**
      * @return Whether the security bouncer from Keyguard is showing.
      */
+    @Override
     public boolean isBouncerShowingScrimmed() {
         return isBouncerShowing() && mStatusBarKeyguardViewManager.bouncerNeedsScrimming();
     }
 
+    @Override
     public boolean isBouncerShowingOverDream() {
         return mBouncerShowingOverDream;
     }
@@ -4189,33 +4213,13 @@
     /**
      * When {@link KeyguardBouncer} starts to be dismissed, playing its animation.
      */
+    @Override
     public void onBouncerPreHideAnimation() {
         mNotificationPanelViewController.onBouncerPreHideAnimation();
 
     }
 
-    /**
-     * @return a PackageManger for userId or if userId is < 0 (USER_ALL etc) then
-     *         return PackageManager for mContext
-     */
-    public static PackageManager getPackageManagerForUser(Context context, int userId) {
-        Context contextForUser = context;
-        // UserHandle defines special userId as negative values, e.g. USER_ALL
-        if (userId >= 0) {
-            try {
-                // Create a context for the correct user so if a package isn't installed
-                // for user 0 we can still load information about the package.
-                contextForUser =
-                        context.createPackageContextAsUser(context.getPackageName(),
-                        Context.CONTEXT_RESTRICTED,
-                        new UserHandle(userId));
-            } catch (NameNotFoundException e) {
-                // Shouldn't fail to find the package name for system ui.
-            }
-        }
-        return contextForUser.getPackageManager();
-    }
-
+    @Override
     public boolean isKeyguardSecure() {
         if (mStatusBarKeyguardViewManager == null) {
             // startKeyguard() hasn't been called yet, so we don't know.
@@ -4227,11 +4231,13 @@
         }
         return mStatusBarKeyguardViewManager.isSecure();
     }
+    @Override
     public NotificationPanelViewController getPanelController() {
         return mNotificationPanelViewController;
     }
     // End Extra BaseStatusBarMethods.
 
+    @Override
     public NotificationGutsManager getGutsManager() {
         return mGutsManager;
     }
@@ -4249,6 +4255,11 @@
         mLightRevealScrim.setAlpha(mScrimController.getState().getMaxLightRevealScrimAlpha());
     }
 
+    @Override
+    public void extendDozePulse(){
+        mDozeScrimController.extendPulse();
+    }
+
     private final KeyguardUpdateMonitorCallback mUpdateCallback =
             new KeyguardUpdateMonitorCallback() {
                 @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesInt.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesInt.java
new file mode 100644
index 0000000..70419be
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesInt.java
@@ -0,0 +1,587 @@
+/*
+ * Copyright (C) 2022 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.phone;
+
+import static com.android.wm.shell.transition.Transitions.ENABLE_SHELL_TRANSITIONS;
+
+import android.annotation.Nullable;
+import android.app.ActivityOptions;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.service.notification.StatusBarNotification;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.RemoteAnimationAdapter;
+import android.view.View;
+import android.view.ViewGroup;
+import android.window.SplashScreen;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.statusbar.RegisterStatusBarResult;
+import com.android.systemui.Dumpable;
+import com.android.systemui.animation.ActivityLaunchAnimator;
+import com.android.systemui.animation.RemoteTransitionAdapter;
+import com.android.systemui.navigationbar.NavigationBarView;
+import com.android.systemui.plugins.ActivityStarter;
+import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper;
+import com.android.systemui.qs.QSPanelController;
+import com.android.systemui.statusbar.GestureRecorder;
+import com.android.systemui.statusbar.LightRevealScrim;
+import com.android.systemui.statusbar.NotificationPresenter;
+import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
+
+import java.io.PrintWriter;
+
+public interface CentralSurfacesInt extends Dumpable, ActivityStarter, LifecycleOwner {
+    boolean MULTIUSER_DEBUG = false;
+    // Should match the values in PhoneWindowManager
+    String SYSTEM_DIALOG_REASON_KEY = "reason";
+    String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
+    String SYSTEM_DIALOG_REASON_DREAM = "dream";
+    String SYSTEM_DIALOG_REASON_SCREENSHOT = "screenshot";
+    String TAG = "CentralSurfaces";
+    boolean DEBUG = false;
+    boolean SPEW = false;
+    boolean DUMPTRUCK = true; // extra dumpsys info
+    boolean DEBUG_GESTURES = false;
+    boolean DEBUG_MEDIA_FAKE_ARTWORK = false;
+    boolean DEBUG_CAMERA_LIFT = false;
+    boolean DEBUG_WINDOW_STATE = false;
+    // additional instrumentation for testing purposes; intended to be left on during development
+    boolean CHATTY = DEBUG;
+    boolean SHOW_LOCKSCREEN_MEDIA_ARTWORK = true;
+    String ACTION_FAKE_ARTWORK = "fake_artwork";
+    int FADE_KEYGUARD_START_DELAY = 100;
+    int FADE_KEYGUARD_DURATION = 300;
+    int FADE_KEYGUARD_DURATION_PULSING = 96;
+    long[] CAMERA_LAUNCH_GESTURE_VIBRATION_TIMINGS =
+            new long[]{20, 20, 20, 20, 100, 20};
+    int[] CAMERA_LAUNCH_GESTURE_VIBRATION_AMPLITUDES =
+            new int[]{39, 82, 139, 213, 0, 127};
+
+    /** If true, the lockscreen will show a distinct wallpaper */
+    boolean ENABLE_LOCKSCREEN_WALLPAPER = true;
+    // Time after we abort the launch transition.
+    long LAUNCH_TRANSITION_TIMEOUT_MS = 5000;
+    int MSG_DISMISS_KEYBOARD_SHORTCUTS_MENU = 1027;
+
+    static final boolean CLOSE_PANEL_WHEN_EMPTIED = true;
+
+    static String viewInfo(View v) {
+        return "[(" + v.getLeft() + "," + v.getTop() + ")(" + v.getRight() + "," + v.getBottom()
+                + ") " + v.getWidth() + "x" + v.getHeight() + "]";
+    }
+
+    static void dumpBarTransitions(
+            PrintWriter pw, String var, @Nullable BarTransitions transitions) {
+        pw.print("  ");
+        pw.print(var);
+        pw.print(".BarTransitions.mMode=");
+        if (transitions != null) {
+            pw.println(BarTransitions.modeToString(transitions.getMode()));
+        } else {
+            pw.println("Unknown");
+        }
+    }
+
+    /**
+     * Returns an ActivityOptions bundle created using the given parameters.
+     *
+     * @param displayId The ID of the display to launch the activity in. Typically this would
+     *                  be the display the status bar is on.
+     * @param animationAdapter The animation adapter used to start this activity, or {@code null}
+     *                         for the default animation.
+     */
+    static Bundle getActivityOptions(int displayId,
+            @Nullable RemoteAnimationAdapter animationAdapter) {
+        ActivityOptions options = getDefaultActivityOptions(animationAdapter);
+        options.setLaunchDisplayId(displayId);
+        options.setCallerDisplayId(displayId);
+        return options.toBundle();
+    }
+
+    /**
+     * Returns an ActivityOptions bundle created using the given parameters.
+     *
+     * @param displayId         The ID of the display to launch the activity in. Typically this
+     *                          would be the
+     *                          display the status bar is on.
+     * @param animationAdapter  The animation adapter used to start this activity, or {@code null}
+     *                          for the default animation.
+     * @param isKeyguardShowing Whether keyguard is currently showing.
+     * @param eventTime         The event time in milliseconds since boot, not including sleep. See
+     *                          {@link ActivityOptions#setSourceInfo}.
+     */
+    static Bundle getActivityOptions(int displayId,
+            @Nullable RemoteAnimationAdapter animationAdapter, boolean isKeyguardShowing,
+            long eventTime) {
+        ActivityOptions options = getDefaultActivityOptions(animationAdapter);
+        options.setSourceInfo(isKeyguardShowing ? ActivityOptions.SourceInfo.TYPE_LOCKSCREEN
+                : ActivityOptions.SourceInfo.TYPE_NOTIFICATION, eventTime);
+        options.setLaunchDisplayId(displayId);
+        options.setCallerDisplayId(displayId);
+        return options.toBundle();
+    }
+
+    static ActivityOptions getDefaultActivityOptions(
+            @Nullable RemoteAnimationAdapter animationAdapter) {
+        ActivityOptions options;
+        if (animationAdapter != null) {
+            if (ENABLE_SHELL_TRANSITIONS) {
+                options = ActivityOptions.makeRemoteTransition(
+                        RemoteTransitionAdapter.adaptRemoteAnimation(animationAdapter));
+            } else {
+                options = ActivityOptions.makeRemoteAnimation(animationAdapter);
+            }
+        } else {
+            options = ActivityOptions.makeBasic();
+        }
+        options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR);
+        return options;
+    }
+
+    /**
+     * @return a PackageManager for userId or if userId is < 0 (USER_ALL etc) then
+     * return PackageManager for mContext
+     */
+    static PackageManager getPackageManagerForUser(Context context, int userId) {
+        Context contextForUser = context;
+        // UserHandle defines special userId as negative values, e.g. USER_ALL
+        if (userId >= 0) {
+            try {
+                // Create a context for the correct user so if a package isn't installed
+                // for user 0 we can still load information about the package.
+                contextForUser =
+                        context.createPackageContextAsUser(context.getPackageName(),
+                                Context.CONTEXT_RESTRICTED,
+                                new UserHandle(userId));
+            } catch (PackageManager.NameNotFoundException e) {
+                // Shouldn't fail to find the package name for system ui.
+            }
+        }
+        return contextForUser.getPackageManager();
+    }
+
+    void animateExpandNotificationsPanel();
+
+    void animateExpandSettingsPanel(@Nullable String subpanel);
+
+    void animateCollapsePanels(int flags, boolean force);
+
+    void collapsePanelOnMainThread();
+
+    void collapsePanelWithDuration(int duration);
+
+    void togglePanel();
+
+    void start();
+
+    boolean updateIsKeyguard();
+
+    boolean updateIsKeyguard(boolean forceStateChange);
+
+    @NonNull
+    @Override
+    Lifecycle getLifecycle();
+
+    void wakeUpIfDozing(long time, View where, String why);
+
+    NotificationShadeWindowView getNotificationShadeWindowView();
+
+    NotificationShadeWindowViewController getNotificationShadeWindowViewController();
+
+    NotificationPanelViewController getNotificationPanelViewController();
+
+    ViewGroup getBouncerContainer();
+
+    int getStatusBarHeight();
+
+    void updateQsExpansionEnabled();
+
+    boolean isShadeDisabled();
+
+    void requestNotificationUpdate(String reason);
+
+    void requestFaceAuth(boolean userInitiatedRequest);
+
+    @Override
+    void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade,
+            int flags);
+
+    @Override
+    void startActivity(Intent intent, boolean dismissShade);
+
+    @Override
+    void startActivity(Intent intent, boolean dismissShade,
+            @Nullable ActivityLaunchAnimator.Controller animationController,
+            boolean showOverLockscreenWhenLocked);
+
+    @Override
+    void startActivity(Intent intent, boolean dismissShade,
+            @Nullable ActivityLaunchAnimator.Controller animationController,
+            boolean showOverLockscreenWhenLocked, UserHandle userHandle);
+
+    boolean isLaunchingActivityOverLockscreen();
+
+    @Override
+    void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade);
+
+    @Override
+    void startActivity(Intent intent, boolean dismissShade, Callback callback);
+
+    void setQsExpanded(boolean expanded);
+
+    boolean isWakeUpComingFromTouch();
+
+    boolean isFalsingThresholdNeeded();
+
+    void onKeyguardViewManagerStatesUpdated();
+
+    void setPanelExpanded(boolean isExpanded);
+
+    ViewGroup getNotificationScrollLayout();
+
+    boolean isPulsing();
+
+    @Nullable
+    View getAmbientIndicationContainer();
+
+    boolean isOccluded();
+
+    //TODO: These can / should probably be moved to NotificationPresenter or ShadeController
+    void onLaunchAnimationCancelled(boolean isLaunchForActivity);
+
+    void onLaunchAnimationEnd(boolean launchIsFullScreen);
+
+    boolean shouldAnimateLaunch(boolean isActivityIntent, boolean showOverLockscreen);
+
+    boolean shouldAnimateLaunch(boolean isActivityIntent);
+
+    boolean isDeviceInVrMode();
+
+    NotificationPresenter getPresenter();
+
+    void postAnimateCollapsePanels();
+
+    void postAnimateForceCollapsePanels();
+
+    void postAnimateOpenPanels();
+
+    boolean isExpandedVisible();
+
+    boolean isPanelExpanded();
+
+    void onInputFocusTransfer(boolean start, boolean cancel, float velocity);
+
+    void animateCollapseQuickSettings();
+
+    void onTouchEvent(MotionEvent event);
+
+    GestureRecorder getGestureRecorder();
+
+    BiometricUnlockController getBiometricUnlockController();
+
+    void showWirelessChargingAnimation(int batteryLevel);
+
+    void checkBarModes();
+
+    // Called by NavigationBarFragment
+    void setQsScrimEnabled(boolean scrimEnabled);
+
+    void updateBubblesVisibility();
+
+    void setInteracting(int barWindow, boolean interacting);
+
+    @Override
+    void dump(PrintWriter pwOriginal, String[] args);
+
+    void createAndAddWindows(@Nullable RegisterStatusBarResult result);
+
+    float getDisplayWidth();
+
+    float getDisplayHeight();
+
+    void startActivityDismissingKeyguard(Intent intent, boolean onlyProvisioned,
+            boolean dismissShade, int flags);
+
+    void startActivityDismissingKeyguard(Intent intent, boolean onlyProvisioned,
+            boolean dismissShade);
+
+    void startActivityDismissingKeyguard(Intent intent, boolean onlyProvisioned,
+            boolean dismissShade, boolean disallowEnterPictureInPictureWhileLaunching,
+            Callback callback, int flags,
+            @Nullable ActivityLaunchAnimator.Controller animationController,
+            UserHandle userHandle);
+
+    void readyForKeyguardDone();
+
+    void executeRunnableDismissingKeyguard(Runnable runnable,
+            Runnable cancelAction,
+            boolean dismissShade,
+            boolean afterKeyguardGone,
+            boolean deferred);
+
+    void executeRunnableDismissingKeyguard(Runnable runnable,
+            Runnable cancelAction,
+            boolean dismissShade,
+            boolean afterKeyguardGone,
+            boolean deferred,
+            boolean willAnimateOnKeyguard);
+
+    void resetUserExpandedStates();
+
+    @Override
+    void dismissKeyguardThenExecute(OnDismissAction action, Runnable cancelAction,
+            boolean afterKeyguardGone);
+
+    void setLockscreenUser(int newUserId);
+
+    @Override
+    void postQSRunnableDismissingKeyguard(Runnable runnable);
+
+    @Override
+    void postStartActivityDismissingKeyguard(PendingIntent intent);
+
+    @Override
+    void postStartActivityDismissingKeyguard(PendingIntent intent,
+            @Nullable ActivityLaunchAnimator.Controller animationController);
+
+    @Override
+    void postStartActivityDismissingKeyguard(Intent intent, int delay);
+
+    @Override
+    void postStartActivityDismissingKeyguard(Intent intent, int delay,
+            @Nullable ActivityLaunchAnimator.Controller animationController);
+
+    void showKeyguard();
+
+    boolean hideKeyguard();
+
+    void showKeyguardImpl();
+
+    boolean isInLaunchTransition();
+
+    void fadeKeyguardAfterLaunchTransition(Runnable beforeFading,
+            Runnable endRunnable, Runnable cancelRunnable);
+
+    void fadeKeyguardWhilePulsing();
+
+    void animateKeyguardUnoccluding();
+
+    void startLaunchTransitionTimeout();
+
+    boolean hideKeyguardImpl(boolean forceStateChange);
+
+    void keyguardGoingAway();
+
+    void setKeyguardFadingAway(long startTime, long delay, long fadeoutDuration,
+            boolean isBypassFading);
+
+    void finishKeyguardFadingAway();
+
+    void userActivity();
+
+    boolean interceptMediaKey(KeyEvent event);
+
+    boolean dispatchKeyEventPreIme(KeyEvent event);
+
+    boolean onMenuPressed();
+
+    void endAffordanceLaunch();
+
+    boolean onBackPressed();
+
+    boolean onSpacePressed();
+
+    void showBouncerWithDimissAndCancelIfKeyguard(OnDismissAction performAction,
+            Runnable cancelAction);
+
+    LightRevealScrim getLightRevealScrim();
+
+    void onTrackingStarted();
+
+    void onClosingFinished();
+
+    void onUnlockHintStarted();
+
+    void onHintFinished();
+
+    void onCameraHintStarted();
+
+    void onVoiceAssistHintStarted();
+
+    void onPhoneHintStarted();
+
+    void onTrackingStopped(boolean expand);
+
+    // TODO: Figure out way to remove these.
+    NavigationBarView getNavigationBarView();
+
+    boolean isOverviewEnabled();
+
+    void showPinningEnterExitToast(boolean entering);
+
+    void showPinningEscapeToast();
+
+    KeyguardBottomAreaView getKeyguardBottomAreaView();
+
+    void setBouncerShowing(boolean bouncerShowing);
+  
+    void setBouncerShowingOverDream(boolean bouncerShowingOverDream);
+
+    void collapseShade();
+
+    int getWakefulnessState();
+
+    boolean isScreenFullyOff();
+
+    void showScreenPinningRequest(int taskId, boolean allowCancel);
+
+    @Nullable
+    Intent getEmergencyActionIntent();
+
+    boolean isCameraAllowedByAdmin();
+
+    boolean isGoingToSleep();
+
+    void notifyBiometricAuthModeChanged();
+
+    void setTransitionToFullShadeProgress(float transitionToFullShadeProgress);
+
+    void setBouncerHiddenFraction(float expansion);
+
+    @VisibleForTesting
+    void updateScrimController();
+
+    boolean isKeyguardShowing();
+
+    boolean shouldIgnoreTouch();
+
+    boolean isDeviceInteractive();
+
+    void setNotificationSnoozed(StatusBarNotification sbn,
+            NotificationSwipeActionHelper.SnoozeOption snoozeOption);
+
+    void awakenDreams();
+
+    @Override
+    void startPendingIntentDismissingKeyguard(PendingIntent intent);
+
+    @Override
+    void startPendingIntentDismissingKeyguard(
+            PendingIntent intent, @Nullable Runnable intentSentUiThreadCallback);
+
+    @Override
+    void startPendingIntentDismissingKeyguard(PendingIntent intent,
+            Runnable intentSentUiThreadCallback, View associatedView);
+
+    @Override
+    void startPendingIntentDismissingKeyguard(
+            PendingIntent intent, @Nullable Runnable intentSentUiThreadCallback,
+            @Nullable ActivityLaunchAnimator.Controller animationController);
+
+    void clearNotificationEffects();
+
+    boolean isBouncerShowing();
+
+    boolean isBouncerShowingScrimmed();
+
+    boolean isBouncerShowingOverDream();
+
+    void onBouncerPreHideAnimation();
+
+    boolean isKeyguardSecure();
+
+    NotificationPanelViewController getPanelController();
+
+    NotificationGutsManager getGutsManager();
+
+    void updateNotificationPanelTouchState();
+
+    void makeExpandedVisible(boolean force);
+
+    void instantCollapseNotificationPanel();
+
+    void visibilityChanged(boolean visible);
+
+    int getDisplayId();
+
+    int getRotation();
+
+    @VisibleForTesting
+    void setBarStateForTest(int state);
+
+    void wakeUpForFullScreenIntent();
+
+    void showTransientUnchecked();
+
+    void clearTransient();
+
+    void acquireGestureWakeLock(long time);
+
+    boolean setAppearance(int appearance);
+
+    int getBarMode();
+
+    void resendMessage(int msg);
+
+    void resendMessage(Object msg);
+
+    int getDisabled1();
+
+    void setDisabled1(int disabled);
+
+    int getDisabled2();
+
+    void setDisabled2(int disabled);
+
+    void setLastCameraLaunchSource(int source);
+
+    void setLaunchCameraOnFinishedGoingToSleep(boolean launch);
+
+    void setLaunchCameraOnFinishedWaking(boolean launch);
+
+    void setLaunchEmergencyActionOnFinishedGoingToSleep(boolean launch);
+
+    void setLaunchEmergencyActionOnFinishedWaking(boolean launch);
+
+    void setTopHidesStatusBar(boolean hides);
+
+    QSPanelController getQSPanelController();
+
+    boolean areNotificationAlertsDisabled();
+
+    float getDisplayDensity();
+
+    void extendDozePulse();
+
+    public static class KeyboardShortcutsMessage {
+        final int mDeviceId;
+
+        KeyboardShortcutsMessage(int deviceId) {
+            mDeviceId = deviceId;
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
index 55b310f..b28d125 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
@@ -97,7 +97,7 @@
     private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private NotificationPanelViewController mNotificationPanel;
     private View mAmbientIndicationContainer;
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     private boolean mAlwaysOnSuppressed;
 
     @Inject
@@ -146,7 +146,7 @@
      * Initialize instance with objects only available later during execution.
      */
     public void initialize(
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             NotificationShadeWindowViewController notificationShadeWindowViewController,
             NotificationPanelViewController notificationPanel,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index 347e05c..a3563ac 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -168,7 +168,7 @@
     private FlashlightController mFlashlightController;
     private PreviewInflater mPreviewInflater;
     private AccessibilityController mAccessibilityController;
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     private KeyguardAffordanceHelper mAffordanceHelper;
     private FalsingManager mFalsingManager;
     private boolean mUserSetupComplete;
@@ -472,7 +472,7 @@
         mRightAffordanceView.setContentDescription(state.contentDescription);
     }
 
-    public void setCentralSurfaces(CentralSurfaces centralSurfaces) {
+    public void setCentralSurfaces(CentralSurfacesInt centralSurfaces) {
         mCentralSurfaces = centralSurfaces;
         updateCameraVisibility(); // in case onFinishInflate() was called too early
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java
index 2c4fc6c..1368bfc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java
@@ -14,8 +14,8 @@
 
 package com.android.systemui.statusbar.phone;
 
-import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.MULTIUSER_DEBUG;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.DEBUG;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.MULTIUSER_DEBUG;
 
 import android.service.notification.StatusBarNotification;
 import android.util.Log;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
index e4f42b1..4ec662b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
@@ -1070,7 +1070,7 @@
         return mKeyguardStatusViewController.hasCustomClock();
     }
 
-    private void setCentralSurfaces(CentralSurfaces centralSurfaces) {
+    private void setCentralSurfaces(CentralSurfacesInt centralSurfaces) {
         // TODO: this can be injected.
         mCentralSurfaces = centralSurfaces;
         mKeyguardBottomArea.setCentralSurfaces(mCentralSurfaces);
@@ -3909,7 +3909,7 @@
      * @param hideExpandedRunnable a runnable to run when we need to hide the expanded panel.
      */
     public void initDependencies(
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             Runnable hideExpandedRunnable,
             NotificationShelfController notificationShelfController) {
         setCentralSurfaces(centralSurfaces);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java
index 24660b2..285ddb3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java
@@ -850,7 +850,7 @@
         Set<String> mComponentsForcingTopUi = new HashSet<>();
 
         /**
-         * The status bar state from {@link CentralSurfaces}.
+         * The status bar state from {@link CentralSurfacesInt}.
          */
         int mStatusBarState;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowView.java
index 1e3a02b..195fe15 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowView.java
@@ -58,7 +58,7 @@
  */
 public class NotificationShadeWindowView extends FrameLayout {
     public static final String TAG = "NotificationShadeWindowView";
-    public static final boolean DEBUG = CentralSurfaces.DEBUG;
+    public static final boolean DEBUG = CentralSurfacesInt.DEBUG;
 
     private int mRightInset = 0;
     private int mLeftInset = 0;
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 2f11b16..558368b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java
@@ -82,7 +82,7 @@
     private boolean mExpandAnimationRunning;
     private NotificationStackScrollLayout mStackScrollLayout;
     private PhoneStatusBarViewController mStatusBarViewController;
-    private final CentralSurfaces mService;
+    private final CentralSurfacesInt mService;
     private final NotificationShadeWindowController mNotificationShadeWindowController;
     private DragDownHelper mDragDownHelper;
     private boolean mDoubleTapEnabled;
@@ -111,7 +111,7 @@
             StatusBarWindowStateController statusBarWindowStateController,
             LockIconViewController lockIconViewController,
             Optional<LowLightClockController> lowLightClockController,
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             NotificationShadeWindowController controller,
             KeyguardUnlockAnimationController keyguardUnlockAnimationController,
             AmbientState ambientState) {
@@ -252,7 +252,7 @@
                 }
 
                 if (mStatusBarStateController.isDozing()) {
-                    mService.mDozeScrimController.extendPulse();
+                    mService.extendDozePulse();
                 }
                 mLockIconViewController.onTouchEvent(
                         ev,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 45dc943..7115820 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -27,7 +27,7 @@
     public static final String TAG = PanelView.class.getSimpleName();
     private PanelViewController.TouchHandler mTouchHandler;
 
-    protected CentralSurfaces mCentralSurfaces;
+    protected CentralSurfacesInt mCentralSurfaces;
     protected HeadsUpManagerPhone mHeadsUpManager;
 
     protected KeyguardBottomAreaView mKeyguardBottomArea;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
index bdbc670..727ad79 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
@@ -112,7 +112,7 @@
         Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args));
     }
 
-    protected CentralSurfaces mCentralSurfaces;
+    protected CentralSurfacesInt mCentralSurfaces;
     protected HeadsUpManagerPhone mHeadsUpManager;
     protected final StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScreenOffAnimationController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScreenOffAnimationController.kt
index c817466..392228c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScreenOffAnimationController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScreenOffAnimationController.kt
@@ -37,7 +37,7 @@
     private val animations: List<ScreenOffAnimation> =
         listOfNotNull(foldToAodAnimation, unlockedScreenOffAnimation)
 
-    fun initialize(centralSurfaces: CentralSurfaces, lightRevealScrim: LightRevealScrim) {
+    fun initialize(centralSurfaces: CentralSurfacesInt, lightRevealScrim: LightRevealScrim) {
         animations.forEach { it.initialize(centralSurfaces, lightRevealScrim) }
         wakefulnessLifecycle.addObserver(this)
     }
@@ -197,7 +197,7 @@
 }
 
 interface ScreenOffAnimation {
-    fun initialize(centralSurfaces: CentralSurfaces, lightRevealScrim: LightRevealScrim) {}
+    fun initialize(centralSurfaces: CentralSurfacesInt, lightRevealScrim: LightRevealScrim) {}
 
     /**
      * Called when started going to sleep, should return true if the animation will be played
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index f9e17da..72c0b9a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -437,7 +437,7 @@
         }
 
         if (mKeyguardUpdateMonitor.needsSlowUnlockTransition() && mState == ScrimState.UNLOCKED) {
-            mAnimationDelay = CentralSurfaces.FADE_KEYGUARD_START_DELAY;
+            mAnimationDelay = CentralSurfacesInt.FADE_KEYGUARD_START_DELAY;
             scheduleUpdate();
         } else if (((oldState == ScrimState.AOD || oldState == ScrimState.PULSING)  // leaving doze
                 && (!mDozeParameters.getAlwaysOn() || mState == ScrimState.UNLOCKED))
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 47b7058..27fde94 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -238,7 +238,7 @@
 
             mAnimationDuration = mKeyguardFadingAway
                     ? mKeyguardFadingAwayDuration
-                    : CentralSurfaces.FADE_KEYGUARD_DURATION;
+                    : CentralSurfacesInt.FADE_KEYGUARD_DURATION;
 
             boolean fromAod = previousState == AOD || previousState == PULSING;
             mAnimateChange = !mLaunchingAffordanceWithPreview && !fromAod;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeController.java
index 83ee125..705360c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeController.java
@@ -18,7 +18,7 @@
 
 /**
  * {@link ShadeController} is an abstraction of the work that used to be hard-coded in
- * {@link CentralSurfaces}. The shade itself represents the concept of the status bar window state,
+ * {@link CentralSurfacesInt}. The shade itself represents the concept of the status bar window state,
  * and can be in multiple states: dozing, locked, showing the bouncer, occluded, etc. All/some of
  * these are coordinated with {@link StatusBarKeyguardViewManager} via
  * {@link com.android.systemui.keyguard.KeyguardViewMediator} and others.
@@ -38,7 +38,7 @@
 
     /**
      * Collapse the shade animated, showing the bouncer when on {@link StatusBarState#KEYGUARD} or
-     * dismissing {@link CentralSurfaces} when on {@link StatusBarState#SHADE}.
+     * dismissing {@link CentralSurfacesInt} when on {@link StatusBarState#SHADE}.
      */
     void animateCollapsePanels(int flags, boolean force);
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java
index cee8b33..ce33c57 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java
@@ -47,7 +47,7 @@
     protected final NotificationShadeWindowController mNotificationShadeWindowController;
     private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private final int mDisplayId;
-    protected final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
+    protected final Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
     private final Lazy<AssistManager> mAssistManagerLazy;
 
     private final ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>();
@@ -59,7 +59,7 @@
             NotificationShadeWindowController notificationShadeWindowController,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             WindowManager windowManager,
-            Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+            Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
             Lazy<AssistManager> assistManagerLazy
     ) {
         mCommandQueue = commandQueue;
@@ -208,7 +208,7 @@
         }
     }
 
-    private CentralSurfaces getCentralSurfaces() {
+    private CentralSurfacesInt getCentralSurfaces() {
         return mCentralSurfacesOptionalLazy.get().get();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeadsUpChangeListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeadsUpChangeListener.java
index 50f2169..10a2142 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeadsUpChangeListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeadsUpChangeListener.java
@@ -29,7 +29,7 @@
 import javax.inject.Inject;
 
 /**
- * Ties the {@link CentralSurfaces} to {@link com.android.systemui.statusbar.policy.HeadsUpManager}.
+ * Ties the {@link CentralSurfacesInt} to {@link com.android.systemui.statusbar.policy.HeadsUpManager}.
  */
 @CentralSurfacesComponent.CentralSurfacesScope
 public class StatusBarHeadsUpChangeListener implements OnHeadsUpChangedListener {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 7f5cef0..8891560 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -191,7 +191,7 @@
 
     protected LockPatternUtils mLockPatternUtils;
     protected ViewMediatorCallback mViewMediatorCallback;
-    protected CentralSurfaces mCentralSurfaces;
+    protected CentralSurfacesInt mCentralSurfaces;
     private NotificationPanelViewController mNotificationPanelViewController;
     private BiometricUnlockController mBiometricUnlockController;
 
@@ -293,7 +293,7 @@
     }
 
     @Override
-    public void registerCentralSurfaces(CentralSurfaces centralSurfaces,
+    public void registerCentralSurfaces(CentralSurfacesInt centralSurfaces,
             NotificationPanelViewController notificationPanelViewController,
             PanelExpansionStateManager panelExpansionStateManager,
             BiometricUnlockController biometricUnlockController,
@@ -676,7 +676,7 @@
     }
 
     /**
-     * If {@link CentralSurfaces} is pulsing.
+     * If {@link CentralSurfacesInt} is pulsing.
      */
     public void setPulsing(boolean pulsing) {
         if (mPulsing != pulsing) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
index 56b6dfc..a44d08a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
@@ -10,7 +10,7 @@
  */
 class StatusBarLaunchAnimatorController(
     private val delegate: ActivityLaunchAnimator.Controller,
-    private val centralSurfaces: CentralSurfaces,
+    private val centralSurfaces: CentralSurfacesInt,
     private val isLaunchForActivity: Boolean = true
 ) : ActivityLaunchAnimator.Controller by delegate {
     // Always sync the opening window with the shade, given that we draw a hole punch in the shade
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
index 87ca942..bddc2df 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
@@ -18,7 +18,7 @@
 
 import static android.service.notification.NotificationListenerService.REASON_CLICK;
 
-import static com.android.systemui.statusbar.phone.CentralSurfaces.getActivityOptions;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.getActivityOptions;
 
 import android.app.ActivityManager;
 import android.app.KeyguardManager;
@@ -125,7 +125,7 @@
     private final MetricsLogger mMetricsLogger;
     private final StatusBarNotificationActivityStarterLogger mLogger;
 
-    private final CentralSurfaces mCentralSurfaces;
+    private final CentralSurfacesInt mCentralSurfaces;
     private final NotificationPresenter mPresenter;
     private final NotificationPanelViewController mNotificationPanel;
     private final ActivityLaunchAnimator mActivityLaunchAnimator;
@@ -166,7 +166,7 @@
             MetricsLogger metricsLogger,
             StatusBarNotificationActivityStarterLogger logger,
             OnUserInteractionCallback onUserInteractionCallback,
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             NotificationPresenter presenter,
             NotificationPanelViewController panel,
             ActivityLaunchAnimator activityLaunchAnimator,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
index aa061d7..ddde1fc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -14,9 +14,9 @@
 
 package com.android.systemui.statusbar.phone;
 
-import static com.android.systemui.statusbar.phone.CentralSurfaces.CLOSE_PANEL_WHEN_EMPTIED;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.MULTIUSER_DEBUG;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.CLOSE_PANEL_WHEN_EMPTIED;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.DEBUG;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.MULTIUSER_DEBUG;
 
 import android.app.KeyguardManager;
 import android.content.Context;
@@ -104,7 +104,7 @@
     private final DozeScrimController mDozeScrimController;
     private final ScrimController mScrimController;
     private final KeyguardIndicationController mKeyguardIndicationController;
-    private final CentralSurfaces mCentralSurfaces;
+    private final CentralSurfacesInt mCentralSurfaces;
     private final ShadeController mShadeController;
     private final LockscreenShadeTransitionController mShadeTransitionController;
     private final CommandQueue mCommandQueue;
@@ -135,7 +135,7 @@
             DynamicPrivacyController dynamicPrivacyController,
             KeyguardStateController keyguardStateController,
             KeyguardIndicationController keyguardIndicationController,
-            CentralSurfaces centralSurfaces,
+            CentralSurfacesInt centralSurfaces,
             ShadeController shadeController,
             LockscreenShadeTransitionController shadeTransitionController,
             CommandQueue commandQueue,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java
index 4e90900..203f25e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java
@@ -58,7 +58,7 @@
 
     private boolean mIsStatusBarExpanded = false;
     private boolean mShouldAdjustInsets = false;
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     private View mNotificationShadeWindowView;
     private View mNotificationPanelView;
     private boolean mForceCollapsedUntilLayout = false;
@@ -118,7 +118,7 @@
     }
 
     protected void setup(
-            @NonNull CentralSurfaces centralSurfaces,
+            @NonNull CentralSurfacesInt centralSurfaces,
             @NonNull View notificationShadeWindowView) {
         mCentralSurfaces = centralSurfaces;
         mNotificationShadeWindowView = notificationShadeWindowView;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt
index 935f87d..fa7e7c9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt
@@ -60,7 +60,7 @@
     private val powerManager: PowerManager,
     private val handler: Handler = Handler()
 ) : WakefulnessLifecycle.Observer, ScreenOffAnimation {
-    private lateinit var mCentralSurfaces: CentralSurfaces
+    private lateinit var mCentralSurfaces: CentralSurfacesInt
     /**
      * Whether or not [initialize] has been called to provide us with the StatusBar,
      * NotificationPanelViewController, and LightRevealSrim so that we can run the unlocked screen
@@ -122,7 +122,7 @@
     }
 
     override fun initialize(
-        centralSurfaces: CentralSurfaces,
+        centralSurfaces: CentralSurfacesInt,
         lightRevealScrim: LightRevealScrim
     ) {
         this.initialized = true
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
index 5d38eea..c5e5297 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/CentralSurfacesComponent.java
@@ -31,6 +31,7 @@
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutListContainerModule;
 import com.android.systemui.statusbar.phone.CentralSurfacesCommandQueueCallbacks;
+import com.android.systemui.statusbar.phone.CentralSurfacesImpl;
 import com.android.systemui.statusbar.phone.LargeScreenShadeHeaderController;
 import com.android.systemui.statusbar.phone.NotificationPanelViewController;
 import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
@@ -51,7 +52,7 @@
 
 /**
  * Dagger subcomponent for classes (semi-)related to the status bar. The component is created once
- * inside {@link com.android.systemui.statusbar.phone.CentralSurfaces} and never re-created.
+ * inside {@link CentralSurfacesImpl} and never re-created.
  *
  * TODO(b/197137564): This should likely be re-factored a bit. It includes classes that aren't
  * directly related to status bar functionality, like multiple notification classes. And, the fact
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 c024c72..6af94f3 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
@@ -16,317 +16,22 @@
 
 package com.android.systemui.statusbar.phone.dagger;
 
-import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME;
-
-import android.app.WallpaperManager;
-import android.content.Context;
-import android.hardware.devicestate.DeviceStateManager;
-import android.os.Handler;
-import android.os.PowerManager;
-import android.util.DisplayMetrics;
-
-import com.android.internal.jank.InteractionJankMonitor;
-import com.android.internal.logging.MetricsLogger;
-import com.android.keyguard.KeyguardUpdateMonitor;
-import com.android.keyguard.ViewMediatorCallback;
-import com.android.systemui.InitController;
-import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
-import com.android.systemui.animation.ActivityLaunchAnimator;
-import com.android.systemui.assist.AssistManager;
-import com.android.systemui.broadcast.BroadcastDispatcher;
-import com.android.systemui.classifier.FalsingCollector;
-import com.android.systemui.colorextraction.SysuiColorExtractor;
 import com.android.systemui.dagger.SysUISingleton;
-import com.android.systemui.dagger.qualifiers.Main;
-import com.android.systemui.dagger.qualifiers.UiBackground;
-import com.android.systemui.demomode.DemoModeController;
-import com.android.systemui.dreams.DreamOverlayStateController;
-import com.android.systemui.flags.FeatureFlags;
-import com.android.systemui.fragments.FragmentService;
-import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
-import com.android.systemui.keyguard.KeyguardViewMediator;
-import com.android.systemui.keyguard.ScreenLifecycle;
-import com.android.systemui.keyguard.WakefulnessLifecycle;
-import com.android.systemui.navigationbar.NavigationBarController;
-import com.android.systemui.plugins.FalsingManager;
-import com.android.systemui.plugins.PluginDependencyProvider;
-import com.android.systemui.recents.ScreenPinningRequest;
-import com.android.systemui.settings.brightness.BrightnessSliderController;
-import com.android.systemui.shared.plugins.PluginManager;
-import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.KeyguardIndicationController;
-import com.android.systemui.statusbar.LockscreenShadeTransitionController;
-import com.android.systemui.statusbar.NotificationLockscreenUserManager;
-import com.android.systemui.statusbar.NotificationMediaManager;
-import com.android.systemui.statusbar.NotificationRemoteInputManager;
-import com.android.systemui.statusbar.NotificationShadeDepthController;
-import com.android.systemui.statusbar.NotificationShadeWindowController;
-import com.android.systemui.statusbar.NotificationViewHierarchyManager;
-import com.android.systemui.statusbar.PulseExpansionHandler;
-import com.android.systemui.statusbar.SysuiStatusBarStateController;
-import com.android.systemui.statusbar.charging.WiredChargingRippleController;
-import com.android.systemui.statusbar.connectivity.NetworkController;
-import com.android.systemui.statusbar.notification.DynamicPrivacyController;
-import com.android.systemui.statusbar.notification.NotifPipelineFlags;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
-import com.android.systemui.statusbar.notification.collection.legacy.VisualStabilityManager;
-import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
-import com.android.systemui.statusbar.notification.init.NotificationsController;
-import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
-import com.android.systemui.statusbar.notification.logging.NotificationLogger;
-import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
-import com.android.systemui.statusbar.phone.AutoHideController;
-import com.android.systemui.statusbar.phone.BiometricUnlockController;
-import com.android.systemui.statusbar.phone.DozeParameters;
-import com.android.systemui.statusbar.phone.DozeScrimController;
-import com.android.systemui.statusbar.phone.DozeServiceHost;
-import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
-import com.android.systemui.statusbar.phone.KeyguardBypassController;
-import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
-import com.android.systemui.statusbar.phone.LightBarController;
-import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
-import com.android.systemui.statusbar.phone.LockscreenWallpaper;
-import com.android.systemui.statusbar.phone.NotificationIconAreaController;
-import com.android.systemui.statusbar.phone.PhoneStatusBarPolicy;
-import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
-import com.android.systemui.statusbar.phone.ScrimController;
-import com.android.systemui.statusbar.phone.ShadeController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
-import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
-import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
-import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
-import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
-import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
-import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
-import com.android.systemui.statusbar.policy.BatteryController;
-import com.android.systemui.statusbar.policy.ConfigurationController;
-import com.android.systemui.statusbar.policy.DeviceProvisionedController;
-import com.android.systemui.statusbar.policy.ExtensionController;
-import com.android.systemui.statusbar.policy.KeyguardStateController;
-import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
-import com.android.systemui.statusbar.policy.UserSwitcherController;
-import com.android.systemui.statusbar.window.StatusBarWindowController;
-import com.android.systemui.statusbar.window.StatusBarWindowStateController;
-import com.android.systemui.util.WallpaperController;
-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.wm.shell.bubbles.Bubbles;
-import com.android.wm.shell.startingsurface.StartingSurface;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
+import com.android.systemui.statusbar.phone.CentralSurfacesImpl;
 
-import java.util.Optional;
-import java.util.concurrent.Executor;
-
-import javax.inject.Named;
-
-import dagger.Lazy;
+import dagger.Binds;
 import dagger.Module;
-import dagger.Provides;
 
 /**
- * Dagger Module providing {@link CentralSurfaces}.
+ * Dagger Module providing {@link CentralSurfacesImpl}.
  */
 @Module
 public interface StatusBarPhoneModule {
     /**
      * Provides our instance of CentralSurfaces which is considered optional.
      */
-    @Provides
+    @Binds
     @SysUISingleton
-    static CentralSurfaces provideCentralSurfaces(
-            Context context,
-            NotificationsController notificationsController,
-            FragmentService fragmentService,
-            LightBarController lightBarController,
-            AutoHideController autoHideController,
-            StatusBarWindowController statusBarWindowController,
-            StatusBarWindowStateController statusBarWindowStateController,
-            KeyguardUpdateMonitor keyguardUpdateMonitor,
-            StatusBarSignalPolicy statusBarSignalPolicy,
-            PulseExpansionHandler pulseExpansionHandler,
-            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
-            KeyguardBypassController keyguardBypassController,
-            KeyguardStateController keyguardStateController,
-            HeadsUpManagerPhone headsUpManagerPhone,
-            DynamicPrivacyController dynamicPrivacyController,
-            FalsingManager falsingManager,
-            FalsingCollector falsingCollector,
-            BroadcastDispatcher broadcastDispatcher,
-            NotifShadeEventSource notifShadeEventSource,
-            NotificationEntryManager notificationEntryManager,
-            NotificationGutsManager notificationGutsManager,
-            NotificationLogger notificationLogger,
-            NotificationInterruptStateProvider notificationInterruptStateProvider,
-            NotificationViewHierarchyManager notificationViewHierarchyManager,
-            PanelExpansionStateManager panelExpansionStateManager,
-            KeyguardViewMediator keyguardViewMediator,
-            DisplayMetrics displayMetrics,
-            MetricsLogger metricsLogger,
-            @UiBackground Executor uiBgExecutor,
-            NotificationMediaManager notificationMediaManager,
-            NotificationLockscreenUserManager lockScreenUserManager,
-            NotificationRemoteInputManager remoteInputManager,
-            UserSwitcherController userSwitcherController,
-            NetworkController networkController,
-            BatteryController batteryController,
-            SysuiColorExtractor colorExtractor,
-            ScreenLifecycle screenLifecycle,
-            WakefulnessLifecycle wakefulnessLifecycle,
-            SysuiStatusBarStateController statusBarStateController,
-            Optional<BubblesManager> bubblesManagerOptional,
-            Optional<Bubbles> bubblesOptional,
-            VisualStabilityManager visualStabilityManager,
-            DeviceProvisionedController deviceProvisionedController,
-            NavigationBarController navigationBarController,
-            AccessibilityFloatingMenuController accessibilityFloatingMenuController,
-            Lazy<AssistManager> assistManagerLazy,
-            ConfigurationController configurationController,
-            NotificationShadeWindowController notificationShadeWindowController,
-            DozeParameters dozeParameters,
-            ScrimController scrimController,
-            Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
-            LockscreenGestureLogger lockscreenGestureLogger,
-            Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
-            DozeServiceHost dozeServiceHost,
-            PowerManager powerManager,
-            ScreenPinningRequest screenPinningRequest,
-            DozeScrimController dozeScrimController,
-            VolumeComponent volumeComponent,
-            CommandQueue commandQueue,
-            CentralSurfacesComponent.Factory statusBarComponentFactory,
-            PluginManager pluginManager,
-            ShadeController shadeController,
-            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
-            ViewMediatorCallback viewMediatorCallback,
-            InitController initController,
-            @Named(TIME_TICK_HANDLER_NAME) Handler timeTickHandler,
-            PluginDependencyProvider pluginDependencyProvider,
-            KeyguardDismissUtil keyguardDismissUtil,
-            ExtensionController extensionController,
-            UserInfoControllerImpl userInfoControllerImpl,
-            PhoneStatusBarPolicy phoneStatusBarPolicy,
-            KeyguardIndicationController keyguardIndicationController,
-            DemoModeController demoModeController,
-            Lazy<NotificationShadeDepthController> notificationShadeDepthController,
-            StatusBarTouchableRegionManager statusBarTouchableRegionManager,
-            NotificationIconAreaController notificationIconAreaController,
-            BrightnessSliderController.Factory brightnessSliderFactory,
-            ScreenOffAnimationController screenOffAnimationController,
-            WallpaperController wallpaperController,
-            OngoingCallController ongoingCallController,
-            StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
-            LockscreenShadeTransitionController transitionController,
-            FeatureFlags featureFlags,
-            KeyguardUnlockAnimationController keyguardUnlockAnimationController,
-            @Main Handler mainHandler,
-            @Main DelayableExecutor delayableExecutor,
-            @Main MessageRouter messageRouter,
-            WallpaperManager wallpaperManager,
-            Optional<StartingSurface> startingSurfaceOptional,
-            ActivityLaunchAnimator activityLaunchAnimator,
-            NotifPipelineFlags notifPipelineFlags,
-            InteractionJankMonitor jankMonitor,
-            DeviceStateManager deviceStateManager,
-            DreamOverlayStateController dreamOverlayStateController,
-            WiredChargingRippleController wiredChargingRippleController) {
-        return new CentralSurfaces(
-                context,
-                notificationsController,
-                fragmentService,
-                lightBarController,
-                autoHideController,
-                statusBarWindowController,
-                statusBarWindowStateController,
-                keyguardUpdateMonitor,
-                statusBarSignalPolicy,
-                pulseExpansionHandler,
-                notificationWakeUpCoordinator,
-                keyguardBypassController,
-                keyguardStateController,
-                headsUpManagerPhone,
-                dynamicPrivacyController,
-                falsingManager,
-                falsingCollector,
-                broadcastDispatcher,
-                notifShadeEventSource,
-                notificationEntryManager,
-                notificationGutsManager,
-                notificationLogger,
-                notificationInterruptStateProvider,
-                notificationViewHierarchyManager,
-                panelExpansionStateManager,
-                keyguardViewMediator,
-                displayMetrics,
-                metricsLogger,
-                uiBgExecutor,
-                notificationMediaManager,
-                lockScreenUserManager,
-                remoteInputManager,
-                userSwitcherController,
-                networkController,
-                batteryController,
-                colorExtractor,
-                screenLifecycle,
-                wakefulnessLifecycle,
-                statusBarStateController,
-                bubblesManagerOptional,
-                bubblesOptional,
-                visualStabilityManager,
-                deviceProvisionedController,
-                navigationBarController,
-                accessibilityFloatingMenuController,
-                assistManagerLazy,
-                configurationController,
-                notificationShadeWindowController,
-                dozeParameters,
-                scrimController,
-                lockscreenWallpaperLazy,
-                lockscreenGestureLogger,
-                biometricUnlockControllerLazy,
-                dozeServiceHost,
-                powerManager,
-                screenPinningRequest,
-                dozeScrimController,
-                volumeComponent,
-                commandQueue,
-                statusBarComponentFactory,
-                pluginManager,
-                shadeController,
-                statusBarKeyguardViewManager,
-                viewMediatorCallback,
-                initController,
-                timeTickHandler,
-                pluginDependencyProvider,
-                keyguardDismissUtil,
-                extensionController,
-                userInfoControllerImpl,
-                phoneStatusBarPolicy,
-                keyguardIndicationController,
-                demoModeController,
-                notificationShadeDepthController,
-                statusBarTouchableRegionManager,
-                notificationIconAreaController,
-                brightnessSliderFactory,
-                screenOffAnimationController,
-                wallpaperController,
-                ongoingCallController,
-                statusBarHideIconsForBouncerManager,
-                transitionController,
-                featureFlags,
-                keyguardUnlockAnimationController,
-                mainHandler,
-                delayableExecutor,
-                messageRouter,
-                wallpaperManager,
-                startingSurfaceOptional,
-                activityLaunchAnimator,
-                notifPipelineFlags,
-                jankMonitor,
-                deviceStateManager,
-                dreamOverlayStateController,
-                wiredChargingRippleController
-        );
-    }
+    CentralSurfacesInt bindsCentralSurfaces(CentralSurfacesImpl impl);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentComponent.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentComponent.java
index 2eba325..6717bc7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/dagger/StatusBarFragmentComponent.java
@@ -18,14 +18,12 @@
 
 import com.android.systemui.battery.BatteryMeterViewController;
 import com.android.systemui.dagger.qualifiers.RootView;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
 import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;
 import com.android.systemui.statusbar.phone.LightsOutNotifController;
 import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions;
 import com.android.systemui.statusbar.phone.PhoneStatusBarView;
 import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
 import com.android.systemui.statusbar.phone.StatusBarDemoMode;
-import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
 import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
 
 import dagger.BindsInstance;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
index 60f6df6..2c5251f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
@@ -25,7 +25,7 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.DisplayId
 import com.android.systemui.statusbar.CommandQueue
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import javax.inject.Inject
 
 /**
@@ -80,8 +80,8 @@
         }
 
         windowState = state
-        if (CentralSurfaces.DEBUG_WINDOW_STATE) {
-            Log.d(CentralSurfaces.TAG, "Status bar " + windowStateToString(state))
+        if (CentralSurfacesInt.DEBUG_WINDOW_STATE) {
+            Log.d(CentralSurfacesInt.TAG, "Status bar " + windowStateToString(state))
         }
         listeners.forEach { it.onStatusBarWindowStateChanged(state) }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/unfold/FoldAodAnimationController.kt b/packages/SystemUI/src/com/android/systemui/unfold/FoldAodAnimationController.kt
index d6dfcea..010da870 100644
--- a/packages/SystemUI/src/com/android/systemui/unfold/FoldAodAnimationController.kt
+++ b/packages/SystemUI/src/com/android/systemui/unfold/FoldAodAnimationController.kt
@@ -26,7 +26,7 @@
 import com.android.systemui.keyguard.WakefulnessLifecycle
 import com.android.systemui.statusbar.LightRevealScrim
 import com.android.systemui.statusbar.phone.ScreenOffAnimation
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.policy.CallbackController
 import com.android.systemui.unfold.FoldAodAnimationController.FoldAodAnimationStatus
 import com.android.systemui.util.settings.GlobalSettings
@@ -50,7 +50,7 @@
     private val globalSettings: GlobalSettings
 ) : CallbackController<FoldAodAnimationStatus>, ScreenOffAnimation, WakefulnessLifecycle.Observer {
 
-    private lateinit var mCentralSurfaces: CentralSurfaces
+    private lateinit var mCentralSurfaces: CentralSurfacesInt
 
     private var isFolded = false
     private var isFoldHandled = true
@@ -72,7 +72,7 @@
         }
     }
 
-    override fun initialize(centralSurfaces: CentralSurfaces, lightRevealScrim: LightRevealScrim) {
+    override fun initialize(centralSurfaces: CentralSurfacesInt, lightRevealScrim: LightRevealScrim) {
         this.mCentralSurfaces = centralSurfaces
 
         deviceStateManager.registerCallback(executor, FoldListener())
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
index 7f8656c..842d7ee 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
@@ -32,7 +32,7 @@
 import com.android.systemui.statusbar.commandline.CommandRegistry
 import com.android.systemui.statusbar.phone.BiometricUnlockController
 import com.android.systemui.statusbar.phone.KeyguardBypassController
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.policy.ConfigurationController
 import com.android.systemui.statusbar.policy.KeyguardStateController
 import com.android.systemui.util.leak.RotationUtils
@@ -61,7 +61,7 @@
     private lateinit var staticMockSession: MockitoSession
 
     private lateinit var controller: AuthRippleController
-    @Mock private lateinit var mCentralSurfaces: CentralSurfaces
+    @Mock private lateinit var mCentralSurfaces: CentralSurfacesInt
     @Mock private lateinit var rippleView: AuthRippleView
     @Mock private lateinit var commandRegistry: CommandRegistry
     @Mock private lateinit var configurationController: ConfigurationController
diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandlerTest.java
index c3fca29..07d9be7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandlerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandlerTest.java
@@ -43,7 +43,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.shared.system.InputChannelCompat;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBouncer;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
 import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent;
@@ -66,7 +66,7 @@
     StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
 
     @Mock
-    CentralSurfaces mCentralSurfaces;
+    CentralSurfacesInt mCentralSurfaces;
 
     @Mock
     NotificationShadeWindowController mNotificationShadeWindowController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
index f00fbe6..ee59ccb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
@@ -60,7 +60,7 @@
 import com.android.systemui.settings.UserContextProvider;
 import com.android.systemui.statusbar.NotificationShadeWindowController;
 import com.android.systemui.statusbar.VibratorHelper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.telephony.TelephonyListenerManager;
@@ -113,7 +113,7 @@
     @Mock private Handler mHandler;
     @Mock private UserContextProvider mUserContextProvider;
     @Mock private VibratorHelper mVibratorHelper;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
     @Mock private DialogLaunchAnimator mDialogLaunchAnimator;
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
index edcf479..0dd8d9b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
@@ -47,7 +47,7 @@
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.settings.UserTracker;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -112,7 +112,7 @@
         mNavBarHelper = new NavBarHelper(mContext, mAccessibilityManager,
                 mAccessibilityButtonModeObserver, mAccessibilityButtonTargetObserver,
                 mSystemActions, mOverviewProxyService, mAssistManagerLazy,
-                () -> Optional.of(mock(CentralSurfaces.class)),
+                () -> Optional.of(mock(CentralSurfacesInt.class)),
                 mNavigationModeController, mUserTracker, mDumpManager);
 
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java
index 4a740f6..b3dd568 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java
@@ -91,7 +91,7 @@
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.NotificationShadeDepthController;
 import com.android.systemui.statusbar.phone.AutoHideController;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.LightBarController;
 import com.android.systemui.statusbar.phone.LightBarTransitionsController;
 import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
@@ -186,7 +186,7 @@
     @Mock
     private DeadZone mDeadZone;
     @Mock
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     private DeviceConfigProxyFake mDeviceConfigProxyFake = new DeviceConfigProxyFake();
 
     @Rule
diff --git a/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java b/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
index 91f8a40..e1b9e09 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
@@ -48,7 +48,7 @@
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.power.PowerUI.WarningsUI;
 import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -89,8 +89,8 @@
     private IThermalEventListener mSkinThermalEventListener;
     @Mock private BroadcastDispatcher mBroadcastDispatcher;
     @Mock private CommandQueue mCommandQueue;
-    @Mock private Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private Lazy<Optional<CentralSurfacesInt>> mCentralSurfacesOptionalLazy;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
 
     @Before
     public void setup() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index a518b80..465f1a0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -62,7 +62,7 @@
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.phone.AutoTileManager;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -135,7 +135,7 @@
                         () -> mock(AutoTileManager.class),
                         mock(DumpManager.class),
                         mock(BroadcastDispatcher.class),
-                        Optional.of(mock(CentralSurfaces.class)),
+                        Optional.of(mock(CentralSurfacesInt.class)),
                         mock(QSLogger.class),
                         mock(UiEventLogger.class),
                         mock(UserTracker.class),
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
index 8cf3fe2..b1b959d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java
@@ -65,7 +65,7 @@
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.statusbar.phone.AutoTileManager;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.tuner.TunerService;
 import com.android.systemui.util.settings.FakeSettings;
@@ -111,7 +111,7 @@
     @Mock
     private QSTile.State mMockState;
     @Mock
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     @Mock
     private QSLogger mQSLogger;
     @Mock
@@ -436,7 +436,7 @@
                 QSFactory defaultFactory, Handler mainHandler, Looper bgLooper,
                 PluginManager pluginManager, TunerService tunerService,
                 Provider<AutoTileManager> autoTiles, DumpManager dumpManager,
-                BroadcastDispatcher broadcastDispatcher, CentralSurfaces centralSurfaces,
+                BroadcastDispatcher broadcastDispatcher, CentralSurfacesInt centralSurfaces,
                 QSLogger qsLogger, UiEventLogger uiEventLogger, UserTracker userTracker,
                 SecureSettings secureSettings, CustomTileStatePersister customTileStatePersister,
                 TileServiceRequestController.Builder tileServiceRequestControllerBuilder,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
index 6b7e5b93..410055e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
@@ -48,7 +48,7 @@
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.phone.AutoTileManager;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.policy.BluetoothController;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -97,7 +97,7 @@
     @Mock
     private DumpManager mDumpManager;
     @Mock
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     @Mock
     private QSLogger mQSLogger;
     @Mock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
index 7ab49584f..65da719 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
@@ -19,7 +19,7 @@
 import static com.android.systemui.screenshot.ScreenshotController.ACTION_TYPE_SHARE;
 import static com.android.systemui.screenshot.ScreenshotController.EXTRA_ID;
 import static com.android.systemui.screenshot.ScreenshotController.EXTRA_SMART_ACTIONS_ENABLED;
-import static com.android.systemui.statusbar.phone.CentralSurfaces.SYSTEM_DIALOG_REASON_SCREENSHOT;
+import static com.android.systemui.statusbar.phone.CentralSurfacesInt.SYSTEM_DIALOG_REASON_SCREENSHOT;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -41,7 +41,7 @@
 
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.shared.system.ActivityManagerWrapper;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +59,7 @@
 public class ActionProxyReceiverTest extends SysuiTestCase {
 
     @Mock
-    private CentralSurfaces mMockCentralSurfaces;
+    private CentralSurfacesInt mMockCentralSurfaces;
     @Mock
     private ActivityManagerWrapper mMockActivityManagerWrapper;
     @Mock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
index 562c970..1014a73 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt
@@ -19,7 +19,7 @@
 import com.android.systemui.statusbar.notification.stack.AmbientState
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
-import com.android.systemui.statusbar.phone.CentralSurfaces
+import com.android.systemui.statusbar.phone.CentralSurfacesInt
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.statusbar.phone.LSShadeTransitionLogger
 import com.android.systemui.statusbar.phone.NotificationPanelViewController
@@ -74,7 +74,7 @@
     @Mock lateinit var depthController: NotificationShadeDepthController
     @Mock lateinit var stackscroller: NotificationStackScrollLayout
     @Mock lateinit var expandHelperCallback: ExpandHelper.Callback
-    @Mock lateinit var mCentralSurfaces: CentralSurfaces
+    @Mock lateinit var mCentralSurfaces: CentralSurfacesInt
     @Mock lateinit var qS: QS
     @Mock lateinit var singleShadeOverScroller: SingleShadeLockScreenOverScroller
     @Mock lateinit var splitShadeOverScroller: SplitShadeLockScreenOverScroller
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
index 2691ff9..2073744 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
@@ -49,7 +49,7 @@
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.policy.RemoteInputUriController;
 
 import com.google.android.collect.Sets;
@@ -105,7 +105,7 @@
                 mVisibilityProvider,
                 mEntryManager,
                 mock(RemoteInputNotificationRebuilder.class),
-                () -> Optional.of(mock(CentralSurfaces.class)),
+                () -> Optional.of(mock(CentralSurfacesInt.class)),
                 mStateController,
                 Handler.createAsync(Looper.myLooper()),
                 mRemoteInputUriController,
@@ -196,7 +196,7 @@
                 NotificationVisibilityProvider visibilityProvider,
                 NotificationEntryManager notificationEntryManager,
                 RemoteInputNotificationRebuilder rebuilder,
-                Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+                Lazy<Optional<CentralSurfacesInt>> centralSurfacesOptionalLazy,
                 StatusBarStateController statusBarStateController,
                 Handler mainHandler,
                 RemoteInputUriController remoteInputUriController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
index 3500e4d..3e466dd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
@@ -45,7 +45,7 @@
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
 import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.policy.RemoteInputUriController;
 
 import org.junit.Before;
@@ -103,7 +103,7 @@
                 mVisibilityProvider,
                 mNotificationEntryManager,
                 new RemoteInputNotificationRebuilder(mContext),
-                () -> Optional.of(mock(CentralSurfaces.class)),
+                () -> Optional.of(mock(CentralSurfacesInt.class)),
                 mStatusBarStateController,
                 Handler.createAsync(Looper.myLooper()),
                 mRemoteInputUriController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
index e9d8f58..47eddb9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
@@ -82,7 +82,7 @@
 import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
 import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 import com.android.systemui.wmshell.BubblesManager;
@@ -124,7 +124,7 @@
     @Mock private NotificationInfo.CheckSaveListener mCheckSaveListener;
     @Mock private OnSettingsClickListener mOnSettingsClickListener;
     @Mock private DeviceProvisionedController mDeviceProvisionedController;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private AccessibilityManager mAccessibilityManager;
     @Mock private HighPriorityProvider mHighPriorityProvider;
     @Mock private INotificationManager mINotificationManager;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java
index 6409967..4dc4dbc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java
@@ -69,7 +69,7 @@
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController.NotificationPanelEvent;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.ScrimController;
@@ -116,7 +116,7 @@
     @Mock(answer = Answers.RETURNS_SELF)
     private NotificationSwipeHelper.Builder mNotificationSwipeHelperBuilder;
     @Mock private NotificationSwipeHelper mNotificationSwipeHelper;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private ScrimController mScrimController;
     @Mock private NotificationGroupManagerLegacy mLegacyGroupManager;
     @Mock private SectionHeaderController mSilentHeaderController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index e8608fa7..ffceb62c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -66,7 +66,7 @@
 import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.FooterView;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
+import com.android.systemui.statusbar.phone.CentralSurfacesInt;
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
@@ -95,7 +95,7 @@
     private AmbientState mAmbientState;
 
     @Rule public MockitoRule mockito = MockitoJUnit.rule();
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private SysuiStatusBarStateController mBarState;
     @Mock private NotificationGroupManagerLegacy mGroupMembershipManger;
     @Mock private NotificationGroupManagerLegacy mGroupExpansionManager;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
index 9bfb2c4..058bac3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java
@@ -58,7 +58,7 @@
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
 public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private ShadeController mShadeController;
     @Mock private CommandQueue mCommandQueue;
     @Mock private NotificationPanelViewController mNotificationPanelViewController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
similarity index 99%
rename from packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesTest.java
rename to packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
index 84edabd..f479a46 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
@@ -178,12 +178,12 @@
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
 @RunWithLooper(setAsMainLooper = true)
-public class CentralSurfacesTest extends SysuiTestCase {
+public class CentralSurfacesImplTest extends SysuiTestCase {
 
     private static final int FOLD_STATE_FOLDED = 0;
     private static final int FOLD_STATE_UNFOLDED = 1;
 
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesImpl mCentralSurfaces;
     private FakeMetricsLogger mMetricsLogger;
     private PowerManager mPowerManager;
     private TestableNotificationInterruptStateProviderImpl mNotificationInterruptStateProvider;
@@ -383,7 +383,7 @@
         when(mOperatorNameViewControllerFactory.create(any()))
                 .thenReturn(mOperatorNameViewController);
 
-        mCentralSurfaces = new CentralSurfaces(
+        mCentralSurfaces = new CentralSurfacesImpl(
                 mContext,
                 mNotificationsController,
                 mock(FragmentService.class),
@@ -479,7 +479,7 @@
                 mDreamOverlayStateController,
                 mWiredChargingRippleController);
         when(mKeyguardViewMediator.registerCentralSurfaces(
-                any(CentralSurfaces.class),
+                any(CentralSurfacesImpl.class),
                 any(NotificationPanelViewController.class),
                 any(PanelExpansionStateManager.class),
                 any(BiometricUnlockController.class),
@@ -791,7 +791,7 @@
 
     @Test
     public void testDumpBarTransitions_DoesNotCrash() {
-        CentralSurfaces.dumpBarTransitions(
+        CentralSurfacesInt.dumpBarTransitions(
                 new PrintWriter(new ByteArrayOutputStream()), "var", /* transitions= */ null);
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
index 26ac70c..af3f3bc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
@@ -82,7 +82,7 @@
     @Mock private NotificationShadeWindowController mNotificationShadeWindowController;
     @Mock private PowerManager mPowerManager;
     @Mock private WakefulnessLifecycle mWakefullnessLifecycle;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private NotificationIconAreaController mNotificationIconAreaController;
     @Mock private NotificationShadeWindowViewController mNotificationShadeWindowViewController;
     @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaTest.kt
index 31465f4..a6f7d86 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaTest.kt
@@ -25,7 +25,7 @@
 class KeyguardBottomAreaTest : SysuiTestCase() {
 
     @Mock
-    private lateinit var mCentralSurfaces: CentralSurfaces
+    private lateinit var mCentralSurfaces: CentralSurfacesInt
     private lateinit var mKeyguardBottomArea: KeyguardBottomAreaView
 
     @Before
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java
index f51c428..2ded09b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java
@@ -161,7 +161,7 @@
     private static final int NOTIFICATION_SCRIM_TOP_PADDING_IN_SPLIT_SHADE = 50;
 
     @Mock
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     @Mock
     private NotificationStackScrollLayout mNotificationStackScrollLayout;
     @Mock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
index 7e245fc..3e354f2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
@@ -63,7 +63,7 @@
     @Mock
     private lateinit var mStatusBarStateController: SysuiStatusBarStateController
     @Mock
-    private lateinit var mCentralSurfaces: CentralSurfaces
+    private lateinit var mCentralSurfaces: CentralSurfacesInt
     @Mock
     private lateinit var mDockManager: DockManager
     @Mock
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 1d86fb1..37e702f 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
@@ -73,7 +73,7 @@
     @Mock private DragDownHelper mDragDownHelper;
     @Mock private SysuiStatusBarStateController mStatusBarStateController;
     @Mock private ShadeController mShadeController;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private DockManager mDockManager;
     @Mock private NotificationPanelViewController mNotificationPanelViewController;
     @Mock private NotificationStackScrollLayout mNotificationStackScrollLayout;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
index aaa5a6b..6576f3d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
@@ -79,7 +79,7 @@
     @Mock private ViewMediatorCallback mViewMediatorCallback;
     @Mock private LockPatternUtils mLockPatternUtils;
     @Mock private KeyguardStateController mKeyguardStateController;
-    @Mock private CentralSurfaces mCentralSurfaces;
+    @Mock private CentralSurfacesInt mCentralSurfaces;
     @Mock private ViewGroup mContainer;
     @Mock private NotificationPanelViewController mNotificationPanelView;
     @Mock private BiometricUnlockController mBiometricUnlockController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
index fa867e2..5de5138 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
@@ -115,7 +115,7 @@
     @Mock
     private NotificationRemoteInputManager mRemoteInputManager;
     @Mock
-    private CentralSurfaces mCentralSurfaces;
+    private CentralSurfacesInt mCentralSurfaces;
     @Mock
     private KeyguardStateController mKeyguardStateController;
     @Mock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
index 1a3dd3a..893ae4a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
@@ -80,7 +80,7 @@
     private CommandQueue mCommandQueue;
     private FakeMetricsLogger mMetricsLogger;
     private ShadeController mShadeController = mock(ShadeController.class);
-    private CentralSurfaces mCentralSurfaces = mock(CentralSurfaces.class);
+    private CentralSurfacesInt mCentralSurfaces = mock(CentralSurfacesInt.class);
     private InitController mInitController = new InitController();
 
     @Before
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt
index 0936b77..e743def 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationControllerTest.kt
@@ -62,7 +62,7 @@
     @Mock
     private lateinit var globalSettings: GlobalSettings
     @Mock
-    private lateinit var mCentralSurfaces: CentralSurfaces
+    private lateinit var mCentralSurfaces: CentralSurfacesInt
     @Mock
     private lateinit var notificationPanelViewController: NotificationPanelViewController
     @Mock