mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
Fixing regression where the source icon becomes visible while dragging
Bug: 30291280 Change-Id: I5687e00371315a318e8ff93dd3de4c5f437a6971
This commit is contained in:
@@ -87,6 +87,8 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
||||
private boolean mIsAboveIcon;
|
||||
private boolean mIsAnimatingOpen;
|
||||
|
||||
private boolean mSrcIconDragStarted;
|
||||
|
||||
/**
|
||||
* Sorts shortcuts in rank order, with manifest shortcuts coming before dynamic shortcuts.
|
||||
*/
|
||||
@@ -349,7 +351,8 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
||||
|
||||
boolean containerContainsTouch = x >= 0 && y >= 0 && x < getWidth() && y < getHeight();
|
||||
if (shouldStartDeferredDrag((int) x, (int) y, containerContainsTouch)) {
|
||||
cleanupDeferredDrag();
|
||||
mSrcIconDragStarted = true;
|
||||
cleanupDeferredDrag(true);
|
||||
mDeferredDragIcon.getParent().requestDisallowInterceptTouchEvent(false);
|
||||
mDeferredDragIcon.getOnLongClickListener().onLongClick(mDeferredDragIcon);
|
||||
mLauncher.getDragController().onTouchEvent(ev);
|
||||
@@ -379,7 +382,7 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
||||
}
|
||||
}
|
||||
} else if (action == MotionEvent.ACTION_UP) {
|
||||
cleanupDeferredDrag();
|
||||
cleanupDeferredDrag(true);
|
||||
// Launch a shortcut if user was hovering over it.
|
||||
for (int i = 0; i < childCount; i++) {
|
||||
DeepShortcutView shortcut = getShortcutAt(i);
|
||||
@@ -389,7 +392,8 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
||||
}
|
||||
}
|
||||
} else if (action == MotionEvent.ACTION_CANCEL) {
|
||||
cleanupDeferredDrag();
|
||||
// Do not change the source icon visibility if we are already dragging the source icon.
|
||||
cleanupDeferredDrag(!mSrcIconDragStarted);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -414,11 +418,13 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
||||
return !containerContainsTouch && (newDistToEdge - distToEdge > mStartDragThreshold);
|
||||
}
|
||||
|
||||
public void cleanupDeferredDrag() {
|
||||
public void cleanupDeferredDrag(boolean updateSrcVisibility) {
|
||||
if (mDragView != null) {
|
||||
mDragView.remove();
|
||||
}
|
||||
mDeferredDragIcon.setVisibility(VISIBLE);
|
||||
if (updateSrcVisibility) {
|
||||
mDeferredDragIcon.setVisibility(VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user