Tech debt cleanup: Consolidates A11yService warning dialog.

Both frameworks/base and the Settings app define almost-identical copies
of a warning dialog shown when enabling an accessibility service.
The frameworks/base version was used for contexts outside of Settings
(e.g. while editing the volume key shortcut after triggering it with
2+ features already enabled) while the Settings version was used in
the Settings app.

This change replaces version used in Settings with the version defined
in frameworks/base.

The warning dialog's functionality is tested in
AccessibilityServiceWarningTest in frameworks/base.

Feature flag:
`adb shell device_config override accessibility android.view.accessibility.deduplicate_accessibility_warning_dialog true`

Bug: 303511250
Test: atest AccessibilityServiceWarningTest
Test: existing A11ySettings robotests
Change-Id: Iad2f13040d53d82a4afb0353fae3ac355b5548d6
This commit is contained in:
Daniel Norman
2023-11-01 21:09:03 +00:00
parent 60d28f7a8e
commit 77db500fcb
3 changed files with 63 additions and 17 deletions

View File

@@ -64,9 +64,24 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
@Override
void onDialogButtonFromShortcutToggleClicked(View view) {
super.onDialogButtonFromShortcutToggleClicked(view);
if (view.getId() == R.id.permission_enable_allow_button) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
true);
if (!android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (view.getId() == R.id.permission_enable_allow_button) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
true);
}
}
}
/**
* {@inheritDoc}
*
* Enables accessibility service when user clicks permission allow button.
*/
@Override
void onAllowButtonFromShortcutToggleClicked() {
super.onAllowButtonFromShortcutToggleClicked();
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
}
}