Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64bfe882 authored by Daniel Norman's avatar Daniel Norman Committed by Android (Google) Code Review
Browse files

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.
parents 92fee9f5 77db500f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ android_library {
        "android.hardware.dumpstate-V1.0-java",
        "android.hardware.dumpstate-V1.1-java",
        "android.nfc.flags-aconfig-java",
        "android.view.accessibility.flags-aconfig-java",
        "com_android_server_accessibility_flags_lib",
        "net-utils-framework-common",
        "notification_flags_lib",
        "securebox",
@@ -99,7 +101,6 @@ android_library {
        "settings-logtags",
        "settings-telephony-protos-lite",
        "statslog-settings",
        "com_android_server_accessibility_flags_lib",
    ],

    plugins: ["androidx.room_room-compiler-plugin"],
+5 −1
Original line number Diff line number Diff line
@@ -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) {
+18 −3
Original line number Diff line number Diff line
@@ -64,11 +64,26 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
    @Override
    void onDialogButtonFromShortcutToggleClicked(View view) {
        super.onDialogButtonFromShortcutToggleClicked(view);
        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);
        }
    }

    /**
     * {@inheritDoc}
+40 −13
Original line number Diff line number Diff line
@@ -157,28 +157,55 @@ public class ToggleAccessibilityServicePreferenceFragment extends
                if (info == null) {
                    return null;
                }
                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;
                }
                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;
                }
                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(),