Fix a crash in accessibiility settings.
Change-Id: I27920668191742ab032de7b71c8f71cc35432e9f
diff --git a/src/com/android/settings/accessibility/AccessibilityUtils.java b/src/com/android/settings/accessibility/AccessibilityUtils.java
index 66a3ed2..7282bce 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtils.java
@@ -33,7 +33,8 @@
*/
class AccessibilityUtils {
/**
- * @return the set of enabled accessibility services
+ * @return the set of enabled accessibility services. If there are not services
+ * it returned the unmodifiable {@link Collections#emptySet()}.
*/
static Set<ComponentName> getEnabledServicesFromSettings(Context context) {
final String enabledServicesSetting = Settings.Secure.getString(
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 3059dcc..0c568f0 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -39,6 +39,8 @@
import com.android.settings.R;
import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeListener;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -81,6 +83,10 @@
Set<ComponentName> enabledServices = AccessibilityUtils.getEnabledServicesFromSettings(
getActivity());
+ if (enabledServices == (Set<?>) Collections.emptySet()) {
+ enabledServices = new HashSet<ComponentName>();
+ }
+
// Determine enabled services and accessibility state.
ComponentName toggledService = ComponentName.unflattenFromString(preferenceKey);
boolean accessibilityEnabled = false;