Merge "Enabled accessibility services settings may end with a separator." into ics-factoryrom
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index f98ca7e..3718ced 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -84,7 +84,7 @@
// the AccessibilityServiceInfo we need for proper presentation.
private static final long DELAY_UPDATE_SERVICES_PREFERENCES_MILLIS = 1000;
- private static final char ENABLED_ACCESSIBILITY_SERVICES_SEPARATOR = ':';
+ private static final String ENABLED_ACCESSIBILITY_SERVICES_SEPARATOR = ":";
private static final String KEY_ACCESSIBILITY_TUTORIAL_LAUNCHED_ONCE =
"key_accessibility_tutorial_launched_once";
@@ -126,7 +126,7 @@
// Auxiliary members.
private final SimpleStringSplitter mStringColonSplitter =
- new SimpleStringSplitter(ENABLED_ACCESSIBILITY_SERVICES_SEPARATOR);
+ new SimpleStringSplitter(ENABLED_ACCESSIBILITY_SERVICES_SEPARATOR.charAt(0));
private final Map<String, String> mLongPressTimeoutValuetoTitleMap =
new HashMap<String, String>();
@@ -572,6 +572,11 @@
if (enabledServices == null) {
enabledServices = "";
}
+ // Due to a legacy bug we can get an enabled services value ending with a
+ // separator. Make sure to catch and fix that before handling.
+ if (enabledServices.endsWith(ENABLED_ACCESSIBILITY_SERVICES_SEPARATOR)) {
+ enabledServices = enabledServices.substring(0, enabledServices.length() - 1);
+ }
final int length = enabledServices.length();
if (enabled) {
if (enabledServices.contains(preferenceKey)) {