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:
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user