Don't stash immediately when drag was canceled

Instead, keep the taskbar open for the normal timeout.

Test: Drag an app from taskbar and drop back in taskbar, ensure taskbar
stays open until 5 second timeout; Drag an app from taskbar and drop
into split screen, ensure taskbar stashes immediately
Flag: ENABLE_TRANSIENT_TASKBAR true
Fixes: 275019813

Change-Id: I06ca0eccbfe313dbae8f6d96c7c09bb659f6a27b
This commit is contained in:
Tony Wickham
2023-03-28 17:52:20 +00:00
parent 6164ce950a
commit c691dcba5a

View File

@@ -457,9 +457,12 @@ public class TaskbarDragController extends DragController<BaseTaskbarContext> im
mControllers.taskbarAutohideSuspendController.updateFlag(
TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING, false);
mActivity.onDragEnd();
// Note, this must be done last to ensure no AutohideSuspendFlags are active, as that
// will prevent us from stashing until the timeout.
mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(true);
if (mReturnAnimator == null) {
// Upon successful drag, immediately stash taskbar.
// Note, this must be done last to ensure no AutohideSuspendFlags are active, as
// that will prevent us from stashing until the timeout.
mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(true);
}
}
}
@@ -493,8 +496,9 @@ public class TaskbarDragController extends DragController<BaseTaskbarContext> im
callOnDragEnd();
dragView.remove();
dragView.clearAnimation();
// Do this after callOnDragEnd(), because we use mReturnAnimator != null to
// imply the drag was canceled rather than successful.
mReturnAnimator = null;
}
});
mReturnAnimator.start();
@@ -556,6 +560,8 @@ public class TaskbarDragController extends DragController<BaseTaskbarContext> im
syncGroup.add(viewRoot, null /* runnable */);
syncGroup.addTransaction(transaction);
syncGroup.markSyncReady();
// Do this after maybeOnDragEnd(), because we use mReturnAnimator != null to imply
// the drag was canceled rather than successful.
mReturnAnimator = null;
}
});