Merge "Migrate splitscreen to WM shell lib (3/n)"
This commit is contained in:
@@ -61,7 +61,7 @@ import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.shared.plugins.PluginManagerImpl;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.DevicePolicyManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.phone.AutoHideController;
|
||||
@@ -193,7 +193,7 @@ public class DependencyProvider {
|
||||
SysUiState sysUiFlagsContainer,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
CommandQueue commandQueue,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
ShadeController shadeController,
|
||||
@@ -215,7 +215,7 @@ public class DependencyProvider {
|
||||
sysUiFlagsContainer,
|
||||
broadcastDispatcher,
|
||||
commandQueue,
|
||||
splitScreenControllerOptional,
|
||||
splitScreenOptional,
|
||||
recentsOptional,
|
||||
statusBarLazy,
|
||||
shadeController,
|
||||
|
||||
@@ -122,7 +122,7 @@ import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.AutoHideUiElement;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.CommandQueue.Callbacks;
|
||||
@@ -179,7 +179,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
private final NavigationModeController mNavigationModeController;
|
||||
private final BroadcastDispatcher mBroadcastDispatcher;
|
||||
private final CommandQueue mCommandQueue;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private final Optional<Recents> mRecentsOptional;
|
||||
private final SystemActions mSystemActions;
|
||||
private final Handler mHandler;
|
||||
@@ -406,7 +406,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
SysUiState sysUiFlagsContainer,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
CommandQueue commandQueue,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional, Lazy<StatusBar> statusBarLazy,
|
||||
ShadeController shadeController,
|
||||
NotificationRemoteInputManager notificationRemoteInputManager,
|
||||
@@ -430,7 +430,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
mNavBarMode = navigationModeController.addListener(this);
|
||||
mBroadcastDispatcher = broadcastDispatcher;
|
||||
mCommandQueue = commandQueue;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mRecentsOptional = recentsOptional;
|
||||
mSystemActions = systemActions;
|
||||
mHandler = mainHandler;
|
||||
@@ -528,7 +528,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
}
|
||||
mNavigationBarView.setNavigationIconHints(mNavigationIconHints);
|
||||
mNavigationBarView.setWindowVisible(isNavBarWindowVisible());
|
||||
mSplitScreenControllerOptional.ifPresent(mNavigationBarView::registerDockedListener);
|
||||
mSplitScreenOptional.ifPresent(mNavigationBarView::registerDockedListener);
|
||||
|
||||
prepareNavigationBarView();
|
||||
checkNavBarModes();
|
||||
@@ -691,8 +691,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
return;
|
||||
}
|
||||
|
||||
if (mStartingQuickSwitchRotation == -1 || mSplitScreenControllerOptional
|
||||
.map(SplitScreenController::isDividerVisible).orElse(false)) {
|
||||
if (mStartingQuickSwitchRotation == -1 || mSplitScreenOptional
|
||||
.map(SplitScreen::isDividerVisible).orElse(false)) {
|
||||
// Hide the secondary home handle if we are in multiwindow since apps in multiwindow
|
||||
// aren't allowed to set the display orientation
|
||||
resetSecondaryHandle();
|
||||
@@ -1251,7 +1251,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
|| ActivityManager.isLowRamDeviceStatic()
|
||||
// If we are connected to the overview service, then disable the recents button
|
||||
|| mOverviewProxyService.getProxy() != null
|
||||
|| !mSplitScreenControllerOptional.map(splitScreen ->
|
||||
|| !mSplitScreenOptional.map(splitScreen ->
|
||||
splitScreen.getDividerView().getSnapAlgorithm().isSplitScreenFeasible())
|
||||
.orElse(false)) {
|
||||
return false;
|
||||
|
||||
@@ -55,7 +55,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.CommandQueue.Callbacks;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
@@ -96,7 +96,7 @@ public class NavigationBarController implements Callbacks,
|
||||
private final SysUiState mSysUiFlagsContainer;
|
||||
private final BroadcastDispatcher mBroadcastDispatcher;
|
||||
private final CommandQueue mCommandQueue;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private final Optional<Recents> mRecentsOptional;
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final ShadeController mShadeController;
|
||||
@@ -130,7 +130,7 @@ public class NavigationBarController implements Callbacks,
|
||||
SysUiState sysUiFlagsContainer,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
CommandQueue commandQueue,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
ShadeController shadeController,
|
||||
@@ -152,7 +152,7 @@ public class NavigationBarController implements Callbacks,
|
||||
mSysUiFlagsContainer = sysUiFlagsContainer;
|
||||
mBroadcastDispatcher = broadcastDispatcher;
|
||||
mCommandQueue = commandQueue;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mRecentsOptional = recentsOptional;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mShadeController = shadeController;
|
||||
@@ -278,7 +278,7 @@ public class NavigationBarController implements Callbacks,
|
||||
mSysUiFlagsContainer,
|
||||
mBroadcastDispatcher,
|
||||
mCommandQueue,
|
||||
mSplitScreenControllerOptional,
|
||||
mSplitScreenOptional,
|
||||
mRecentsOptional,
|
||||
mStatusBarLazy,
|
||||
mShadeController,
|
||||
|
||||
@@ -87,7 +87,7 @@ import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
import com.android.systemui.shared.system.SysUiStatsLog;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.phone.AutoHideController;
|
||||
import com.android.systemui.statusbar.phone.LightBarTransitionsController;
|
||||
@@ -1283,8 +1283,8 @@ public class NavigationBarView extends FrameLayout implements
|
||||
return super.onApplyWindowInsets(insets);
|
||||
}
|
||||
|
||||
void registerDockedListener(SplitScreenController splitScreenController) {
|
||||
splitScreenController.registerInSplitScreenListener(mDockedListener);
|
||||
void registerDockedListener(SplitScreen splitScreen) {
|
||||
splitScreen.registerInSplitScreenListener(mDockedListener);
|
||||
}
|
||||
|
||||
private static void dumpButton(PrintWriter pw, String caption, ButtonDispatcher button) {
|
||||
|
||||
@@ -58,7 +58,7 @@ import android.window.WindowOrganizer;
|
||||
import com.android.internal.os.SomeArgs;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.pip.phone.PipUpdateThread;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.wm.shell.R;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
@@ -105,7 +105,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements ShellTaskOrganize
|
||||
private final int mEnterExitAnimationDuration;
|
||||
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
|
||||
private final Map<IBinder, Configuration> mInitialState = new HashMap<>();
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
protected final ShellTaskOrganizer mTaskOrganizer;
|
||||
|
||||
// These callbacks are called on the update thread
|
||||
@@ -208,7 +208,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements ShellTaskOrganize
|
||||
|
||||
public PipTaskOrganizer(Context context, @NonNull PipBoundsHandler boundsHandler,
|
||||
@NonNull PipSurfaceTransactionHelper surfaceTransactionHelper,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
@NonNull DisplayController displayController,
|
||||
@NonNull PipUiEventLogger pipUiEventLogger,
|
||||
@NonNull ShellTaskOrganizer shellTaskOrganizer) {
|
||||
@@ -221,7 +221,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements ShellTaskOrganize
|
||||
mPipAnimationController = new PipAnimationController(mSurfaceTransactionHelper);
|
||||
mPipUiEventLoggerLogger = pipUiEventLogger;
|
||||
mSurfaceControlTransactionFactory = SurfaceControl.Transaction::new;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mTaskOrganizer = shellTaskOrganizer;
|
||||
mTaskOrganizer.addListener(this, WINDOWING_MODE_PINNED);
|
||||
displayController.addDisplayWindowListener(this);
|
||||
@@ -337,7 +337,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements ShellTaskOrganize
|
||||
wct.setWindowingMode(mToken, getOutPipWindowingMode());
|
||||
// Simply reset the activity mode set prior to the animation running.
|
||||
wct.setActivityWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
|
||||
mSplitScreenControllerOptional.ifPresent(splitScreen -> {
|
||||
mSplitScreenOptional.ifPresent(splitScreen -> {
|
||||
if (direction == TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN) {
|
||||
wct.reparent(mToken, splitScreen.getSecondaryRoot(), true /* onTop */);
|
||||
}
|
||||
@@ -937,26 +937,25 @@ public class PipTaskOrganizer extends TaskOrganizer implements ShellTaskOrganize
|
||||
}
|
||||
|
||||
/**
|
||||
* Sync with {@link SplitScreenController} on destination bounds if PiP is going to split
|
||||
* screen.
|
||||
* Sync with {@link SplitScreen} on destination bounds if PiP is going to split screen.
|
||||
*
|
||||
* @param destinationBoundsOut contain the updated destination bounds if applicable
|
||||
* @return {@code true} if destinationBounds is altered for split screen
|
||||
*/
|
||||
private boolean syncWithSplitScreenBounds(Rect destinationBoundsOut) {
|
||||
if (!mSplitScreenControllerOptional.isPresent()) {
|
||||
if (!mSplitScreenOptional.isPresent()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
SplitScreenController splitScreenController = mSplitScreenControllerOptional.get();
|
||||
if (!splitScreenController.isDividerVisible()) {
|
||||
SplitScreen splitScreen = mSplitScreenOptional.get();
|
||||
if (!splitScreen.isDividerVisible()) {
|
||||
// fail early if system is not in split screen mode
|
||||
return false;
|
||||
}
|
||||
|
||||
// PiP window will go to split-secondary mode instead of fullscreen, populates the
|
||||
// split screen bounds here.
|
||||
destinationBoundsOut.set(splitScreenController.getDividerView()
|
||||
destinationBoundsOut.set(splitScreen.getDividerView()
|
||||
.getNonMinimizedSplitScreenSecondaryBounds());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ import com.android.systemui.shared.system.InputConsumerController;
|
||||
import com.android.systemui.shared.system.PinnedStackListenerForwarder.PinnedStackListener;
|
||||
import com.android.systemui.shared.system.TaskStackChangeListener;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.FloatingContentCoordinator;
|
||||
@@ -271,7 +271,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
ConfigurationController configController,
|
||||
DeviceConfigProxy deviceConfig,
|
||||
DisplayController displayController,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
SysUiState sysUiState,
|
||||
PipUiEventLogger pipUiEventLogger,
|
||||
@@ -291,7 +291,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
mPipBoundsHandler = new PipBoundsHandler(mContext);
|
||||
mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(context, configController);
|
||||
mPipTaskOrganizer = new PipTaskOrganizer(mContext, mPipBoundsHandler,
|
||||
mPipSurfaceTransactionHelper, splitScreenControllerOptional, mDisplayController,
|
||||
mPipSurfaceTransactionHelper, splitScreenOptional, mDisplayController,
|
||||
pipUiEventLogger, shellTaskOrganizer);
|
||||
mPipTaskOrganizer.registerPipTransitionCallback(this);
|
||||
mInputConsumerController = InputConsumerController.getPipInputConsumer();
|
||||
|
||||
@@ -60,7 +60,7 @@ import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.PinnedStackListenerForwarder.PinnedStackListener;
|
||||
import com.android.systemui.shared.system.TaskStackChangeListener;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
@@ -238,7 +238,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
|
||||
ConfigurationController configController,
|
||||
DisplayController displayController,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
@NonNull PipUiEventLogger pipUiEventLogger,
|
||||
ShellTaskOrganizer shellTaskOrganizer) {
|
||||
if (mInitialized) {
|
||||
@@ -258,7 +258,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
.getInteger(R.integer.config_pipResizeAnimationDuration);
|
||||
mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(context, configController);
|
||||
mPipTaskOrganizer = new PipTaskOrganizer(mContext, mPipBoundsHandler,
|
||||
mPipSurfaceTransactionHelper, splitScreenControllerOptional, displayController,
|
||||
mPipSurfaceTransactionHelper, splitScreenOptional, displayController,
|
||||
pipUiEventLogger, shellTaskOrganizer);
|
||||
mPipTaskOrganizer.registerPipTransitionCallback(this);
|
||||
mActivityTaskManager = ActivityTaskManager.getService();
|
||||
|
||||
@@ -38,7 +38,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.shared.recents.IOverviewProxy;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -56,7 +56,7 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
private final static String TAG = "OverviewProxyRecentsImpl";
|
||||
@Nullable
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
|
||||
private Context mContext;
|
||||
private Handler mHandler;
|
||||
@@ -66,9 +66,9 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
|
||||
@Inject
|
||||
public OverviewProxyRecentsImpl(Optional<Lazy<StatusBar>> statusBarLazy,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional) {
|
||||
Optional<SplitScreen> splitScreenOptional) {
|
||||
mStatusBarLazy = statusBarLazy.orElse(null);
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -163,7 +163,7 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
if (runningTask.supportsSplitScreenMultiWindow) {
|
||||
if (ActivityManagerWrapper.getInstance().setTaskWindowingModeSplitScreenPrimary(
|
||||
runningTask.id, stackCreateMode, initialBounds)) {
|
||||
mSplitScreenControllerOptional.ifPresent(splitScreen -> {
|
||||
mSplitScreenOptional.ifPresent(splitScreen -> {
|
||||
splitScreen.onDockedTopTask();
|
||||
// The overview service is handling split screen, so just skip the wait
|
||||
// for the first draw and notify the divider to start animating now
|
||||
|
||||
@@ -86,7 +86,7 @@ import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.InputMonitorCompat;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
@@ -123,7 +123,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
private final Context mContext;
|
||||
private final PipUI mPipUI;
|
||||
private final Optional<Lazy<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private SysUiState mSysUiState;
|
||||
private final Handler mHandler;
|
||||
private final Lazy<NavigationBarController> mNavBarControllerLazy;
|
||||
@@ -232,7 +232,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
}
|
||||
long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
mSplitScreenControllerOptional.ifPresent(splitScreen -> {
|
||||
mSplitScreenOptional.ifPresent(splitScreen -> {
|
||||
splitScreen.onDockedFirstAnimationFrame();
|
||||
});
|
||||
} finally {
|
||||
@@ -264,7 +264,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
}
|
||||
long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
return mSplitScreenControllerOptional.map(splitScreen ->
|
||||
return mSplitScreenOptional.map(splitScreen ->
|
||||
splitScreen.getDividerView().getNonMinimizedSplitScreenSecondaryBounds())
|
||||
.orElse(null);
|
||||
} finally {
|
||||
@@ -401,7 +401,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
|
||||
@Override
|
||||
public void setSplitScreenMinimized(boolean minimized) {
|
||||
mSplitScreenControllerOptional.ifPresent(
|
||||
mSplitScreenOptional.ifPresent(
|
||||
splitScreen -> splitScreen.setMinimized(minimized));
|
||||
}
|
||||
|
||||
@@ -602,7 +602,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
public OverviewProxyService(Context context, CommandQueue commandQueue,
|
||||
Lazy<NavigationBarController> navBarControllerLazy, NavigationModeController navModeController,
|
||||
NotificationShadeWindowController statusBarWinController, SysUiState sysUiState,
|
||||
PipUI pipUI, Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
PipUI pipUI, Optional<SplitScreen> splitScreenOptional,
|
||||
Optional<Lazy<StatusBar>> statusBarOptionalLazy, OneHandedUI oneHandedUI,
|
||||
BroadcastDispatcher broadcastDispatcher) {
|
||||
super(broadcastDispatcher);
|
||||
@@ -613,7 +613,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
mNavBarControllerLazy = navBarControllerLazy;
|
||||
mStatusBarWinController = statusBarWinController;
|
||||
mConnectionBackoffAttempts = 0;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mRecentsComponentName = ComponentName.unflattenFromString(context.getString(
|
||||
com.android.internal.R.string.config_recentsComponentName));
|
||||
mQuickStepIntent = new Intent(ACTION_QUICKSTEP)
|
||||
@@ -755,7 +755,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
startConnectionToCurrentUser();
|
||||
|
||||
// Clean up the minimized state if launcher dies
|
||||
mSplitScreenControllerOptional.ifPresent(
|
||||
mSplitScreenOptional.ifPresent(
|
||||
splitScreen -> splitScreen.setMinimized(false));
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.stackdivider.DividerView;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@@ -45,7 +45,7 @@ public class ShortcutKeyDispatcher extends SystemUI
|
||||
implements ShortcutKeyServiceProxy.Callbacks {
|
||||
|
||||
private static final String TAG = "ShortcutKeyDispatcher";
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private final Recents mRecents;
|
||||
|
||||
private ShortcutKeyServiceProxy mShortcutKeyServiceProxy = new ShortcutKeyServiceProxy(this);
|
||||
@@ -61,9 +61,9 @@ public class ShortcutKeyDispatcher extends SystemUI
|
||||
|
||||
@Inject
|
||||
public ShortcutKeyDispatcher(Context context,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional, Recents recents) {
|
||||
Optional<SplitScreen> splitScreenOptional, Recents recents) {
|
||||
super(context);
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mRecents = recents;
|
||||
}
|
||||
|
||||
@@ -96,11 +96,11 @@ public class ShortcutKeyDispatcher extends SystemUI
|
||||
}
|
||||
|
||||
private void handleDockKey(long shortcutCode) {
|
||||
if (mSplitScreenControllerOptional.isPresent()) {
|
||||
SplitScreenController splitScreenController = mSplitScreenControllerOptional.get();
|
||||
if (splitScreenController.isDividerVisible()) {
|
||||
if (mSplitScreenOptional.isPresent()) {
|
||||
SplitScreen splitScreen = mSplitScreenOptional.get();
|
||||
if (splitScreen.isDividerVisible()) {
|
||||
// If there is already a docked window, we respond by resizing the docking pane.
|
||||
DividerView dividerView = splitScreenController.getDividerView();
|
||||
DividerView dividerView = splitScreen.getDividerView();
|
||||
DividerSnapAlgorithm snapAlgorithm = dividerView.getSnapAlgorithm();
|
||||
int dividerPosition = dividerView.getCurrentPosition();
|
||||
DividerSnapAlgorithm.SnapTarget currentTarget =
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.stackdivider;
|
||||
|
||||
import android.window.WindowContainerToken;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Interface to engage split screen feature.
|
||||
*/
|
||||
public interface SplitScreen {
|
||||
/** Returns {@code true} if split screen is supported on the device. */
|
||||
boolean isSplitScreenSupported();
|
||||
|
||||
/** Called when keyguard showing state changed. */
|
||||
void onKeyguardVisibilityChanged(boolean isShowing);
|
||||
|
||||
/** Returns {@link DividerView}. */
|
||||
DividerView getDividerView();
|
||||
|
||||
/** Returns {@code true} if one of the split screen is in minimized mode. */
|
||||
boolean isMinimized();
|
||||
|
||||
/** Returns {@code true} if the home stack is resizable. */
|
||||
boolean isHomeStackResizable();
|
||||
|
||||
/** Returns {@code true} if the divider is visible. */
|
||||
boolean isDividerVisible();
|
||||
|
||||
/** Switch to minimized state if appropriate. */
|
||||
void setMinimized(boolean minimized);
|
||||
|
||||
/**
|
||||
* Workaround for b/62528361, at the time recents has drawn, it may happen before a
|
||||
* configuration change to the Divider, and internally, the event will be posted to the
|
||||
* subscriber, or DividerView, which has been removed and prevented from resizing. Instead,
|
||||
* register the event handler here and proxy the event to the current DividerView.
|
||||
*/
|
||||
void onRecentsDrawn();
|
||||
|
||||
/** Called when there's an activity forced resizable. */
|
||||
void onActivityForcedResizable(String packageName, int taskId, int reason);
|
||||
|
||||
/** Called when there's an activity dismissing split screen. */
|
||||
void onActivityDismissingSplitScreen();
|
||||
|
||||
/** Called when there's an activity launch on secondary display failed. */
|
||||
void onActivityLaunchOnSecondaryDisplayFailed();
|
||||
|
||||
/** Called when there's a task undocking. */
|
||||
void onUndockingTask();
|
||||
|
||||
/** Called when the first docked animation frame rendered. */
|
||||
void onDockedFirstAnimationFrame();
|
||||
|
||||
/** Called when top task docked. */
|
||||
void onDockedTopTask();
|
||||
|
||||
/** Called when app transition finished. */
|
||||
void onAppTransitionFinished();
|
||||
|
||||
/** Dumps current status of Split Screen. */
|
||||
void dump(PrintWriter pw);
|
||||
|
||||
/** Registers listener that gets called whenever the existence of the divider changes. */
|
||||
void registerInSplitScreenListener(Consumer<Boolean> listener);
|
||||
|
||||
/** @return the container token for the secondary split root task. */
|
||||
WindowContainerToken getSecondaryRoot();
|
||||
}
|
||||
@@ -49,10 +49,10 @@ import java.util.ArrayList;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Controls split screen.
|
||||
* Controls split screen feature.
|
||||
*/
|
||||
// TODO(b/161116823): Extract as an interface to expose to SysUISingleton scope.
|
||||
public class SplitScreenController implements DisplayController.OnDisplaysChangedListener {
|
||||
public class SplitScreenController implements SplitScreen,
|
||||
DisplayController.OnDisplaysChangedListener {
|
||||
static final boolean DEBUG = false;
|
||||
|
||||
private static final String TAG = "Divider";
|
||||
|
||||
@@ -55,7 +55,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.NotificationChannels;
|
||||
@@ -81,14 +81,13 @@ public class InstantAppNotifier extends SystemUI
|
||||
private final CommandQueue mCommandQueue;
|
||||
private boolean mDockedStackExists;
|
||||
private KeyguardStateController mKeyguardStateController;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
|
||||
@Inject
|
||||
public InstantAppNotifier(Context context, CommandQueue commandQueue,
|
||||
@UiBackground Executor uiBgExecutor,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional) {
|
||||
@UiBackground Executor uiBgExecutor, Optional<SplitScreen> splitScreenOptional) {
|
||||
super(context);
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mCommandQueue = commandQueue;
|
||||
mUiBgExecutor = uiBgExecutor;
|
||||
}
|
||||
@@ -107,7 +106,7 @@ public class InstantAppNotifier extends SystemUI
|
||||
mCommandQueue.addCallback(this);
|
||||
mKeyguardStateController.addCallback(this);
|
||||
|
||||
mSplitScreenControllerOptional.ifPresent(splitScreen ->
|
||||
mSplitScreenOptional.ifPresent(splitScreen ->
|
||||
splitScreen.registerInSplitScreenListener(exists -> {
|
||||
mDockedStackExists = exists;
|
||||
updateForegroundInstantApps();
|
||||
|
||||
@@ -177,7 +177,7 @@ import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.recents.ScreenPinningRequest;
|
||||
import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.AutoHideUiElement;
|
||||
import com.android.systemui.statusbar.BackDropView;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
@@ -388,7 +388,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
||||
private final Provider<StatusBarComponent.Builder> mStatusBarComponentBuilder;
|
||||
private final PluginManager mPluginManager;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private final StatusBarNotificationActivityStarter.Builder
|
||||
mStatusBarNotificationActivityStarterBuilder;
|
||||
private final ShadeController mShadeController;
|
||||
@@ -721,7 +721,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
Optional<Recents> recentsOptional,
|
||||
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
|
||||
PluginManager pluginManager,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
LightsOutNotifController lightsOutNotifController,
|
||||
StatusBarNotificationActivityStarter.Builder
|
||||
statusBarNotificationActivityStarterBuilder,
|
||||
@@ -803,7 +803,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
mRecentsOptional = recentsOptional;
|
||||
mStatusBarComponentBuilder = statusBarComponentBuilder;
|
||||
mPluginManager = pluginManager;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
|
||||
mShadeController = shadeController;
|
||||
mSuperStatusBarViewFactory = superStatusBarViewFactory;
|
||||
@@ -1551,15 +1551,15 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mSplitScreenControllerOptional.isPresent()) {
|
||||
SplitScreenController splitScreenController = mSplitScreenControllerOptional.get();
|
||||
if (splitScreenController.isDividerVisible()) {
|
||||
if (splitScreenController.isMinimized()
|
||||
&& !splitScreenController.isHomeStackResizable()) {
|
||||
if (mSplitScreenOptional.isPresent()) {
|
||||
SplitScreen splitScreen = mSplitScreenOptional.get();
|
||||
if (splitScreen.isDividerVisible()) {
|
||||
if (splitScreen.isMinimized()
|
||||
&& !splitScreen.isHomeStackResizable()) {
|
||||
// Undocking from the minimized state is not supported
|
||||
return false;
|
||||
} else {
|
||||
splitScreenController.onUndockingTask();
|
||||
splitScreen.onUndockingTask();
|
||||
if (metricsUndockAction != -1) {
|
||||
mMetricsLogger.action(metricsUndockAction);
|
||||
}
|
||||
@@ -3917,16 +3917,14 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
@Override
|
||||
public void appTransitionCancelled(int displayId) {
|
||||
if (displayId == mDisplayId) {
|
||||
mSplitScreenControllerOptional.ifPresent(
|
||||
splitScreen -> splitScreen.onAppTransitionFinished());
|
||||
mSplitScreenOptional.ifPresent(splitScreen -> splitScreen.onAppTransitionFinished());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appTransitionFinished(int displayId) {
|
||||
if (displayId == mDisplayId) {
|
||||
mSplitScreenControllerOptional.ifPresent(
|
||||
splitScreen -> splitScreen.onAppTransitionFinished());
|
||||
mSplitScreenOptional.ifPresent(splitScreen -> splitScreen.onAppTransitionFinished());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ import com.android.systemui.plugins.PluginDependencyProvider;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.recents.ScreenPinningRequest;
|
||||
import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.KeyguardIndicationController;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||
@@ -180,7 +180,7 @@ public interface StatusBarPhoneModule {
|
||||
Optional<Recents> recentsOptional,
|
||||
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
|
||||
PluginManager pluginManager,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
LightsOutNotifController lightsOutNotifController,
|
||||
StatusBarNotificationActivityStarter.Builder
|
||||
statusBarNotificationActivityStarterBuilder,
|
||||
@@ -260,7 +260,7 @@ public interface StatusBarPhoneModule {
|
||||
recentsOptional,
|
||||
statusBarComponentBuilder,
|
||||
pluginManager,
|
||||
splitScreenControllerOptional,
|
||||
splitScreenOptional,
|
||||
lightsOutNotifController,
|
||||
statusBarNotificationActivityStarterBuilder,
|
||||
shadeController,
|
||||
|
||||
@@ -27,7 +27,7 @@ import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.TaskStackChangeListener;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.wm.shell.common.DisplayImeController;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -41,16 +41,16 @@ import javax.inject.Inject;
|
||||
public final class WMShell extends SystemUI {
|
||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
private final DisplayImeController mDisplayImeController;
|
||||
private final Optional<SplitScreenController> mSplitScreenControllerOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
|
||||
@Inject
|
||||
WMShell(Context context, KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
DisplayImeController displayImeController,
|
||||
Optional<SplitScreenController> splitScreenControllerOptional) {
|
||||
Optional<SplitScreen> splitScreenOptional) {
|
||||
super(context);
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mDisplayImeController = displayImeController;
|
||||
mSplitScreenControllerOptional = splitScreenControllerOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,10 +60,10 @@ public final class WMShell extends SystemUI {
|
||||
// specific feature anymore.
|
||||
mDisplayImeController.startMonitorDisplays();
|
||||
|
||||
mSplitScreenControllerOptional.ifPresent(this::initSplitScreenController);
|
||||
mSplitScreenOptional.ifPresent(this::initSplitScreen);
|
||||
}
|
||||
|
||||
private void initSplitScreenController(SplitScreenController splitScreenController) {
|
||||
private void initSplitScreen(SplitScreen splitScreen) {
|
||||
mKeyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() {
|
||||
@Override
|
||||
public void onKeyguardVisibilityChanged(boolean showing) {
|
||||
@@ -71,7 +71,7 @@ public final class WMShell extends SystemUI {
|
||||
// above everything, it is actually transparent except for notifications, so
|
||||
// we still need to hide any surfaces that are below it.
|
||||
// TODO(b/148906453): Figure out keyguard dismiss animation for divider view.
|
||||
splitScreenController.onKeyguardVisibilityChanged(showing);
|
||||
splitScreen.onKeyguardVisibilityChanged(showing);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -82,30 +82,29 @@ public final class WMShell extends SystemUI {
|
||||
boolean homeTaskVisible, boolean clearedTask, boolean wasVisible) {
|
||||
if (!wasVisible || task.configuration.windowConfiguration.getWindowingMode()
|
||||
!= WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
|
||||
|| !splitScreenController.isSplitScreenSupported()) {
|
||||
|| !splitScreen.isSplitScreenSupported()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (splitScreenController.isMinimized()) {
|
||||
splitScreenController.onUndockingTask();
|
||||
if (splitScreen.isMinimized()) {
|
||||
splitScreen.onUndockingTask();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityForcedResizable(String packageName, int taskId,
|
||||
int reason) {
|
||||
splitScreenController
|
||||
.onActivityForcedResizable(packageName, taskId, reason);
|
||||
splitScreen.onActivityForcedResizable(packageName, taskId, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityDismissingDockedStack() {
|
||||
splitScreenController.onActivityDismissingSplitScreen();
|
||||
splitScreen.onActivityDismissingSplitScreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityLaunchOnSecondaryDisplayFailed() {
|
||||
splitScreenController.onActivityLaunchOnSecondaryDisplayFailed();
|
||||
splitScreen.onActivityLaunchOnSecondaryDisplayFailed();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.pip.PipUiEventLogger;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.FloatingContentCoordinator;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
@@ -90,5 +90,5 @@ public abstract class WMShellBaseModule {
|
||||
}
|
||||
|
||||
@BindsOptionalOf
|
||||
abstract SplitScreenController optionalSplitScreenController();
|
||||
abstract SplitScreen optionalSplitScreen();
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.pip.phone.PipMenuActivity;
|
||||
import com.android.systemui.pip.phone.dagger.PipMenuActivityClass;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
@@ -59,7 +60,7 @@ public class WMShellModule {
|
||||
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static SplitScreenController provideSplitScreenController(Context context,
|
||||
static SplitScreen provideSplitScreen(Context context,
|
||||
DisplayController displayController, SystemWindows systemWindows,
|
||||
DisplayImeController displayImeController, @Main Handler handler,
|
||||
TransactionPool transactionPool, ShellTaskOrganizer shellTaskOrganizer) {
|
||||
|
||||
@@ -52,7 +52,7 @@ import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.phone.ShadeController;
|
||||
@@ -96,7 +96,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
|
||||
mock(SysUiState.class),
|
||||
mock(BroadcastDispatcher.class),
|
||||
mock(CommandQueue.class),
|
||||
Optional.of(mock(SplitScreenController.class)),
|
||||
Optional.of(mock(SplitScreen.class)),
|
||||
Optional.of(mock(Recents.class)),
|
||||
() -> mock(StatusBar.class),
|
||||
mock(ShadeController.class),
|
||||
|
||||
@@ -68,7 +68,7 @@ import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.phone.ShadeController;
|
||||
@@ -223,7 +223,7 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
mMockSysUiState,
|
||||
mBroadcastDispatcher,
|
||||
mCommandQueue,
|
||||
Optional.of(mock(SplitScreenController.class)),
|
||||
Optional.of(mock(SplitScreen.class)),
|
||||
Optional.of(mock(Recents.class)),
|
||||
() -> mock(StatusBar.class),
|
||||
mock(ShadeController.class),
|
||||
|
||||
@@ -96,7 +96,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.recents.ScreenPinningRequest;
|
||||
import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.stackdivider.SplitScreenController;
|
||||
import com.android.systemui.stackdivider.SplitScreen;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.KeyguardIndicationController;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
@@ -238,7 +238,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
@Mock private StatusBarComponent.Builder mStatusBarComponentBuilder;
|
||||
@Mock private StatusBarComponent mStatusBarComponent;
|
||||
@Mock private PluginManager mPluginManager;
|
||||
@Mock private SplitScreenController mSplitScreenController;
|
||||
@Mock private SplitScreen mSplitScreen;
|
||||
@Mock private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
|
||||
@Mock private LightsOutNotifController mLightsOutNotifController;
|
||||
@Mock private ViewMediatorCallback mViewMediatorCallback;
|
||||
@@ -397,7 +397,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
Optional.of(mRecents),
|
||||
mStatusBarComponentBuilderProvider,
|
||||
mPluginManager,
|
||||
Optional.of(mSplitScreenController),
|
||||
Optional.of(mSplitScreen),
|
||||
mLightsOutNotifController,
|
||||
mStatusBarNotificationActivityStarterBuilder,
|
||||
mShadeController,
|
||||
|
||||
Reference in New Issue
Block a user