Merge changes from topic "b-303511250-dedupe-warning" into main

* changes:
  Tech debt cleanup: Consolidates A11yService warning dialog.
  Includes android.view.accessibility Aconfig flags in Settings.
This commit is contained in:
Daniel Norman
2023-11-14 18:56:15 +00:00
committed by Android (Google) Code Review
4 changed files with 65 additions and 18 deletions

View File

@@ -76,6 +76,8 @@ android_library {
"android.hardware.dumpstate-V1.0-java", "android.hardware.dumpstate-V1.0-java",
"android.hardware.dumpstate-V1.1-java", "android.hardware.dumpstate-V1.1-java",
"android.nfc.flags-aconfig-java", "android.nfc.flags-aconfig-java",
"android.view.accessibility.flags-aconfig-java",
"com_android_server_accessibility_flags_lib",
"net-utils-framework-common", "net-utils-framework-common",
"notification_flags_lib", "notification_flags_lib",
"securebox", "securebox",
@@ -99,7 +101,6 @@ android_library {
"settings-logtags", "settings-logtags",
"settings-telephony-protos-lite", "settings-telephony-protos-lite",
"statslog-settings", "statslog-settings",
"com_android_server_accessibility_flags_lib",
], ],
plugins: ["androidx.room_room-compiler-plugin"], plugins: ["androidx.room_room-compiler-plugin"],

View File

@@ -67,7 +67,11 @@ public class AccessibilityServiceWarning {
void uninstallPackage(); void uninstallPackage();
} }
/** Returns a {@link Dialog} to be shown to confirm that they want to enable a service. */ /**
* Returns a {@link Dialog} to be shown to confirm that they want to enable a service.
* @deprecated Use {@link com.android.internal.accessibility.dialog.AccessibilityServiceWarning}
*/
@Deprecated
public static Dialog createCapabilitiesDialog(@NonNull Context context, public static Dialog createCapabilitiesDialog(@NonNull Context context,
@NonNull AccessibilityServiceInfo info, @NonNull View.OnClickListener listener, @NonNull AccessibilityServiceInfo info, @NonNull View.OnClickListener listener,
@NonNull UninstallActionPerformer performer) { @NonNull UninstallActionPerformer performer) {

View File

@@ -64,9 +64,24 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
@Override @Override
void onDialogButtonFromShortcutToggleClicked(View view) { void onDialogButtonFromShortcutToggleClicked(View view) {
super.onDialogButtonFromShortcutToggleClicked(view); super.onDialogButtonFromShortcutToggleClicked(view);
if (view.getId() == R.id.permission_enable_allow_button) { if (!android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, if (view.getId() == R.id.permission_enable_allow_button) {
true); 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);
} }
} }

View File

@@ -157,28 +157,55 @@ public class ToggleAccessibilityServicePreferenceFragment extends
if (info == null) { if (info == null) {
return null; return null;
} }
mWarningDialog = AccessibilityServiceWarning if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
.createCapabilitiesDialog(getPrefContext(), info, mWarningDialog =
this::onDialogButtonFromEnableToggleClicked, com.android.internal.accessibility.dialog.AccessibilityServiceWarning
this::onDialogButtonFromUninstallClicked); .createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromEnableToggleClicked(),
v -> onDenyButtonFromEnableToggleClicked(),
v -> onDialogButtonFromUninstallClicked());
} else {
mWarningDialog = AccessibilityServiceWarning
.createCapabilitiesDialog(getPrefContext(), info,
this::onDialogButtonFromEnableToggleClicked,
this::onDialogButtonFromUninstallClicked);
}
return mWarningDialog; return mWarningDialog;
case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE: case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE:
if (info == null) { if (info == null) {
return null; return null;
} }
mWarningDialog = AccessibilityServiceWarning if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
.createCapabilitiesDialog(getPrefContext(), info, mWarningDialog =
this::onDialogButtonFromShortcutToggleClicked, com.android.internal.accessibility.dialog.AccessibilityServiceWarning
this::onDialogButtonFromUninstallClicked); .createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromShortcutToggleClicked(),
v -> onDenyButtonFromShortcutToggleClicked(),
v -> onDialogButtonFromUninstallClicked());
} else {
mWarningDialog = AccessibilityServiceWarning
.createCapabilitiesDialog(getPrefContext(), info,
this::onDialogButtonFromShortcutToggleClicked,
this::onDialogButtonFromUninstallClicked);
}
return mWarningDialog; return mWarningDialog;
case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT: case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT:
if (info == null) { if (info == null) {
return null; return null;
} }
mWarningDialog = AccessibilityServiceWarning if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
.createCapabilitiesDialog(getPrefContext(), info, mWarningDialog =
this::onDialogButtonFromShortcutClicked, com.android.internal.accessibility.dialog.AccessibilityServiceWarning
this::onDialogButtonFromUninstallClicked); .createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromShortcutClicked(),
v -> onDenyButtonFromShortcutClicked(),
v -> onDialogButtonFromUninstallClicked());
} else {
mWarningDialog = AccessibilityServiceWarning
.createCapabilitiesDialog(getPrefContext(), info,
this::onDialogButtonFromShortcutClicked,
this::onDialogButtonFromUninstallClicked);
}
return mWarningDialog; return mWarningDialog;
case DialogEnums.DISABLE_WARNING_FROM_TOGGLE: case DialogEnums.DISABLE_WARNING_FROM_TOGGLE:
if (info == null) { if (info == null) {
@@ -459,7 +486,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
} }
} }
private void onAllowButtonFromShortcutToggleClicked() { void onAllowButtonFromShortcutToggleClicked() {
mShortcutPreference.setChecked(true); mShortcutPreference.setChecked(true);
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(), final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),