Merge "Create a new DragOptions for every drag operation" into sc-dev

This commit is contained in:
Tony Wickham 2021-03-10 21:35:06 +00:00 committed by Android (Google) Code Review
commit 462384dbed
2 changed files with 14 additions and 10 deletions

View File

@ -86,7 +86,7 @@ public abstract class BaseQuickstepLauncher extends Launcher
private @Nullable TaskbarController mTaskbarController;
private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this);
// Will be updated when dragging from taskbar.
private DragOptions mWorkspaceDragOptions = new DragOptions();
private @Nullable DragOptions mNextWorkspaceDragOptions = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -272,11 +272,16 @@ public abstract class BaseQuickstepLauncher extends Launcher
@Override
public DragOptions getDefaultWorkspaceDragOptions() {
return mWorkspaceDragOptions;
if (mNextWorkspaceDragOptions != null) {
DragOptions options = mNextWorkspaceDragOptions;
mNextWorkspaceDragOptions = null;
return options;
}
return super.getDefaultWorkspaceDragOptions();
}
public void setWorkspaceDragOptions(DragOptions dragOptions) {
mWorkspaceDragOptions = dragOptions;
public void setNextWorkspaceDragOptions(DragOptions dragOptions) {
mNextWorkspaceDragOptions = dragOptions;
}
@Override

View File

@ -37,7 +37,6 @@ public class TaskbarDragListener implements View.OnDragListener {
private final BaseQuickstepLauncher mLauncher;
private final ItemInfo mDraggedItem;
private final DragOptions mDragOptions;
// Randomly generated id used to verify the drag event.
private final String mId;
@ -51,8 +50,6 @@ public class TaskbarDragListener implements View.OnDragListener {
public TaskbarDragListener(BaseQuickstepLauncher launcher, ItemInfo draggedItem) {
mLauncher = launcher;
mDraggedItem = draggedItem;
mDragOptions = new DragOptions();
mDragOptions.simulatedDndStartPoint = new Point();
mId = UUID.randomUUID().toString();
}
@ -63,7 +60,7 @@ public class TaskbarDragListener implements View.OnDragListener {
private void cleanup() {
mDragLayer.setOnDragListener(null);
mLauncher.setWorkspaceDragOptions(new DragOptions());
mLauncher.setNextWorkspaceDragOptions(null);
}
/**
@ -88,8 +85,10 @@ public class TaskbarDragListener implements View.OnDragListener {
cleanup();
return false;
}
mDragOptions.simulatedDndStartPoint.set((int) dragEvent.getX(), (int) dragEvent.getY());
mLauncher.setWorkspaceDragOptions(mDragOptions);
DragOptions dragOptions = new DragOptions();
dragOptions.simulatedDndStartPoint = new Point((int) dragEvent.getX(),
(int) dragEvent.getY());
mLauncher.setNextWorkspaceDragOptions(dragOptions);
hotseatView.performLongClick();
} else if (dragEvent.getAction() == DragEvent.ACTION_DRAG_ENDED) {
cleanup();