summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java7
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java4
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java4
15 files changed, 96 insertions, 32 deletions
diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
index d3a6cde66e84..a65cf2e5083e 100644
--- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
@@ -28,6 +28,7 @@ import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.power.EnhancedEstimates;
import com.android.systemui.power.EnhancedEstimatesImpl;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl;
import com.android.systemui.statusbar.car.CarStatusBar;
@@ -70,6 +71,12 @@ abstract class CarSystemUIModule {
@Singleton
@Provides
+ static Divider provideDivider(Context context) {
+ return new Divider(context);
+ }
+
+ @Singleton
+ @Provides
@Named(LEAK_REPORT_EMAIL_NAME)
static String provideLeakReportEmail() {
return "buganizer-system+181579@google.com";
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index fc0b317d04ff..ab63b06cffa9 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -81,6 +81,7 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.qs.car.CarQSFragment;
import com.android.systemui.shared.plugins.PluginManager;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.FlingAnimationUtils;
@@ -136,6 +137,7 @@ import com.android.systemui.statusbar.policy.ZenModeController;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.Map;
+import java.util.Optional;
import javax.inject.Named;
@@ -302,6 +304,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
CommandQueue commandQueue,
PluginManager pluginManager,
RemoteInputUriController remoteInputUriController,
+ Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory,
/* Car Settings injected components. */
CarNavigationBarController carNavigationBarController) {
@@ -372,6 +375,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
commandQueue,
pluginManager,
remoteInputUriController,
+ dividerOptional,
superStatusBarViewFactory);
mScrimController = scrimController;
mCarNavigationBarController = carNavigationBarController;
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
index b19fae891a58..7de2212eef4d 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
@@ -38,6 +38,7 @@ import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.navigationbar.car.CarNavigationBarController;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.plugins.PluginManager;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.NavigationBarController;
@@ -87,6 +88,8 @@ import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
+import java.util.Optional;
+
import javax.inject.Named;
import javax.inject.Singleton;
@@ -170,6 +173,7 @@ public class CarStatusBarModule {
CommandQueue commandQueue,
PluginManager pluginManager,
RemoteInputUriController remoteInputUriController,
+ Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory,
CarNavigationBarController carNavigationBarController) {
return new CarStatusBar(
@@ -238,6 +242,7 @@ public class CarStatusBarModule {
commandQueue,
pluginManager,
remoteInputUriController,
+ dividerOptional,
superStatusBarViewFactory,
carNavigationBarController);
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java
index 9f5493720bef..3cf14d65e5b8 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java
@@ -28,6 +28,8 @@ import com.android.systemui.pip.PipUI;
import com.android.systemui.power.PowerUI;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.RecentsModule;
+import com.android.systemui.shortcut.ShortcutKeyDispatcher;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.notification.InstantAppNotifier;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarModule;
@@ -52,11 +54,17 @@ public abstract class SystemUIBinder {
@ClassKey(AuthController.class)
public abstract SystemUI bindAuthController(AuthController service);
+ /** Inject into Divider. */
+ @Binds
+ @IntoMap
+ @ClassKey(Divider.class)
+ public abstract SystemUI bindDivider(Divider sysui);
+
/** Inject into GarbageMonitor.Service. */
@Binds
@IntoMap
@ClassKey(GarbageMonitor.Service.class)
- public abstract SystemUI bindGarbageMonitorService(GarbageMonitor.Service service);
+ public abstract SystemUI bindGarbageMonitorService(GarbageMonitor.Service sysui);
/** Inject into GlobalActionsComponent. */
@Binds
@@ -106,6 +114,12 @@ public abstract class SystemUIBinder {
@ClassKey(ScreenDecorations.class)
public abstract SystemUI bindScreenDecorations(ScreenDecorations sysui);
+ /** Inject into ShortcutKeyDispatcher. */
+ @Binds
+ @IntoMap
+ @ClassKey(ShortcutKeyDispatcher.class)
+ public abstract SystemUI bindsShortcutKeyDispatcher(ShortcutKeyDispatcher sysui);
+
/** Inject into SizeCompatModeActivityController. */
@Binds
@IntoMap
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
index 7b8d3bc4a121..fd2824d8845f 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
@@ -19,12 +19,15 @@ package com.android.systemui.dagger;
import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME;
import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME;
+import android.content.Context;
+
import androidx.annotation.Nullable;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.power.EnhancedEstimates;
import com.android.systemui.power.EnhancedEstimatesImpl;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl;
import com.android.systemui.statusbar.notification.collection.NotificationData;
@@ -77,4 +80,10 @@ abstract class SystemUIDefaultModule {
static boolean provideAllowNotificationLongPress() {
return true;
}
+
+ @Singleton
+ @Provides
+ static Divider provideDivider(Context context) {
+ return new Divider(context);
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
index b3a5181d1ca5..a248c7fe4bbb 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
@@ -25,6 +25,7 @@ import com.android.systemui.DumpController;
import com.android.systemui.assist.AssistModule;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.notification.people.PeopleHubModule;
import com.android.systemui.statusbar.phone.KeyguardLiftController;
@@ -75,5 +76,8 @@ public abstract class SystemUIModule {
abstract CommandQueue optionalCommandQueue();
@BindsOptionalOf
+ abstract Divider optionalDivider();
+
+ @BindsOptionalOf
abstract StatusBar optionalStatusBar();
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
index 7f11e56ba168..60bc6b6855e6 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java
@@ -57,8 +57,8 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
private final static String TAG = "OverviewProxyRecentsImpl";
@Nullable
private final Lazy<StatusBar> mStatusBarLazy;
+ private final Optional<Divider> mDividerOptional;
- private SysUiServiceProvider mSysUiServiceProvider;
private Context mContext;
private Handler mHandler;
private TrustManager mTrustManager;
@@ -66,14 +66,15 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
@Inject
- public OverviewProxyRecentsImpl(Optional<Lazy<StatusBar>> statusBarLazy) {
+ public OverviewProxyRecentsImpl(Optional<Lazy<StatusBar>> statusBarLazy,
+ Optional<Divider> dividerOptional) {
mStatusBarLazy = statusBarLazy.orElse(null);
+ mDividerOptional = dividerOptional;
}
@Override
public void onStart(Context context, SysUiServiceProvider sysUiServiceProvider) {
mContext = context;
- mSysUiServiceProvider = sysUiServiceProvider;
mHandler = new Handler();
mTrustManager = (TrustManager) context.getSystemService(Context.TRUST_SERVICE);
mOverviewProxyService = Dependency.get(OverviewProxyService.class);
@@ -164,10 +165,8 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
runningTask.id, stackCreateMode, initialBounds)) {
// The overview service is handling split screen, so just skip the wait for the
// first draw and notify the divider to start animating now
- final Divider divider = mSysUiServiceProvider.getComponent(Divider.class);
- if (divider != null) {
- divider.onRecentsDrawn();
- }
+ mDividerOptional.ifPresent(Divider::onRecentsDrawn);
+
return true;
}
} else {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 3fc139882693..ba9fc3da10df 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -80,6 +80,7 @@ import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -102,6 +103,7 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
private final Context mContext;
private final PipUI mPipUI;
+ private final Optional<Divider> mDividerOptional;
private SysUiState mSysUiState;
private final Handler mHandler;
private final NavigationBarController mNavBarController;
@@ -208,10 +210,7 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
}
long token = Binder.clearCallingIdentity();
try {
- Divider divider = SysUiServiceProvider.getComponent(mContext, Divider.class);
- if (divider != null) {
- divider.onDockedFirstAnimationFrame();
- }
+ mDividerOptional.ifPresent(Divider::onDockedFirstAnimationFrame);
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -241,11 +240,9 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
}
long token = Binder.clearCallingIdentity();
try {
- Divider divider = SysUiServiceProvider.getComponent(mContext, Divider.class);
- if (divider != null) {
- return divider.getView().getNonMinimizedSplitScreenSecondaryBounds();
- }
- return null;
+ return mDividerOptional.map(
+ divider -> divider.getView().getNonMinimizedSplitScreenSecondaryBounds())
+ .orElse(null);
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -475,11 +472,12 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
private final IBinder.DeathRecipient mOverviewServiceDeathRcpt
= this::cleanupAfterDeath;
+ @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
@Inject
public OverviewProxyService(Context context, DeviceProvisionedController provisionController,
NavigationBarController navBarController, NavigationModeController navModeController,
- StatusBarWindowController statusBarWinController,
- SysUiState sysUiState, PipUI pipUI) {
+ StatusBarWindowController statusBarWinController, SysUiState sysUiState, PipUI pipUI,
+ Optional<Divider> dividerOptional) {
mContext = context;
mPipUI = pipUI;
mHandler = new Handler();
@@ -487,6 +485,7 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
mStatusBarWinController = statusBarWinController;
mDeviceProvisionedController = provisionController;
mConnectionBackoffAttempts = 0;
+ mDividerOptional = dividerOptional;
mRecentsComponentName = ComponentName.unflattenFromString(context.getString(
com.android.internal.R.string.config_recentsComponentName));
mQuickStepIntent = new Intent(ACTION_QUICKSTEP)
diff --git a/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java b/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java
index df9791d1bd37..a571f011fff3 100644
--- a/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java
+++ b/packages/SystemUI/src/com/android/systemui/shortcut/ShortcutKeyDispatcher.java
@@ -34,13 +34,18 @@ import com.android.systemui.recents.Recents;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.stackdivider.DividerView;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
/**
* Dispatches shortcut to System UI components
*/
+@Singleton
public class ShortcutKeyDispatcher extends SystemUI
implements ShortcutKeyServiceProxy.Callbacks {
private static final String TAG = "ShortcutKeyDispatcher";
+ private final Divider mDivider;
private ShortcutKeyServiceProxy mShortcutKeyServiceProxy = new ShortcutKeyServiceProxy(this);
private IWindowManager mWindowManagerService = WindowManagerGlobal.getWindowManagerService();
@@ -53,8 +58,10 @@ public class ShortcutKeyDispatcher extends SystemUI
protected final long SC_DOCK_LEFT = META_MASK | KeyEvent.KEYCODE_LEFT_BRACKET;
protected final long SC_DOCK_RIGHT = META_MASK | KeyEvent.KEYCODE_RIGHT_BRACKET;
- public ShortcutKeyDispatcher(Context context) {
+ @Inject
+ public ShortcutKeyDispatcher(Context context, Divider divider) {
super(context);
+ mDivider = divider;
}
/**
@@ -95,7 +102,7 @@ public class ShortcutKeyDispatcher extends SystemUI
: SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT, null, -1);
} else {
// If there is already a docked window, we respond by resizing the docking pane.
- DividerView dividerView = getComponent(Divider.class).getView();
+ DividerView dividerView = mDivider.getView();
DividerSnapAlgorithm snapAlgorithm = dividerView.getSnapAlgorithm();
int dividerPosition = dividerView.getCurrentPosition();
DividerSnapAlgorithm.SnapTarget currentTarget =
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
index c8b2b6aee0b3..d12f3ee5a1ec 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
@@ -59,7 +59,6 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks {
public void start() {
mWindowManager = new DividerWindowManager(mContext);
update(mContext.getResources().getConfiguration());
- putComponent(Divider.class, this);
mDockDividerVisibilityListener = new DockDividerVisibilityListener();
try {
WindowManagerGlobal.getWindowManagerService().registerDockedStackListener(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
index 816327fe19bd..51b1bc72bda3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
@@ -163,7 +163,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
private int mDisabledFlags2;
private StatusBar mStatusBar;
private Recents mRecents;
- private Divider mDivider;
+ private final Divider mDivider;
private WindowManager mWindowManager;
private final CommandQueue mCommandQueue;
private long mLastLockToAppLongPress;
@@ -266,7 +266,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
StatusBarStateController statusBarStateController,
SysUiState sysUiFlagsContainer,
BroadcastDispatcher broadcastDispatcher,
- CommandQueue commandQueue) {
+ CommandQueue commandQueue,
+ Divider divider) {
mAccessibilityManagerWrapper = accessibilityManagerWrapper;
mDeviceProvisionedController = deviceProvisionedController;
mStatusBarStateController = statusBarStateController;
@@ -279,6 +280,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
mNavBarMode = navigationModeController.addListener(this);
mBroadcastDispatcher = broadcastDispatcher;
mCommandQueue = commandQueue;
+ mDivider = divider;
}
// ----- Fragment Lifecycle Callbacks -----
@@ -289,7 +291,6 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
mCommandQueue.observe(getLifecycle(), this);
mStatusBar = SysUiServiceProvider.getComponent(getContext(), StatusBar.class);
mRecents = SysUiServiceProvider.getComponent(getContext(), Recents.class);
- mDivider = SysUiServiceProvider.getComponent(getContext(), Divider.class);
mWindowManager = getContext().getSystemService(WindowManager.class);
mAccessibilityManager = getContext().getSystemService(AccessibilityManager.class);
mContentResolver = getContext().getContentResolver();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index cff282472074..57dcf77b9d6b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -247,6 +247,7 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Map;
+import java.util.Optional;
import javax.inject.Named;
@@ -396,6 +397,7 @@ public class StatusBar extends SystemUI implements DemoMode,
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
private final PluginManager mPluginManager;
private final RemoteInputUriController mRemoteInputUriController;
+ private final Optional<Divider> mDividerOptional;
private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
// expanded notifications
@@ -633,6 +635,7 @@ public class StatusBar extends SystemUI implements DemoMode,
* StatusBar is considered optional, and therefore can not be marked as @Inject directly.
* Instead, an @Provide method is included.
*/
+ @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public StatusBar(
Context context,
FeatureFlags featureFlags,
@@ -700,6 +703,7 @@ public class StatusBar extends SystemUI implements DemoMode,
CommandQueue commandQueue,
PluginManager pluginManager,
RemoteInputUriController remoteInputUriController,
+ Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory) {
super(context);
mFeatureFlags = featureFlags;
@@ -767,6 +771,8 @@ public class StatusBar extends SystemUI implements DemoMode,
mCommandQueue = commandQueue;
mPluginManager = pluginManager;
mRemoteInputUriController = remoteInputUriController;
+ mDividerOptional = dividerOptional;
+
mSuperStatusBarViewFactory = superStatusBarViewFactory;
mBubbleExpandListener =
@@ -1470,8 +1476,8 @@ public class StatusBar extends SystemUI implements DemoMode,
: SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
return mRecents.splitPrimaryTask(createMode, null, metricsDockAction);
} else {
- Divider divider = getComponent(Divider.class);
- if (divider != null) {
+ if (mDividerOptional.isPresent()) {
+ Divider divider = mDividerOptional.get();
if (divider.isMinimized() && !divider.isHomeStackResizable()) {
// Undocking from the minimized state is not supported
return false;
@@ -3945,14 +3951,14 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void appTransitionCancelled(int displayId) {
if (displayId == mDisplayId) {
- getComponent(Divider.class).onAppTransitionFinished();
+ mDividerOptional.ifPresent(Divider::onAppTransitionFinished);
}
}
@Override
public void appTransitionFinished(int displayId) {
if (displayId == mDisplayId) {
- getComponent(Divider.class).onAppTransitionFinished();
+ mDividerOptional.ifPresent(Divider::onAppTransitionFinished);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
index 67f6a0ca6b72..9e0eb3570b59 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
@@ -39,6 +39,7 @@ import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.plugins.PluginManager;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.NavigationBarController;
@@ -73,6 +74,8 @@ import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
+import java.util.Optional;
+
import javax.inject.Named;
import javax.inject.Singleton;
@@ -157,6 +160,7 @@ public class StatusBarModule {
CommandQueue commandQueue,
PluginManager pluginManager,
RemoteInputUriController remoteInputUriController,
+ Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory) {
return new StatusBar(
context,
@@ -225,6 +229,7 @@ public class StatusBarModule {
commandQueue,
pluginManager,
remoteInputUriController,
+ dividerOptional,
superStatusBarViewFactory);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
index 125500178d30..2779701db680 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
@@ -95,6 +95,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
private SysUiState mMockSysUiState;
@Mock
private BroadcastDispatcher mBroadcastDispatcher;
+ @Mock
+ private Divider mDivider;
private AccessibilityManagerWrapper mAccessibilityWrapper =
new AccessibilityManagerWrapper(mContext) {
@@ -153,7 +155,6 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
private void setupSysuiDependency() {
mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class));
mSysuiContext.putComponent(Recents.class, mock(Recents.class));
- mSysuiContext.putComponent(Divider.class, mock(Divider.class));
Display display = new Display(DisplayManagerGlobal.getInstance(), EXTERNAL_DISPLAY_ID,
new DisplayInfo(), DEFAULT_DISPLAY_ADJUSTMENTS);
@@ -161,7 +162,6 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
display);
mSysuiTestableContextExternal.putComponent(StatusBar.class, mock(StatusBar.class));
mSysuiTestableContextExternal.putComponent(Recents.class, mock(Recents.class));
- mSysuiTestableContextExternal.putComponent(Divider.class, mock(Divider.class));
injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
WindowManager windowManager = mock(WindowManager.class);
@@ -251,7 +251,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
mock(StatusBarStateController.class),
mMockSysUiState,
mBroadcastDispatcher,
- mCommandQueue);
+ mCommandQueue,
+ mDivider);
}
private class HostCallbacksForExternalDisplay extends
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index ecb2d8190cfc..1db926dfd196 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -92,6 +92,7 @@ import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shared.plugins.PluginManager;
+import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -145,6 +146,7 @@ import org.mockito.MockitoAnnotations;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
+import java.util.Optional;
import dagger.Lazy;
@@ -233,6 +235,7 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private KeyguardLiftController mKeyguardLiftController;
@Mock private CommandQueue mCommandQueue;
@Mock private PluginManager mPluginManager;
+ @Mock private Divider mDivider;
@Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
@Before
@@ -372,6 +375,7 @@ public class StatusBarTest extends SysuiTestCase {
mCommandQueue,
mPluginManager,
mRemoteInputUriController,
+ Optional.of(mDivider),
mSuperStatusBarViewFactory);
when(mStatusBarWindowView.findViewById(R.id.lock_icon_container)).thenReturn(