Merge "Fix the problem of the TalkBack function can not be turned on." into sc-dev
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 4c4757a..9d94858 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -50,7 +50,6 @@
import android.widget.Switch;
import androidx.annotation.Nullable;
-import androidx.preference.Preference;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
@@ -233,14 +232,18 @@
@Override
protected void updateSwitchBarToggleSwitch() {
- final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
- .contains(mComponentName);
+ final boolean checked = isAccessibilityServiceEnabled();
if (mToggleServiceSwitchPreference.isChecked() == checked) {
return;
}
mToggleServiceSwitchPreference.setChecked(checked);
}
+ private boolean isAccessibilityServiceEnabled() {
+ return AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
+ .contains(mComponentName);
+ }
+
/**
* Return whether the device is encrypted with legacy full disk encryption. Newer devices
* should be using File Based Encryption.
@@ -315,7 +318,6 @@
}
private void handleConfirmServiceEnabled(boolean confirmed) {
- mToggleServiceSwitchPreference.setChecked(confirmed);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
onPreferenceToggled(mPreferenceKey, confirmed);
}
@@ -339,8 +341,8 @@
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
- if (isChecked != mToggleServiceSwitchPreference.isChecked()) {
- onPreferenceClick(mToggleServiceSwitchPreference);
+ if (isChecked != isAccessibilityServiceEnabled()) {
+ onPreferenceClick(isChecked);
}
}
@@ -534,14 +536,8 @@
mDialog.dismiss();
}
- private boolean onPreferenceClick(Preference preference) {
- boolean checked = ((SettingsMainSwitchPreference) preference).isChecked();
- if (checked) {
- mToggleServiceSwitchPreference.setChecked(true);
- getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
- /* enableService */ true);
- showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
- } else {
+ private boolean onPreferenceClick(boolean isChecked) {
+ if (isChecked) {
mToggleServiceSwitchPreference.setChecked(false);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
/* disableService */ false);
@@ -553,6 +549,11 @@
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
}
}
+ } else {
+ mToggleServiceSwitchPreference.setChecked(true);
+ getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
+ /* enableService */ true);
+ showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
}
return true;
}