Create a new DragOptions for every drag operation

Previously we were reusing the same DragOptions which led to some
bad states.

Test: Drag items around, ensure nothing disappears from Workspace
Bug: 182079330
Change-Id: I8d6027bc984db8c770841bb560735604689ad0ff
This commit is contained in:
Tony Wickham
2021-03-09 10:36:38 -08:00
committed by Steven Ng
parent 3c08f580c3
commit 90351c208e
2 changed files with 14 additions and 10 deletions

View File

@@ -85,7 +85,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) {
@@ -274,11 +274,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