Fix the problem of the TalkBack function can not be turned on.
- Check the states of the switch and the accessibility service. If the states are different, update the state of accessibility service. Fix: 190309601 Test: robotest and test the TalkBack manually. Change-Id: Id8c28223b1958087e7cdc481348487376afa2203
This commit is contained in:
@@ -49,7 +49,6 @@ import android.view.accessibility.AccessibilityManager;
|
|||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.preference.Preference;
|
|
||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -232,14 +231,18 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateSwitchBarToggleSwitch() {
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
|
final boolean checked = isAccessibilityServiceEnabled();
|
||||||
.contains(mComponentName);
|
|
||||||
if (mToggleServiceSwitchPreference.isChecked() == checked) {
|
if (mToggleServiceSwitchPreference.isChecked() == checked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mToggleServiceSwitchPreference.setChecked(checked);
|
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
|
* Return whether the device is encrypted with legacy full disk encryption. Newer devices
|
||||||
* should be using File Based Encryption.
|
* should be using File Based Encryption.
|
||||||
@@ -314,7 +317,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleConfirmServiceEnabled(boolean confirmed) {
|
private void handleConfirmServiceEnabled(boolean confirmed) {
|
||||||
mToggleServiceSwitchPreference.setChecked(confirmed);
|
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
|
||||||
onPreferenceToggled(mPreferenceKey, confirmed);
|
onPreferenceToggled(mPreferenceKey, confirmed);
|
||||||
}
|
}
|
||||||
@@ -338,8 +340,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||||
if (isChecked != mToggleServiceSwitchPreference.isChecked()) {
|
if (isChecked != isAccessibilityServiceEnabled()) {
|
||||||
onPreferenceClick(mToggleServiceSwitchPreference);
|
onPreferenceClick(isChecked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -533,14 +535,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean onPreferenceClick(Preference preference) {
|
private boolean onPreferenceClick(boolean isChecked) {
|
||||||
boolean checked = ((SettingsMainSwitchPreference) preference).isChecked();
|
if (isChecked) {
|
||||||
if (checked) {
|
|
||||||
mToggleServiceSwitchPreference.setChecked(true);
|
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
|
||||||
/* enableService */ true);
|
|
||||||
showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
|
|
||||||
} else {
|
|
||||||
mToggleServiceSwitchPreference.setChecked(false);
|
mToggleServiceSwitchPreference.setChecked(false);
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
||||||
/* disableService */ false);
|
/* disableService */ false);
|
||||||
@@ -552,6 +548,11 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
mToggleServiceSwitchPreference.setChecked(true);
|
||||||
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
||||||
|
/* enableService */ true);
|
||||||
|
showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user