Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01a13434 authored by Sebastian Franco's avatar Sebastian Franco
Browse files

Removing the Hotseat from the dragNdrop accessibility targets if the dragObject is a widget

Fix: 319036474
Test: manual
Flag: NA
Change-Id: I7404c02f8ef3c0eee41694729b4d174bcea7c7d4
parent 1bb90a78
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1636,9 +1636,15 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
            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);
                            }
                        }
                    });
        }
+5 −3
Original line number Diff line number Diff line
@@ -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);
        }
+3 −2
Original line number Diff line number Diff line
@@ -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);