Only setup SecondaryDropTarget in onDragStart

- In LauncherAccessibilityDelegate.getsupportedActions, it calls supportsAccessibilityDrop on each button regardless if DropTargetBar is visible or not. SecondaryDropTarget.supportsAccessibilityDrop attempts to setupUi which causes measure/layout of DropTargetBar (as well as DragLayer) each time LauncherAccessibilityDelegate.getsupportedActions is called
- To avoid this, only setupUi in onDragStart. In other cases don't call setUi.
- Also fixed a bug that when accessibility is on, upon dragging a suggested app, the secondary action suddenly changed to Uninstall

Fix: 233383721
Test: Enable accessibility, observe no excessive amount of onLayout is called on DropTargetBar
Change-Id: I4d1a00d320cceed81fa1312b5fc5f1081637bea8
This commit is contained in:
Alex Chau
2022-05-24 17:09:32 +01:00
parent 6a4ea4c849
commit 158caf466c
4 changed files with 41 additions and 12 deletions

View File

@@ -84,6 +84,9 @@ public class DeleteDropTarget extends ButtonDropTarget {
return LauncherAccessibilityDelegate.REMOVE;
}
@Override
protected void setupItemInfo(ItemInfo info) {}
@Override
protected boolean supportsDrop(ItemInfo info) {
return true;