Remove usages of bugfix flag cleanup_accessibility_warning_dialog.

Flag has been in Trunkfood for over a month.

Includes one mechanical refactor to move a method from a now-removed
file into a private method in the class that uses it: createDisableDialog

(This flag guarded a preliminary cleanup and minor bug fix for
b/303511250, but the actual feature for b/303511250 is tracked in a
different flag 'skip_accessibility_warning_dialog_for_trusted_services')

Bug: 303511250
Test: existing tests in Presubmit (no change to behavior)
Change-Id: Iccf439adb2806e988310f503fb3891a6bd022054
This commit is contained in:
Daniel Norman
2024-03-19 23:00:50 +00:00
parent 59a329cae5
commit 8ce099c2cd
4 changed files with 54 additions and 267 deletions

View File

@@ -21,6 +21,7 @@ import static com.android.settings.accessibility.AccessibilityStatsLogUtils.logA
import static com.android.settings.accessibility.PreferredShortcuts.retrieveUserShortcutType;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
@@ -35,6 +36,7 @@ import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.text.BidiFormatter;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
@@ -52,6 +54,7 @@ import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragm
import com.android.settingslib.accessibility.AccessibilityUtils;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicBoolean;
/** Fragment for providing toggle bar and basic accessibility service setup. */
@@ -158,69 +161,63 @@ public class ToggleAccessibilityServicePreferenceFragment extends
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
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);
}
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromEnableToggleClicked(),
v -> onDenyButtonFromEnableToggleClicked(),
v -> onDialogButtonFromUninstallClicked());
return mWarningDialog;
case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE:
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
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);
}
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromShortcutToggleClicked(),
v -> onDenyButtonFromShortcutToggleClicked(),
v -> onDialogButtonFromUninstallClicked());
return mWarningDialog;
case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT:
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
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);
}
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
v -> onAllowButtonFromShortcutClicked(),
v -> onDenyButtonFromShortcutClicked(),
v -> onDialogButtonFromUninstallClicked());
return mWarningDialog;
case DialogEnums.DISABLE_WARNING_FROM_TOGGLE:
if (info == null) {
return null;
}
mWarningDialog = AccessibilityServiceWarning
.createDisableDialog(getPrefContext(), info,
this::onDialogButtonFromDisableToggleClicked);
mWarningDialog = createDisableDialog(
getPrefContext(), info, this::onDialogButtonFromDisableToggleClicked);
return mWarningDialog;
default:
return super.onCreateDialog(dialogId);
}
}
/** Returns a {@link Dialog} to be shown to confirm that they want to disable a service. */
private static Dialog createDisableDialog(Context context,
AccessibilityServiceInfo info, DialogInterface.OnClickListener listener) {
final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
final CharSequence label =
info.getResolveInfo().loadLabel(context.getPackageManager());
CharSequence serviceName = BidiFormatter.getInstance(locale).unicodeWrap(label);
return new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.disable_service_title, serviceName))
.setCancelable(true)
.setPositiveButton(R.string.accessibility_dialog_button_stop, listener)
.setNegativeButton(R.string.accessibility_dialog_button_cancel, listener)
.create();
}
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
@@ -333,13 +330,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
mComponentName.flattenToString(), getDefaultShortcutTypes());
if (preference.isChecked()) {
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !mToggleServiceSwitchPreference.isChecked();
}
final boolean isWarningRequired =
getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
if (isWarningRequired) {
preference.setChecked(false);
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
@@ -355,15 +348,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
@Override
public void onSettingsClicked(ShortcutPreference preference) {
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !(mShortcutPreference.isChecked()
|| mToggleServiceSwitchPreference.isChecked());
}
final boolean isWarningRequired =
getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
if (isWarningRequired) {
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
} else {
@@ -537,17 +524,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mWarningDialog.dismiss();
}
void onDialogButtonFromShortcutClicked(View view) {
final int viewId = view.getId();
if (viewId == R.id.permission_enable_allow_button) {
onAllowButtonFromShortcutClicked();
} else if (viewId == R.id.permission_enable_deny_button) {
onDenyButtonFromShortcutClicked();
} else {
throw new IllegalArgumentException("Unexpected view id");
}
}
private void onAllowButtonFromShortcutClicked() {
mIsDialogShown.set(false);
if (Flags.editShortcutsInFullScreen()) {
@@ -576,13 +552,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mToggleServiceSwitchPreference.setChecked(false);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
/* disableService */ false);
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !mShortcutPreference.isChecked();
}
final boolean isWarningRequired =
getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
if (isWarningRequired) {
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
} else {