From 604ae3283c31b2ebe20b9df643d3026b3263d398 Mon Sep 17 00:00:00 2001 From: Pinyao Ting Date: Fri, 22 Nov 2024 00:34:03 +0000 Subject: [PATCH] Remove redundant a11y announcement upon removal of workspace item. When a workspace item is removed, launcher currently shows a Snackbar which contains a message saying "item removed". This renders the a11y announcement in DeleteDropTarget#onAccessibilityDrop redundant since it's saying exactly the same string. Bug: 378032433 Change-Id: Iaf3b42404ecd382b1ee15f670cc4ebe0124218d2 Test: manual Flag: EXEMPT bugfix --- src/com/android/launcher3/DeleteDropTarget.java | 1 - src/com/android/launcher3/DropTargetHandler.kt | 15 ++++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java index 58789fd8f2..425f277eea 100644 --- a/src/com/android/launcher3/DeleteDropTarget.java +++ b/src/com/android/launcher3/DeleteDropTarget.java @@ -130,7 +130,6 @@ public class DeleteDropTarget extends ButtonDropTarget { public void completeDrop(DragObject d) { ItemInfo item = d.dragInfo; if (canRemove(item)) { - onAccessibilityDrop(null, item); mDropTargetHandler.onDeleteComplete(item); } } diff --git a/src/com/android/launcher3/DropTargetHandler.kt b/src/com/android/launcher3/DropTargetHandler.kt index f1029b1f2b..4d3fe526a9 100644 --- a/src/com/android/launcher3/DropTargetHandler.kt +++ b/src/com/android/launcher3/DropTargetHandler.kt @@ -65,6 +65,7 @@ class DropTargetHandler(launcher: Launcher) { } fun onDeleteComplete(item: ItemInfo) { + removeItemAndStripEmptyScreens(null /* view */, item) var pageItem: ItemInfo = item if (item.container <= 0) { val v = mLauncher.workspace.getHomescreenIconByItemId(item.container) @@ -90,11 +91,7 @@ class DropTargetHandler(launcher: Launcher) { } fun onAccessibilityDelete(view: View?, item: ItemInfo, announcement: CharSequence) { - // Remove the item from launcher and the db, we can ignore the containerInfo in this call - // because we already remove the drag view from the folder (if the drag originated from - // a folder) in Folder.beginDrag() - mLauncher.removeItem(view, item, true /* deleteFromDb */, "removed by accessibility drop") - mLauncher.workspace.stripEmptyScreens() + removeItemAndStripEmptyScreens(view, item) mLauncher.dragLayer.announceForAccessibility(announcement) } @@ -105,4 +102,12 @@ class DropTargetHandler(launcher: Launcher) { fun onClick(buttonDropTarget: ButtonDropTarget) { mLauncher.accessibilityDelegate.handleAccessibleDrop(buttonDropTarget, null, null) } + + private fun removeItemAndStripEmptyScreens(view: View?, item: ItemInfo) { + // Remove the item from launcher and the db, we can ignore the containerInfo in this call + // because we already remove the drag view from the folder (if the drag originated from + // a folder) in Folder.beginDrag() + mLauncher.removeItem(view, item, true /* deleteFromDb */, "removed by accessibility drop") + mLauncher.workspace.stripEmptyScreens() + } }