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

Commit dbe193a9 authored by Muyuan Li's avatar Muyuan Li Committed by Android (Google) Code Review
Browse files

Merge "sysui: changed split screen shortcut key behavior."

parents 4312b2db 5ef619fc
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.content.Context;
import android.content.pm.ServiceInfo;
import android.content.res.Configuration;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.ArraySet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.IWindowManager;
@@ -39,6 +41,7 @@ import com.android.settingslib.accessibility.AccessibilityUtils;
import com.android.systemui.R;
import com.android.systemui.SystemUI;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.misc.SystemServicesProxy;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.stackdivider.DividerView;
import com.android.systemui.statusbar.phone.NavigationBarGestureHelper;
@@ -102,8 +105,16 @@ public class ShortcutKeyDispatcher extends SystemUI
                int dockMode = (shortcutCode == SC_DOCK_LEFT)
                        ? ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT
                        : ActivityManager.DOCKED_STACK_CREATE_MODE_BOTTOM_OR_RIGHT;
                recents.dockTopTask(NavigationBarGestureHelper.DRAG_MODE_NONE, dockMode, null,
                        MetricsEvent.WINDOW_DOCK_SHORTCUTS);
                List<ActivityManager.RecentTaskInfo> taskList =
                        SystemServicesProxy.getInstance(mContext).getRecentTasks(1,
                                UserHandle.USER_CURRENT, false, new ArraySet<>());
                recents.showRecents(
                        false /* triggeredFromAltTab */,
                        false /* fromHome */);
                if (!taskList.isEmpty()) {
                    SystemServicesProxy.getInstance(mContext).startTaskInDockedMode(
                            taskList.get(0).id, dockMode);
                }
            } else {
                // If there is already a docked window, we respond by resizing the docking pane.
                DividerView dividerView = getComponent(Divider.class).getView();
@@ -111,11 +122,11 @@ public class ShortcutKeyDispatcher extends SystemUI
                int dividerPosition = dividerView.getCurrentPosition();
                DividerSnapAlgorithm.SnapTarget currentTarget =
                        snapAlgorithm.calculateNonDismissingSnapTarget(dividerPosition);
                int increment = (shortcutCode == SC_DOCK_LEFT) ? -1 : 1;
                DividerSnapAlgorithm.SnapTarget target = snapAlgorithm.cycleNonDismissTarget(
                        currentTarget, increment);
                DividerSnapAlgorithm.SnapTarget target = (shortcutCode == SC_DOCK_LEFT)
                        ? snapAlgorithm.getPreviousTarget(currentTarget)
                        : snapAlgorithm.getNextTarget(currentTarget);
                dividerView.startDragging(true /* animate */, false /* touching */);
                dividerView.stopDragging(target.position, 0f, true /* avoidDismissStart */,
                dividerView.stopDragging(target.position, 0f, false /* avoidDismissStart */,
                        true /* logMetrics */);
            }
        } catch (RemoteException e) {