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

Commit 1d134d66 authored by mxyyiyi's avatar mxyyiyi
Browse files

Add a11y focus on battery chart a11y node.

- Let Talkback annouce the a11y action `Double-tap to ativate`.

Bug: 317001884
Test: Talkback
Change-Id: Ic383c9639950eb6a69ed7b3e1537a5d95d18ea08
parent 9c0654da
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -767,6 +767,10 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
    }

    private class BatteryChartAccessibilityNodeProvider extends AccessibilityNodeProvider {
        private static final int UNDEFINED = Integer.MIN_VALUE;

        private int mAccessibilityFocusNodeViewId = UNDEFINED;

        @Override
        public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) {
            if (virtualViewId == AccessibilityNodeProvider.HOST_VIEW_ID) {
@@ -794,6 +798,7 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
                            R.string.battery_usage_time_info_and_battery_level,
                            slotTimeInfo,
                            batteryLevelInfo));
            childInfo.setAccessibilityFocused(virtualViewId == mAccessibilityFocusNodeViewId);

            final Rect bounds = new Rect();
            getBoundsOnScreen(bounds, true);
@@ -815,10 +820,14 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
                    return true;

                case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS:
                    mAccessibilityFocusNodeViewId = virtualViewId;
                    return sendAccessibilityEvent(
                            virtualViewId, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);

                case AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
                    if (mAccessibilityFocusNodeViewId == virtualViewId) {
                        mAccessibilityFocusNodeViewId = UNDEFINED;
                    }
                    return sendAccessibilityEvent(
                            virtualViewId,
                            AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);