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

Commit bc83edbf authored by Andy Wickham's avatar Andy Wickham
Browse files

Allows Accessibility to focus on specified view in AbstractFloatingView.

Here, the first item in an ArrowPopup or Folder are focused on.

Note: There's another pre-existing bug where it announces
"Home screen x of y" when the floating view appears; this
change doesn't address that.

Fixes: 147470419
Change-Id: I1dc70edc21ea7c19a5742208512738d6c4a94067
parent e246f191
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -174,7 +174,8 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
                targetInfo.first, TYPE_WINDOW_STATE_CHANGED, targetInfo.second);

        if (mIsOpen) {
            performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
            getAccessibilityInitialFocusView().performAccessibilityAction(
                    AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
        }
        ActivityContext.lookupContext(getContext()).getDragLayer()
                .sendAccessibilityEvent(TYPE_WINDOW_CONTENT_CHANGED);
@@ -184,6 +185,11 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
        return null;
    }

    /** Returns the View that Accessibility services should focus on first. */
    protected View getAccessibilityInitialFocusView() {
        return this;
    }

    /**
     * Returns a view matching FloatingViewType
     */
+5 −0
Original line number Diff line number Diff line
@@ -745,6 +745,11 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo
                : getContext().getString(R.string.folder_closed));
    }

    @Override
    protected View getAccessibilityInitialFocusView() {
        return mContent.getFirstItem();
    }

    private void closeComplete(boolean wasAnimated) {
        // TODO: Clear all active animations.
        DragLayer parent = (DragLayer) getParent();
+5 −0
Original line number Diff line number Diff line
@@ -389,6 +389,11 @@ public abstract class ArrowPopup<T extends BaseDraggingActivity> extends Abstrac
        return Pair.create(this, "");
    }

    @Override
    protected View getAccessibilityInitialFocusView() {
        return getChildCount() > 0 ? getChildAt(0) : this;
    }

    private void animateOpen() {
        setVisibility(View.VISIBLE);