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

Commit 9054e09c authored by Phil Weaver's avatar Phil Weaver
Browse files

Make system dialogs' a11y events like Activity's

The window_state_changed events are populated by
Activity with the Activity title. Replicating that
behavior for volume and power dialogs.

Bug: 78775496
Test: Used a test a11y service to observe events,
and started TalkBack, which was less consistent
about announcing them.

Change-Id: Icd4cd8317544c127e44e403162512e2385ff4176
parent 2897fd31
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1380,6 +1380,15 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
            mHardwareLayout = HardwareUiLayout.get(mListView);
            mHardwareLayout.setOutsideTouchListener(view -> dismiss());
            setTitle(R.string.global_actions);
            mListView.setAccessibilityDelegate(new View.AccessibilityDelegate() {
                @Override
                public boolean dispatchPopulateAccessibilityEvent(
                        View host, AccessibilityEvent event) {
                    // Populate the title here, just as Activity does
                    event.getText().add(mContext.getString(R.string.global_actions));
                    return true;
                }
            });
        }

        private void updateList() {
+12 −2
Original line number Diff line number Diff line
@@ -724,8 +724,11 @@ public class VolumeDialogImpl implements VolumeDialog {
            updateVolumeRowH(row);
        }
        updateRingerH();
        mWindow.setTitle(mContext.getString(R.string.volume_dialog_title,
                getStreamLabelH(getActiveRow().ss)));
        mWindow.setTitle(composeWindowTitle());
    }

    CharSequence composeWindowTitle() {
        return mContext.getString(R.string.volume_dialog_title, getStreamLabelH(getActiveRow().ss));
    }

    private void updateVolumeRowH(VolumeRow row) {
@@ -1195,6 +1198,13 @@ public class VolumeDialogImpl implements VolumeDialog {
            mAccessibilityMgr.removeCallback(mListener);
        }

        @Override
        public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
            // Activities populate their title here. Follow that example.
            event.getText().add(composeWindowTitle());
            return true;
        }

        @Override
        public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
                AccessibilityEvent event) {