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

@@ -67,7 +67,11 @@ public class AccessibilityServiceWarning {
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,
@NonNull AccessibilityServiceInfo info, @NonNull View.OnClickListener listener,
@NonNull UninstallActionPerformer performer) {

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);
}
}

View File

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