Update accessibility service toggle switch when resuming.

An accessibility service can be enabled via a global gesture
in which case if the settings activity for enabling the service
is running its toggle switch is shown in the wrong state.

bug:16558106

Change-Id: I2821b148475a7afae21e29148ef98db724c817f2
This commit is contained in:
Svetoslav
2014-10-08 12:29:12 -07:00
committed by Svetoslav Ganov
parent 6b911d59eb
commit 17fd600fc6

View File

@@ -56,10 +56,7 @@ public class ToggleAccessibilityServicePreferenceFragment
new SettingsContentObserver(new Handler()) { new SettingsContentObserver(new Handler()) {
@Override @Override
public void onChange(boolean selfChange, Uri uri) { public void onChange(boolean selfChange, Uri uri) {
String settingValue = Settings.Secure.getString(getContentResolver(), updateSwitchBarToggleSwitch();
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
final boolean enabled = settingValue.contains(mComponentName.flattenToString());
mSwitchBar.setCheckedInternal(enabled);
} }
}; };
@@ -70,6 +67,7 @@ public class ToggleAccessibilityServicePreferenceFragment
@Override @Override
public void onResume() { public void onResume() {
mSettingsContentObserver.register(getContentResolver()); mSettingsContentObserver.register(getContentResolver());
updateSwitchBarToggleSwitch();
super.onResume(); super.onResume();
} }
@@ -195,6 +193,13 @@ public class ToggleAccessibilityServicePreferenceFragment
} }
} }
private void updateSwitchBarToggleSwitch() {
String settingValue = Settings.Secure.getString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
final boolean checked = settingValue.contains(mComponentName.flattenToString());
mSwitchBar.setCheckedInternal(checked);
}
private View createEnableDialogContentView(AccessibilityServiceInfo info) { private View createEnableDialogContentView(AccessibilityServiceInfo info) {
LayoutInflater inflater = (LayoutInflater) getSystemService( LayoutInflater inflater = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE); Context.LAYOUT_INFLATER_SERVICE);