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

Commit ac05cb13 authored by Steven Ng's avatar Steven Ng
Browse files

Fix class cast exception in a11y service for widget resize action

Test: Enable talkback. Then navigate to a widget. Trigger talkback
      menu > actions > move. Able to move a widget without crash.
Bug: 186999201
Change-Id: Ic6a66fefd643443e3d5a8839e6f2fe10c946dab2
parent e5bd97c5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.launcher3.R;
import com.android.launcher3.Workspace;
import com.android.launcher3.dragndrop.DragController.DragListener;
import com.android.launcher3.dragndrop.DragOptions;
import com.android.launcher3.dragndrop.DragView;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.keyboard.KeyboardDragAndDropView;
import com.android.launcher3.model.data.AppInfo;
@@ -290,7 +291,12 @@ public class LauncherAccessibilityDelegate extends AccessibilityDelegate impleme
            return actions;
        }

        CellLayout layout = (CellLayout) host.getParent().getParent();
        CellLayout layout;
        if (host.getParent() instanceof DragView) {
            layout = (CellLayout) ((DragView) host.getParent()).getContentViewParent().getParent();
        } else {
            layout = (CellLayout) host.getParent().getParent();
        }
        if ((providerInfo.resizeMode & AppWidgetProviderInfo.RESIZE_HORIZONTAL) != 0) {
            if (layout.isRegionVacant(info.cellX + info.spanX, info.cellY, 1, info.spanY) ||
                    layout.isRegionVacant(info.cellX - 1, info.cellY, 1, info.spanY)) {