diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java index e8ed85c63e3..9022ebfa9a1 100644 --- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java +++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java @@ -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) { diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java index 0c1876f95d0..1ecb94ae2bd 100644 --- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java @@ -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); } } diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index 6847a6dc3c1..213f108bd66 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -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(),