From fb692acb647b19b078a95fab8f186f1ca1469250 Mon Sep 17 00:00:00 2001 From: Matthew Ng Date: Thu, 2 Feb 2017 14:02:56 -0800 Subject: [PATCH] Longpress overview in minimized mode only for resizable launches (1/2) Since resizable launchers in minimized mode shows more of the docked stack than in non-resizable launchers, it will play the same functionality as split screen where long press overview button will exit split screen into fullscreen mode. Test: test was written - adb shell am instrument -w -e class com.android.androidbvt.SysUIMultiWindowTests com.android.androidbvt/android.support.test.runner.AndroidJUnitRunner Fixes: 34892561 Change-Id: I9f957dada1b325b36068d59fa9b2d1fa4912b804 --- .../src/com/android/systemui/stackdivider/Divider.java | 5 +++++ .../src/com/android/systemui/stackdivider/DividerView.java | 3 ++- .../src/com/android/systemui/statusbar/phone/StatusBar.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java index b9a0f74058695..0b09accf2db14 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java @@ -72,6 +72,10 @@ public class Divider extends SystemUI { return mMinimized; } + public boolean isHomeStackResizable() { + return mHomeStackResizable; + } + private void addDivider(Configuration configuration) { mView = (DividerView) LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null); @@ -119,6 +123,7 @@ public class Divider extends SystemUI { mView.post(new Runnable() { @Override public void run() { + mHomeStackResizable = isHomeStackResizable; if (mMinimized != minimized) { mMinimized = minimized; updateTouchable(); diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java index 49035ba5bde54..6f59fe2001a18 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java @@ -1241,7 +1241,8 @@ public class DividerView extends FrameLayout implements OnTouchListener, public final void onBusEvent(UndockingTaskEvent undockingTaskEvent) { int dockSide = mWindowManagerProxy.getDockSide(); - if (dockSide != WindowManager.DOCKED_INVALID && !mDockedStackMinimized) { + if (dockSide != WindowManager.DOCKED_INVALID && (mHomeStackResizable + || !mDockedStackMinimized)) { startDragging(false /* animate */, false /* touching */); SnapTarget target = dockSideTopLeft(dockSide) ? mSnapAlgorithm.getDismissEndTarget() diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 62ebe8c0ec8ba..ce4652b190640 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1496,7 +1496,7 @@ public class StatusBar extends SystemUI implements DemoMode, ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT, null, metricsDockAction); } else { Divider divider = getComponent(Divider.class); - if (divider != null && divider.isMinimized()) { + if (divider != null && divider.isMinimized() && !divider.isHomeStackResizable()) { // Undocking from the minimized state is not supported return false; } else {