Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4590dbf authored by Tony Huang's avatar Tony Huang Committed by Android (Google) Code Review
Browse files

Merge "Clean up the legacy split screen (7/n)" into tm-dev

parents d791f304 24d1c2e0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;

+3 −33
Original line number Diff line number Diff line
@@ -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;
@@ -488,7 +485,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,
@@ -522,7 +518,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
        mBroadcastDispatcher = broadcastDispatcher;
        mCommandQueue = commandQueue;
        mPipOptional = pipOptional;
        mSplitScreenOptional = splitScreenOptional;
        mRecentsOptional = recentsOptional;
        mBackAnimation = backAnimation;
        mHandler = mainHandler;
@@ -629,7 +624,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,

        mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater);

        mSplitScreenOptional.ifPresent(mNavigationBarView::registerDockedListener);
        mPipOptional.ifPresent(mNavigationBarView::addPipExclusionBoundsChangeListener);
        mBackAnimation.ifPresent(mNavigationBarView::registerBackAnimation);

@@ -788,10 +782,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);
@@ -1326,7 +1317,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());
                    }
@@ -1351,24 +1342,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(
@@ -1652,7 +1625,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;
@@ -1684,7 +1656,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,
@@ -1713,7 +1684,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
            mBroadcastDispatcher = broadcastDispatcher;
            mCommandQueue = commandQueue;
            mPipOptional = pipOptional;
            mSplitScreenOptional = splitScreenOptional;
            mRecentsOptional = recentsOptional;
            mStatusBarOptionalLazy = statusBarOptionalLazy;
            mShadeController = shadeController;
@@ -1740,7 +1710,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,
+0 −5
Original line number Diff line number Diff line
@@ -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);
    }
+3 −20
Original line number Diff line number Diff line
@@ -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() {
+2 −27
Original line number Diff line number Diff line
@@ -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.
    }
}
Loading