First accessibility device disabled if enableing a second one is canceled.

The value whether accessibility should stay enabled was incorrectly
computed and as a result accessibility was disaabled when the second
accessibility service enabling is canceled.

bug:7716830

Change-Id: Ic23c24b1ffa90811e21210aeeca158568ad37904
This commit is contained in:
Svetoslav
2013-04-10 17:33:37 -07:00
parent 8c94273c73
commit 96cd9e7cc7

View File

@@ -726,25 +726,22 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
// Determine enabled services and accessibility state. // Determine enabled services and accessibility state.
ComponentName toggledService = ComponentName.unflattenFromString(preferenceKey); ComponentName toggledService = ComponentName.unflattenFromString(preferenceKey);
final boolean accessibilityEnabled; boolean accessibilityEnabled = false;
if (enabled) { if (enabled) {
enabledServices.add(toggledService);
// Enabling at least one service enables accessibility. // Enabling at least one service enables accessibility.
accessibilityEnabled = true; accessibilityEnabled = true;
enabledServices.add(toggledService);
} else { } else {
enabledServices.remove(toggledService);
// Check how many enabled and installed services are present. // Check how many enabled and installed services are present.
int enabledAndInstalledServiceCount = 0;
Set<ComponentName> installedServices = sInstalledServices; Set<ComponentName> installedServices = sInstalledServices;
for (ComponentName enabledService : enabledServices) { for (ComponentName enabledService : enabledServices) {
if (installedServices.contains(enabledService)) { if (installedServices.contains(enabledService)) {
enabledAndInstalledServiceCount++;
}
}
// Disabling the last service disables accessibility. // Disabling the last service disables accessibility.
accessibilityEnabled = enabledAndInstalledServiceCount > 1 accessibilityEnabled = true;
|| (enabledAndInstalledServiceCount == 1 break;
&& !installedServices.contains(toggledService)); }
enabledServices.remove(toggledService); }
} }
// Update the enabled services setting. // Update the enabled services setting.