Clean up the legacy split screen (7/n)

Clean up using of legacy split on SysUi.

Bug: 199236198
Test: pass existing tests.
Change-Id: I199dafc836d3ba7bc5db1740658247397523c200
This commit is contained in:
Tony Huang
2022-02-18 16:54:48 +08:00
parent 18b848e66a
commit 24d1c2e002
14 changed files with 15 additions and 193 deletions

View File

@@ -43,6 +43,7 @@ interface ISystemUiProxy {
/**
* Get the secondary split screen app's rectangle when not minimized.
* @deprecated
*/
Rect getNonMinimizedSplitScreenSecondaryBounds() = 7;
@@ -104,6 +105,7 @@ interface ISystemUiProxy {
/**
* Sets the split-screen divider minimized state
* @deprecated
*/
void setSplitScreenMinimized(boolean minimized) = 22;

View File

@@ -57,7 +57,6 @@ import static com.android.systemui.statusbar.phone.StatusBar.DEBUG_WINDOW_STATE;
import static com.android.systemui.statusbar.phone.StatusBar.dumpBarTransitions;
import android.annotation.IdRes;
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.app.IActivityTaskManager;
import android.app.StatusBarManager;
@@ -140,7 +139,6 @@ import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.pip.Pip;
import java.io.PrintWriter;
@@ -187,7 +185,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
private final BroadcastDispatcher mBroadcastDispatcher;
private final CommandQueue mCommandQueue;
private final Optional<Pip> mPipOptional;
private final Optional<LegacySplitScreen> mSplitScreenOptional;
private final Optional<Recents> mRecentsOptional;
private final Optional<BackAnimation> mBackAnimation;
private final Handler mHandler;
@@ -486,7 +483,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
BroadcastDispatcher broadcastDispatcher,
CommandQueue commandQueue,
Optional<Pip> pipOptional,
Optional<LegacySplitScreen> splitScreenOptional,
Optional<Recents> recentsOptional,
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
ShadeController shadeController,
@@ -520,7 +516,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
mBroadcastDispatcher = broadcastDispatcher;
mCommandQueue = commandQueue;
mPipOptional = pipOptional;
mSplitScreenOptional = splitScreenOptional;
mRecentsOptional = recentsOptional;
mBackAnimation = backAnimation;
mHandler = mainHandler;
@@ -627,7 +622,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater);
mSplitScreenOptional.ifPresent(mNavigationBarView::registerDockedListener);
mPipOptional.ifPresent(mNavigationBarView::addPipExclusionBoundsChangeListener);
mBackAnimation.ifPresent(mNavigationBarView::registerBackAnimation);
@@ -786,10 +780,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
return;
}
if (mStartingQuickSwitchRotation == -1 || mSplitScreenOptional
.map(LegacySplitScreen::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
if (mStartingQuickSwitchRotation == -1) {
resetSecondaryHandle();
} else {
int deltaRotation = deltaRotation(mCurrentRotation, mStartingQuickSwitchRotation);
@@ -1324,7 +1315,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
return true;
} else if (v.getId() == btnId2) {
return btnId2 == R.id.recent_apps
? onLongPressRecents()
? false
: onHomeLongClick(
mNavigationBarView.getHomeButton().getCurrentView());
}
@@ -1349,24 +1340,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
return false;
}
private boolean onLongPressRecents() {
if (mRecentsOptional.isPresent() || !ActivityTaskManager.supportsMultiWindow(mContext)
|| ActivityManager.isLowRamDeviceStatic()
// If we are connected to the overview service, then disable the recents button
|| mOverviewProxyService.getProxy() != null
|| !mSplitScreenOptional.map(splitScreen ->
splitScreen.getDividerView().getSnapAlgorithm().isSplitScreenFeasible())
.orElse(false)) {
return false;
}
return mStatusBarOptionalLazy.get().map(
statusBar -> statusBar.toggleSplitScreenMode(
MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,
MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS))
.orElse(false);
}
private void onAccessibilityClick(View v) {
final Display display = v.getDisplay();
mAccessibilityManager.notifyAccessibilityButtonClicked(
@@ -1650,7 +1623,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
private final BroadcastDispatcher mBroadcastDispatcher;
private final CommandQueue mCommandQueue;
private final Optional<Pip> mPipOptional;
private final Optional<LegacySplitScreen> mSplitScreenOptional;
private final Optional<Recents> mRecentsOptional;
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
private final ShadeController mShadeController;
@@ -1682,7 +1654,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
BroadcastDispatcher broadcastDispatcher,
CommandQueue commandQueue,
Optional<Pip> pipOptional,
Optional<LegacySplitScreen> splitScreenOptional,
Optional<Recents> recentsOptional,
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
ShadeController shadeController,
@@ -1711,7 +1682,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
mBroadcastDispatcher = broadcastDispatcher;
mCommandQueue = commandQueue;
mPipOptional = pipOptional;
mSplitScreenOptional = splitScreenOptional;
mRecentsOptional = recentsOptional;
mStatusBarOptionalLazy = statusBarOptionalLazy;
mShadeController = shadeController;
@@ -1738,7 +1708,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
mOverviewProxyService, mNavigationModeController,
mAccessibilityButtonModeObserver, mStatusBarStateController,
mSysUiFlagsContainer, mBroadcastDispatcher, mCommandQueue, mPipOptional,
mSplitScreenOptional, mRecentsOptional, mStatusBarOptionalLazy,
mRecentsOptional, mStatusBarOptionalLazy,
mShadeController, mNotificationRemoteInputManager,
mNotificationShadeDepthController, mMainHandler,
mNavbarOverlayController, mUiEventLogger, mNavBarHelper,

View File

@@ -92,7 +92,6 @@ import com.android.systemui.statusbar.phone.LightBarTransitionsController;
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.pip.Pip;
import java.io.PrintWriter;
@@ -1425,10 +1424,6 @@ public class NavigationBarView extends FrameLayout implements
return super.onApplyWindowInsets(insets);
}
void registerDockedListener(LegacySplitScreen legacySplitScreen) {
legacySplitScreen.registerInSplitScreenListener(mDockedListener);
}
void addPipExclusionBoundsChangeListener(Pip pip) {
pip.addPipExclusionBoundsChangeListener(mPipListener);
}

View File

@@ -106,7 +106,6 @@ import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarWindowCallback;
import com.android.systemui.statusbar.policy.CallbackController;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.onehanded.OneHanded;
import com.android.wm.shell.pip.Pip;
import com.android.wm.shell.pip.PipAnimationController;
@@ -148,7 +147,6 @@ public class OverviewProxyService extends CurrentUserTracker implements
private final Context mContext;
private final Optional<Pip> mPipOptional;
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
private final Optional<LegacySplitScreen> mLegacySplitScreenOptional;
private final Optional<SplitScreen> mSplitScreenOptional;
private SysUiState mSysUiState;
private final Handler mHandler;
@@ -298,14 +296,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
@Override
public Rect getNonMinimizedSplitScreenSecondaryBounds() {
return verifyCallerAndClearCallingIdentity(
"getNonMinimizedSplitScreenSecondaryBounds",
() -> mLegacySplitScreenOptional.map(splitScreen ->
splitScreen
.getDividerView()
.getNonMinimizedSplitScreenSecondaryBounds())
.orElse(null)
);
// Deprecated
return null;
}
@Override
@@ -362,8 +354,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
@Override
public void setSplitScreenMinimized(boolean minimized) {
mLegacySplitScreenOptional.ifPresent(
splitScreen -> splitScreen.setMinimized(minimized));
// Deprecated
}
@Override
@@ -568,7 +559,6 @@ public class OverviewProxyService extends CurrentUserTracker implements
NavigationModeController navModeController,
NotificationShadeWindowController statusBarWinController, SysUiState sysUiState,
Optional<Pip> pipOptional,
Optional<LegacySplitScreen> legacySplitScreenOptional,
Optional<SplitScreen> splitScreenOptional,
Optional<OneHanded> oneHandedOptional,
Optional<RecentTasks> recentTasks,
@@ -634,9 +624,6 @@ public class OverviewProxyService extends CurrentUserTracker implements
mCommandQueue = commandQueue;
mSplitScreenOptional = splitScreenOptional;
legacySplitScreenOptional.ifPresent(splitScreen ->
splitScreen.registerBoundsChangeListener(mSplitScreenBoundsChangeListener));
mLegacySplitScreenOptional = legacySplitScreenOptional;
// Listen for user setup
startTracking();
@@ -751,10 +738,6 @@ public class OverviewProxyService extends CurrentUserTracker implements
});
}
startConnectionToCurrentUser();
// Clean up the minimized state if launcher dies
mLegacySplitScreenOptional.ifPresent(
splitScreen -> splitScreen.setMinimized(false));
}
public void startConnectionToCurrentUser() {

View File

@@ -23,13 +23,8 @@ import android.view.IWindowManager;
import android.view.KeyEvent;
import android.view.WindowManagerGlobal;
import com.android.internal.policy.DividerSnapAlgorithm;
import com.android.systemui.CoreStartable;
import com.android.systemui.dagger.SysUISingleton;
import com.android.wm.shell.legacysplitscreen.DividerView;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import java.util.Optional;
import javax.inject.Inject;
@@ -41,7 +36,6 @@ public class ShortcutKeyDispatcher extends CoreStartable
implements ShortcutKeyServiceProxy.Callbacks {
private static final String TAG = "ShortcutKeyDispatcher";
private final Optional<LegacySplitScreen> mSplitScreenOptional;
private ShortcutKeyServiceProxy mShortcutKeyServiceProxy = new ShortcutKeyServiceProxy(this);
private IWindowManager mWindowManagerService = WindowManagerGlobal.getWindowManagerService();
@@ -55,9 +49,8 @@ public class ShortcutKeyDispatcher extends CoreStartable
protected final long SC_DOCK_RIGHT = META_MASK | KeyEvent.KEYCODE_RIGHT_BRACKET;
@Inject
public ShortcutKeyDispatcher(Context context, Optional<LegacySplitScreen> splitScreenOptional) {
public ShortcutKeyDispatcher(Context context) {
super(context);
mSplitScreenOptional = splitScreenOptional;
}
/**
@@ -89,24 +82,6 @@ public class ShortcutKeyDispatcher extends CoreStartable
}
private void handleDockKey(long shortcutCode) {
mSplitScreenOptional.ifPresent(splitScreen -> {
if (splitScreen.isDividerVisible()) {
// If there is already a docked window, we respond by resizing the docking pane.
DividerView dividerView = splitScreen.getDividerView();
DividerSnapAlgorithm snapAlgorithm = dividerView.getSnapAlgorithm();
int dividerPosition = dividerView.getCurrentPosition();
DividerSnapAlgorithm.SnapTarget currentTarget =
snapAlgorithm.calculateNonDismissingSnapTarget(dividerPosition);
DividerSnapAlgorithm.SnapTarget target = (shortcutCode == SC_DOCK_LEFT)
? snapAlgorithm.getPreviousTarget(currentTarget)
: snapAlgorithm.getNextTarget(currentTarget);
dividerView.startDragging(true /* animate */, false /* touching */);
dividerView.stopDragging(target.position, 0f, false /* avoidDismissStart */,
true /* logMetrics */);
return;
} else {
splitScreen.splitPrimaryTask();
}
});
// TODO(b/220262470) : implement it with new split screen.
}
}

View File

@@ -19,8 +19,8 @@ package com.android.systemui.statusbar.notification;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -59,10 +59,8 @@ import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.NotificationChannels;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executor;
import javax.inject.Inject;
@@ -80,15 +78,12 @@ public class InstantAppNotifier extends CoreStartable
private final Executor mUiBgExecutor;
private final ArraySet<Pair<String, Integer>> mCurrentNotifs = new ArraySet<>();
private final CommandQueue mCommandQueue;
private boolean mDockedStackExists;
private KeyguardStateController mKeyguardStateController;
private final Optional<LegacySplitScreen> mSplitScreenOptional;
@Inject
public InstantAppNotifier(Context context, CommandQueue commandQueue,
@UiBackground Executor uiBgExecutor, Optional<LegacySplitScreen> splitScreenOptional) {
@UiBackground Executor uiBgExecutor) {
super(context);
mSplitScreenOptional = splitScreenOptional;
mCommandQueue = commandQueue;
mUiBgExecutor = uiBgExecutor;
}
@@ -107,12 +102,6 @@ public class InstantAppNotifier extends CoreStartable
mCommandQueue.addCallback(this);
mKeyguardStateController.addCallback(this);
mSplitScreenOptional.ifPresent(splitScreen ->
splitScreen.registerInSplitScreenListener(exists -> {
mDockedStackExists = exists;
updateForegroundInstantApps();
}));
// Clear out all old notifications on startup (only present in the case where sysui dies)
NotificationManager noMan = mContext.getSystemService(NotificationManager.class);
for (StatusBarNotification notification : noMan.getActiveNotifications()) {
@@ -169,14 +158,11 @@ public class InstantAppNotifier extends CoreStartable
focusedTask.configuration.windowConfiguration
.getWindowingMode();
if (windowingMode == WINDOWING_MODE_FULLSCREEN
|| windowingMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY
|| windowingMode == WINDOWING_MODE_MULTI_WINDOW
|| windowingMode == WINDOWING_MODE_FREEFORM) {
checkAndPostForStack(focusedTask, notifs, noMan, pm);
}
}
if (mDockedStackExists) {
checkAndPostForPrimaryScreen(notifs, noMan, pm);
}
} catch (RemoteException e) {
e.rethrowFromSystemServer();
}

View File

@@ -245,7 +245,6 @@ 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.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.startingsurface.SplashscreenContentDrawer;
import com.android.wm.shell.startingsurface.StartingSurface;
@@ -496,7 +495,6 @@ public class StatusBar extends CoreStartable implements
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
private final StatusBarComponent.Factory mStatusBarComponentFactory;
private final PluginManager mPluginManager;
private final Optional<LegacySplitScreen> mSplitScreenOptional;
private final StatusBarNotificationActivityStarter.Builder
mStatusBarNotificationActivityStarterBuilder;
private final ShadeController mShadeController;
@@ -753,7 +751,6 @@ public class StatusBar extends CoreStartable implements
CommandQueue commandQueue,
StatusBarComponent.Factory statusBarComponentFactory,
PluginManager pluginManager,
Optional<LegacySplitScreen> splitScreenOptional,
StatusBarNotificationActivityStarter.Builder
statusBarNotificationActivityStarterBuilder,
ShadeController shadeController,
@@ -852,7 +849,6 @@ public class StatusBar extends CoreStartable implements
mCommandQueue = commandQueue;
mStatusBarComponentFactory = statusBarComponentFactory;
mPluginManager = pluginManager;
mSplitScreenOptional = splitScreenOptional;
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
mShadeController = shadeController;
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
@@ -1672,35 +1668,6 @@ public class StatusBar extends CoreStartable implements
return mStatusBarWindowController.getStatusBarHeight();
}
public boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
if (!mSplitScreenOptional.isPresent()) {
return false;
}
final LegacySplitScreen legacySplitScreen = mSplitScreenOptional.get();
if (legacySplitScreen.isDividerVisible()) {
if (legacySplitScreen.isMinimized() && !legacySplitScreen.isHomeStackResizable()) {
// Undocking from the minimized state is not supported
return false;
}
legacySplitScreen.onUndockingTask();
if (metricsUndockAction != -1) {
mMetricsLogger.action(metricsUndockAction);
}
return true;
}
if (legacySplitScreen.splitPrimaryTask()) {
if (metricsDockAction != -1) {
mMetricsLogger.action(metricsDockAction);
}
return true;
}
return false;
}
/**
* Disable QS if device not provisioned.
* If the user switcher is simple then disable QS during setup because

View File

@@ -64,7 +64,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import java.util.Optional;
@@ -78,7 +77,6 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
private final ShadeController mShadeController;
private final CommandQueue mCommandQueue;
private final NotificationPanelViewController mNotificationPanelViewController;
private final Optional<LegacySplitScreen> mSplitScreenOptional;
private final RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
private final MetricsLogger mMetricsLogger;
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@@ -114,7 +112,6 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
ShadeController shadeController,
CommandQueue commandQueue,
NotificationPanelViewController notificationPanelViewController,
Optional<LegacySplitScreen> splitScreenOptional,
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
MetricsLogger metricsLogger,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -141,7 +138,6 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
mShadeController = shadeController;
mCommandQueue = commandQueue;
mNotificationPanelViewController = notificationPanelViewController;
mSplitScreenOptional = splitScreenOptional;
mRemoteInputQuickSettingsDisabler = remoteInputQuickSettingsDisabler;
mMetricsLogger = metricsLogger;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
@@ -240,16 +236,10 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
@Override
public void appTransitionCancelled(int displayId) {
if (displayId == mDisplayId) {
mSplitScreenOptional.ifPresent(LegacySplitScreen::onAppTransitionFinished);
}
}
@Override
public void appTransitionFinished(int displayId) {
if (displayId == mDisplayId) {
mSplitScreenOptional.ifPresent(LegacySplitScreen::onAppTransitionFinished);
}
}
@Override
@@ -556,11 +546,6 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks {
}
}
@Override
public void toggleSplitScreen() {
mStatusBar.toggleSplitScreenMode(-1 /* metricsDockAction */, -1 /* metricsUndockAction */);
}
private boolean isGoingToSleep() {
return mWakefulnessLifecycle.getWakefulness()
== WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP;

View File

@@ -115,7 +115,6 @@ 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.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.startingsurface.StartingSurface;
import java.util.Optional;
@@ -199,7 +198,6 @@ public interface StatusBarPhoneModule {
CommandQueue commandQueue,
StatusBarComponent.Factory statusBarComponentFactory,
PluginManager pluginManager,
Optional<LegacySplitScreen> splitScreenOptional,
StatusBarNotificationActivityStarter.Builder
statusBarNotificationActivityStarterBuilder,
ShadeController shadeController,
@@ -298,7 +296,6 @@ public interface StatusBarPhoneModule {
commandQueue,
statusBarComponentFactory,
pluginManager,
splitScreenOptional,
statusBarNotificationActivityStarterBuilder,
shadeController,
statusBarKeyguardViewManager,

View File

@@ -58,7 +58,6 @@ import com.android.wm.shell.ShellCommandHandler;
import com.android.wm.shell.compatui.CompatUI;
import com.android.wm.shell.draganddrop.DragAndDrop;
import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.nano.WmShellTraceProto;
import com.android.wm.shell.onehanded.OneHanded;
import com.android.wm.shell.onehanded.OneHandedEventCallback;
@@ -108,7 +107,6 @@ public final class WMShell extends CoreStartable
// Shell interfaces
private final Optional<Pip> mPipOptional;
private final Optional<LegacySplitScreen> mLegacySplitScreenOptional;
private final Optional<SplitScreen> mSplitScreenOptional;
private final Optional<OneHanded> mOneHandedOptional;
private final Optional<HideDisplayCutout> mHideDisplayCutoutOptional;
@@ -128,7 +126,6 @@ public final class WMShell extends CoreStartable
private final Executor mSysUiMainExecutor;
private boolean mIsSysUiStateValid;
private KeyguardUpdateMonitorCallback mLegacySplitScreenKeyguardCallback;
private KeyguardUpdateMonitorCallback mSplitScreenKeyguardCallback;
private KeyguardUpdateMonitorCallback mPipKeyguardCallback;
private KeyguardUpdateMonitorCallback mOneHandedKeyguardCallback;
@@ -138,7 +135,6 @@ public final class WMShell extends CoreStartable
@Inject
public WMShell(Context context,
Optional<Pip> pipOptional,
Optional<LegacySplitScreen> legacySplitScreenOptional,
Optional<SplitScreen> splitScreenOptional,
Optional<OneHanded> oneHandedOptional,
Optional<HideDisplayCutout> hideDisplayCutoutOptional,
@@ -163,7 +159,6 @@ public final class WMShell extends CoreStartable
mScreenLifecycle = screenLifecycle;
mSysUiState = sysUiState;
mPipOptional = pipOptional;
mLegacySplitScreenOptional = legacySplitScreenOptional;
mSplitScreenOptional = splitScreenOptional;
mOneHandedOptional = oneHandedOptional;
mHideDisplayCutoutOptional = hideDisplayCutoutOptional;
@@ -183,7 +178,6 @@ public final class WMShell extends CoreStartable
mProtoTracer.add(this);
mCommandQueue.addCallback(this);
mPipOptional.ifPresent(this::initPip);
mLegacySplitScreenOptional.ifPresent(this::initLegacySplitScreen);
mSplitScreenOptional.ifPresent(this::initSplitScreen);
mOneHandedOptional.ifPresent(this::initOneHanded);
mHideDisplayCutoutOptional.ifPresent(this::initHideDisplayCutout);
@@ -237,21 +231,6 @@ public final class WMShell extends CoreStartable
pip.registerSessionListenerForCurrentUser());
}
@VisibleForTesting
void initLegacySplitScreen(LegacySplitScreen legacySplitScreen) {
mLegacySplitScreenKeyguardCallback = new KeyguardUpdateMonitorCallback() {
@Override
public void onKeyguardVisibilityChanged(boolean showing) {
// Hide the divider when keyguard is showing. Even though keyguard/statusbar is
// 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.
legacySplitScreen.onKeyguardVisibilityChanged(showing);
}
};
mKeyguardUpdateMonitor.registerCallback(mLegacySplitScreenKeyguardCallback);
}
@VisibleForTesting
void initSplitScreen(SplitScreen splitScreen) {
mSplitScreenKeyguardCallback = new KeyguardUpdateMonitorCallback() {

View File

@@ -28,6 +28,7 @@ import static android.view.WindowInsets.Type.ime;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.HOME_BUTTON_LONG_PRESS_DURATION_MS;
import static com.android.systemui.navigationbar.NavigationBar.NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
@@ -94,12 +95,10 @@ import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.utils.leaks.LeakCheckedTest;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.pip.Pip;
import org.junit.After;
@@ -401,7 +400,6 @@ public class NavigationBarTest extends SysuiTestCase {
mBroadcastDispatcher,
mCommandQueue,
Optional.of(mock(Pip.class)),
Optional.of(mock(LegacySplitScreen.class)),
Optional.of(mock(Recents.class)),
() -> Optional.of(mStatusBar),
mock(ShadeController.class),

View File

@@ -45,7 +45,6 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import org.junit.Before;
import org.junit.Test;
@@ -63,7 +62,6 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
@Mock private ShadeController mShadeController;
@Mock private CommandQueue mCommandQueue;
@Mock private NotificationPanelViewController mNotificationPanelViewController;
@Mock private LegacySplitScreen mLegacySplitScreen;
@Mock private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
private final MetricsLogger mMetricsLogger = new FakeMetricsLogger();
@Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@@ -96,7 +94,6 @@ public class StatusBarCommandQueueCallbacksTest extends SysuiTestCase {
mShadeController,
mCommandQueue,
mNotificationPanelViewController,
Optional.of(mLegacySplitScreen),
mRemoteInputQuickSettingsDisabler,
mMetricsLogger,
mKeyguardUpdateMonitor,

View File

@@ -159,7 +159,6 @@ import com.android.systemui.util.time.FakeSystemClock;
import com.android.systemui.volume.VolumeComponent;
import com.android.systemui.wmshell.BubblesManager;
import com.android.wm.shell.bubbles.Bubbles;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.startingsurface.StartingSurface;
import org.junit.Before;
@@ -256,7 +255,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private StatusBarComponent.Factory mStatusBarComponentFactory;
@Mock private StatusBarComponent mStatusBarComponent;
@Mock private PluginManager mPluginManager;
@Mock private LegacySplitScreen mLegacySplitScreen;
@Mock private ViewMediatorCallback mViewMediatorCallback;
@Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
@Mock private ScreenPinningRequest mScreenPinningRequest;
@@ -447,7 +445,6 @@ public class StatusBarTest extends SysuiTestCase {
mCommandQueue,
mStatusBarComponentFactory,
mPluginManager,
Optional.of(mLegacySplitScreen),
mStatusBarNotificationActivityStarterBuilder,
mShadeController,
mStatusBarKeyguardViewManager,

View File

@@ -39,7 +39,6 @@ import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.compatui.CompatUI;
import com.android.wm.shell.draganddrop.DragAndDrop;
import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.onehanded.OneHanded;
import com.android.wm.shell.onehanded.OneHandedEventCallback;
import com.android.wm.shell.onehanded.OneHandedTransitionCallback;
@@ -72,7 +71,6 @@ public class WMShellTest extends SysuiTestCase {
@Mock ScreenLifecycle mScreenLifecycle;
@Mock SysUiState mSysUiState;
@Mock Pip mPip;
@Mock LegacySplitScreen mLegacySplitScreen;
@Mock SplitScreen mSplitScreen;
@Mock OneHanded mOneHanded;
@Mock HideDisplayCutout mHideDisplayCutout;
@@ -88,7 +86,7 @@ public class WMShellTest extends SysuiTestCase {
public void setUp() {
MockitoAnnotations.initMocks(this);
mWMShell = new WMShell(mContext, Optional.of(mPip), Optional.of(mLegacySplitScreen),
mWMShell = new WMShell(mContext, Optional.of(mPip),
Optional.of(mSplitScreen), Optional.of(mOneHanded), Optional.of(mHideDisplayCutout),
Optional.of(mShellCommandHandler), Optional.of(mCompatUI),
Optional.of(mDragAndDrop),
@@ -104,13 +102,6 @@ public class WMShellTest extends SysuiTestCase {
verify(mCommandQueue).addCallback(any(CommandQueue.Callbacks.class));
}
@Test
public void initLegacySplitScreen_registersCallbacks() {
mWMShell.initLegacySplitScreen(mLegacySplitScreen);
verify(mKeyguardUpdateMonitor).registerCallback(any(KeyguardUpdateMonitorCallback.class));
}
@Test
public void initSplitScreen_registersCallbacks() {
mWMShell.initSplitScreen(mSplitScreen);