diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index 4c4757a0e0b..9d948583fd4 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -50,7 +50,6 @@ import android.view.accessibility.AccessibilityManager; 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 @@ public class ToggleAccessibilityServicePreferenceFragment extends @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 @@ public class ToggleAccessibilityServicePreferenceFragment extends } private void handleConfirmServiceEnabled(boolean confirmed) { - mToggleServiceSwitchPreference.setChecked(confirmed); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed); onPreferenceToggled(mPreferenceKey, confirmed); } @@ -339,8 +341,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { - if (isChecked != mToggleServiceSwitchPreference.isChecked()) { - onPreferenceClick(mToggleServiceSwitchPreference); + if (isChecked != isAccessibilityServiceEnabled()) { + onPreferenceClick(isChecked); } } @@ -534,14 +536,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends 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 @@ public class ToggleAccessibilityServicePreferenceFragment extends showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL); } } + } else { + mToggleServiceSwitchPreference.setChecked(true); + getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, + /* enableService */ true); + showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE); } return true; }