Fixing broken accessibility drag
> Allow touch events on hotseat while in accessible drag as drag now
happens in spring loaded state.
> Allow drop target buttons to ignore thershold check when in
accessibility drag
Bug: 30900444
Change-Id: I88274367983fc027b2ddde3a719ca943f4f48587
diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java
index 5a4ed2f..0f6073e 100644
--- a/src/com/android/launcher3/ButtonDropTarget.java
+++ b/src/com/android/launcher3/ButtonDropTarget.java
@@ -62,6 +62,8 @@
/** Whether this drop target is active for the current drag */
protected boolean mActive;
+ /** Whether an accessible drag is in progress */
+ private boolean mAccessibleDrag;
/** An item must be dragged at least this many pixels before this drop target is enabled. */
private final int mDragDistanceThreshold;
@@ -218,8 +220,8 @@
@Override
public boolean isDropEnabled() {
- return mActive
- && mLauncher.getDragController().getDistanceDragged() >= mDragDistanceThreshold;
+ return mActive && (mAccessibleDrag ||
+ mLauncher.getDragController().getDistanceDragged() >= mDragDistanceThreshold);
}
@Override
@@ -307,6 +309,7 @@
}
public void enableAccessibleDrag(boolean enable) {
+ mAccessibleDrag = enable;
setOnClickListener(enable ? this : null);
}
diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java
index 6605654..ceaedef 100644
--- a/src/com/android/launcher3/Hotseat.java
+++ b/src/com/android/launcher3/Hotseat.java
@@ -162,11 +162,9 @@
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// We don't want any clicks to go through to the hotseat unless the workspace is in
- // the normal state.
- if (mLauncher.getWorkspace().workspaceInModalState()) {
- return true;
- }
- return false;
+ // the normal state or an accessible drag is in progress.
+ return mLauncher.getWorkspace().workspaceInModalState() &&
+ !mLauncher.getAccessibilityDelegate().isInAccessibleDrag();
}
@Override