Merge changes from topic "b-303511250-cleanup" into main

* changes:
  Use A11yManagerService to check if the A11yService warning is required.
  Minor refactoring to replace duplicated logic with existing methods.
This commit is contained in:
Daniel Norman
2023-12-06 19:55:21 +00:00
committed by Android (Google) Code Review
3 changed files with 164 additions and 22 deletions

View File

@@ -64,7 +64,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
@Override
void onDialogButtonFromShortcutToggleClicked(View view) {
super.onDialogButtonFromShortcutToggleClicked(view);
if (!android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (!android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
if (view.getId() == R.id.permission_enable_allow_button) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
true);
@@ -80,7 +80,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
@Override
void onAllowButtonFromShortcutToggleClicked() {
super.onAllowButtonFromShortcutToggleClicked();
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
}
}

View File

@@ -157,7 +157,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
@@ -175,7 +175,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
@@ -193,7 +193,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
if (info == null) {
return null;
}
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
mWarningDialog =
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
@@ -332,13 +332,18 @@ public class ToggleAccessibilityServicePreferenceFragment extends
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
if (preference.isChecked()) {
if (!mToggleServiceSwitchPreference.isChecked()) {
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !mToggleServiceSwitchPreference.isChecked();
}
if (isWarningRequired) {
preference.setChecked(false);
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
} else {
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
mComponentName);
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
onAllowButtonFromShortcutToggleClicked();
}
} else {
AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), shortcutTypes,
@@ -349,10 +354,20 @@ public class ToggleAccessibilityServicePreferenceFragment extends
@Override
public void onSettingsClicked(ShortcutPreference preference) {
final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
|| mToggleServiceSwitchPreference.isChecked();
showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
: DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !(mShortcutPreference.isChecked()
|| mToggleServiceSwitchPreference.isChecked());
}
if (isWarningRequired) {
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
} else {
onAllowButtonFromShortcutClicked();
}
}
@Override
@@ -467,7 +482,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mIsDialogShown.set(false);
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
}
mWarningDialog.dismiss();
if (mWarningDialog != null) {
mWarningDialog.dismiss();
}
}
private void onDenyButtonFromEnableToggleClicked() {
@@ -496,7 +513,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mIsDialogShown.set(false);
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
mWarningDialog.dismiss();
if (mWarningDialog != null) {
mWarningDialog.dismiss();
}
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
}
@@ -522,7 +541,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mIsDialogShown.set(false);
showPopupDialog(DialogEnums.EDIT_SHORTCUT);
mWarningDialog.dismiss();
if (mWarningDialog != null) {
mWarningDialog.dismiss();
}
}
private void onDenyButtonFromShortcutClicked() {
@@ -534,13 +555,17 @@ public class ToggleAccessibilityServicePreferenceFragment extends
mToggleServiceSwitchPreference.setChecked(false);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
/* disableService */ false);
if (!mShortcutPreference.isChecked()) {
final boolean isWarningRequired;
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
} else {
isWarningRequired = !mShortcutPreference.isChecked();
}
if (isWarningRequired) {
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
} else {
handleConfirmServiceEnabled(/* confirmed= */ true);
if (serviceSupportsAccessibilityButton()) {
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
}
onAllowButtonFromEnableToggleClicked();
}
} else {
mToggleServiceSwitchPreference.setChecked(true);