OSDN Git Service

Cancels out long press on recents fixed from previous change
authorMatthew Ng <ngmatthew@google.com>
Tue, 20 Dec 2016 19:06:49 +0000 (11:06 -0800)
committerMatthew Ng <ngmatthew@google.com>
Tue, 20 Dec 2016 20:08:57 +0000 (12:08 -0800)
This fixes an error from change-id
Ic9c8a5096ce9f30fc1265774ebb82c1356b1221b where the docked state was
not dismissed when long pressing recents. Minimized state is also
handled by not having the second vibration.

Test: manual - tested home screen, minimized, dock and undock the tasks
into multi-window mode
Fixes: 33655754
Fixes: 29927464
Change-Id: I3adedf9d0e1dcd5fe297f7ca8b9cb8faeba8bcb1

packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java

index a0bae20..3cd2a7a 100644 (file)
@@ -67,6 +67,10 @@ public class Divider extends SystemUI {
         return mView;
     }
 
+    public boolean isMinimized() {
+        return mMinimized;
+    }
+
     private void addDivider(Configuration configuration) {
         mView = (DividerView)
                 LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null);
index 414ebec..5601425 100644 (file)
@@ -1351,8 +1351,9 @@ public abstract class BaseStatusBar extends SystemUI implements
      *                          anything on successful docking
      * @param metricsUndockAction the action to log when undocking, or -1 to not log anything when
      *                            undocking
+     * @return true if toggle split screen was successful
      */
-    protected abstract void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction);
+    protected abstract boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction);
 
     /** Proxy for RecentsComponent */
 
index 5da652d..c0d9f15 100644 (file)
@@ -1365,35 +1365,33 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                 return false;
             }
 
-            ActivityManager.RunningTaskInfo runningTask =
-                    Recents.getSystemServices().getRunningTask();
-            boolean isRunningTaskInHomeOrRecentsStack = runningTask != null &&
-                    ActivityManager.StackId.isHomeOrRecentsStack(runningTask.stackId);
-            if (isRunningTaskInHomeOrRecentsStack) {
-                return false;
-            }
-
-            toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,
+            return toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,
                     MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS);
-            return true;
         }
     };
 
     @Override
-    protected void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
+    protected boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
         if (mRecents == null) {
-            return;
+            return false;
         }
         int dockSide = WindowManagerProxy.getInstance().getDockSide();
         if (dockSide == WindowManager.DOCKED_INVALID) {
-            mRecents.dockTopTask(NavigationBarGestureHelper.DRAG_MODE_NONE,
+            return mRecents.dockTopTask(NavigationBarGestureHelper.DRAG_MODE_NONE,
                     ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT, null, metricsDockAction);
         } else {
-            EventBus.getDefault().send(new UndockingTaskEvent());
-            if (metricsUndockAction != -1) {
-                MetricsLogger.action(mContext, metricsUndockAction);
+            Divider divider = getComponent(Divider.class);
+            if (divider != null && divider.isMinimized()) {
+                // Undocking from the minimized state is not supported
+                return false;
+            } else {
+                EventBus.getDefault().send(new UndockingTaskEvent());
+                if (metricsUndockAction != -1) {
+                    MetricsLogger.action(mContext, metricsUndockAction);
+                }
             }
         }
+        return true;
     }
 
     private final View.OnLongClickListener mLongPressHomeListener
index f5c60a0..89d4b00 100644 (file)
@@ -116,7 +116,8 @@ public class TvStatusBar extends BaseStatusBar {
     }
 
     @Override
-    protected void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
+    protected boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
+        return false;
     }
 
     @Override