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
This commit is contained in:
Phil Weaver
2018-04-27 16:28:50 -07:00
parent 2897fd315d
commit 9054e09c7f
2 changed files with 21 additions and 2 deletions

View File

@@ -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() {

View File

@@ -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) {