Stop resetting app drag drop state when startDrag is invoked twice.
Before P, if startDragAndDrop is invoked twice, the system goes to wired state where: * the system server keeps processing the first drag operation. * the application loses the drag token but keeps the user local state. * cancelDrag() no longer cancels the ongoing operation. * DragEvents are still delivered with the user local state. At P we unintentionally changed the behavior to: * the system server keeps processing the first drag operation. * the application loses the drag token and the user local state. * cancelDrag() no longer cancels the ongoing operation. * DragEvents are still delivered without the user local state. The CL fixed the behavior so that the second startDragAndDrop() calls does not affect the internal state of drag and drop as it's failed due to existing ongoing operation. * the system server keeps processing the first drag operation. * the application keeps the drag token and the user local state. * cancelDrag() is still able to cancel the ongoing operation. * DragEvents are still delivered with the user local state. Bug: 113310888 Test: Manually invoke startDragAndDrop() and ensures the user local state delivered with DragEvents is not cleared. Change-Id: I0a8315a44d655a8a73b7034f340e50e2f50601a8
Loading
Please register or sign in to comment