diff options
| author | 2016-01-14 19:40:24 -0800 | |
|---|---|---|
| committer | 2016-01-15 14:32:24 -0800 | |
| commit | 298c08115110a5615a1972884fa7ee24dd9c59d6 (patch) | |
| tree | dc19d1030a9a3c05ed1405c0bb9817b0c22841c7 | |
| parent | fdc97ae2eea9adf25c4eb273a5f8243cf4609348 (diff) | |
Restrict drag in gesture to recents button
Bug: 26317834
Change-Id: I0b8b2ee3b552b979c22b2135056c9899273886a0
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java | 16 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java index e5b4f4d0369d..2db08041be8e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java @@ -23,6 +23,7 @@ import android.graphics.Rect; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.VelocityTracker; +import android.view.View; import android.view.ViewConfiguration; import com.android.internal.logging.MetricsLogger; @@ -55,6 +56,7 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL private RecentsComponent mRecentsComponent; private Divider mDivider; private Context mContext; + private NavigationBarView mNavigationBarView; private boolean mIsVertical; private boolean mIsRTL; @@ -63,6 +65,7 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL private final int mMinFlingVelocity; private int mTouchDownX; private int mTouchDownY; + private boolean mDownOnRecents; private VelocityTracker mVelocityTracker; private boolean mDockWindowEnabled; @@ -79,9 +82,11 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL TunerService.get(context).addTunable(this, KEY_DOCK_WINDOW_GESTURE); } - public void setComponents(RecentsComponent recentsComponent, Divider divider) { + public void setComponents(RecentsComponent recentsComponent, Divider divider, + NavigationBarView navigationBarView) { mRecentsComponent = recentsComponent; mDivider = divider; + mNavigationBarView = navigationBarView; } public void setBarState(boolean isVertical, boolean isRTL) { @@ -157,6 +162,11 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL mDockWindowTouchSlopExceeded = false; mTouchDownX = (int) event.getX(); mTouchDownY = (int) event.getY(); + View recentsButton = mNavigationBarView.getRecentsButton(); + mDownOnRecents = mTouchDownX >= recentsButton.getLeft() + && mTouchDownX <= recentsButton.getRight() + && mTouchDownY >= recentsButton.getTop() + && mTouchDownY <= recentsButton.getBottom(); } private boolean handleDragActionMoveEvent(MotionEvent event) { @@ -172,8 +182,8 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL boolean touchSlopExceeded = !mIsVertical ? yDiff > mScrollTouchSlop && yDiff > xDiff : xDiff > mScrollTouchSlop && xDiff > yDiff; - if (touchSlopExceeded && mDivider.getView().getWindowManagerProxy().getDockSide() - == DOCKED_INVALID) { + if (mDownOnRecents && touchSlopExceeded + && mDivider.getView().getWindowManagerProxy().getDockSide() == DOCKED_INVALID) { Rect initialBounds = null; int dragMode = calculateDragMode(); int createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 55c7cb7b2909..6c0c0ae37cbc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -197,7 +197,7 @@ public class NavigationBarView extends LinearLayout { } public void setComponents(RecentsComponent recentsComponent, Divider divider) { - mGestureHelper.setComponents(recentsComponent, divider); + mGestureHelper.setComponents(recentsComponent, divider, this); } public void setOnVerticalChangedListener(OnVerticalChangedListener onVerticalChangedListener) { |