From 01a134349f2691bc708d539140640bfe912e4c24 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Fri, 9 Feb 2024 10:33:19 -0800 Subject: [PATCH] Removing the Hotseat from the dragNdrop accessibility targets if the dragObject is a widget Fix: 319036474 Test: manual Flag: NA Change-Id: I7404c02f8ef3c0eee41694729b4d174bcea7c7d4 --- src/com/android/launcher3/Workspace.java | 10 ++++++++-- .../accessibility/AccessibleDragListenerAdapter.java | 8 +++++--- src/com/android/launcher3/folder/Folder.java | 5 +++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 984a9ae2bd..ac0d7cea36 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1636,9 +1636,15 @@ public class Workspace extends PagedView mDragController.addDragListener( new AccessibleDragListenerAdapter(this, WorkspaceAccessibilityHelper::new) { @Override - protected void enableAccessibleDrag(boolean enable) { - super.enableAccessibleDrag(enable); + protected void enableAccessibleDrag(boolean enable, + @Nullable DragObject dragObject) { + super.enableAccessibleDrag(enable, dragObject); setEnableForLayout(mLauncher.getHotseat(), enable); + if (enable && dragObject != null + && dragObject.dragInfo instanceof LauncherAppWidgetInfo) { + mLauncher.getHotseat().setImportantForAccessibility( + IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + } } }); } diff --git a/src/com/android/launcher3/accessibility/AccessibleDragListenerAdapter.java b/src/com/android/launcher3/accessibility/AccessibleDragListenerAdapter.java index 0d7df2b44d..79b81871cc 100644 --- a/src/com/android/launcher3/accessibility/AccessibleDragListenerAdapter.java +++ b/src/com/android/launcher3/accessibility/AccessibleDragListenerAdapter.java @@ -20,6 +20,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.OnHierarchyChangeListener; +import androidx.annotation.Nullable; + import com.android.launcher3.CellLayout; import com.android.launcher3.DropTarget.DragObject; import com.android.launcher3.Launcher; @@ -50,13 +52,13 @@ public class AccessibleDragListenerAdapter implements DragListener, OnHierarchyC @Override public void onDragStart(DragObject dragObject, DragOptions options) { mViewGroup.setOnHierarchyChangeListener(this); - enableAccessibleDrag(true); + enableAccessibleDrag(true, dragObject); } @Override public void onDragEnd() { mViewGroup.setOnHierarchyChangeListener(null); - enableAccessibleDrag(false); + enableAccessibleDrag(false, null); Launcher.getLauncher(mViewGroup.getContext()).getDragController().removeDragListener(this); } @@ -75,7 +77,7 @@ public class AccessibleDragListenerAdapter implements DragListener, OnHierarchyC } } - protected void enableAccessibleDrag(boolean enable) { + protected void enableAccessibleDrag(boolean enable, @Nullable DragObject dragObject) { for (int i = 0; i < mViewGroup.getChildCount(); i++) { setEnableForLayout((CellLayout) mViewGroup.getChildAt(i), enable); } diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 2f3f029963..f013126409 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -320,8 +320,9 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo mDragController.addDragListener(new AccessibleDragListenerAdapter( mContent, FolderAccessibilityHelper::new) { @Override - protected void enableAccessibleDrag(boolean enable) { - super.enableAccessibleDrag(enable); + protected void enableAccessibleDrag(boolean enable, + @Nullable DragObject dragObject) { + super.enableAccessibleDrag(enable, dragObject); mFooter.setImportantForAccessibility(enable ? IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS : IMPORTANT_FOR_ACCESSIBILITY_AUTO);