diff options
| author | 2012-10-03 16:30:31 -0700 | |
|---|---|---|
| committer | 2012-10-03 16:37:54 -0700 | |
| commit | d288337cd4476b6bcfe416558924f5984984509a (patch) | |
| tree | 39e69d3fd8fcb20dc84c3165db5cc12a71b375a0 | |
| parent | 26884df75c69587561e397ec4da6b5b463e37fe9 (diff) | |
Exception when performing the global gestrue to enable accessibility.
1. If there is a non-speaking accessibility service installed and the
global gesture is performed an exception is thrown since an attempt
is made to modify the list with services returned by the accessibility
manager (to remove the non-speaking ones) but this list is immutable.
Now the returned services are put into a mutable list before removing
the non-speaking ones.
bug:7280996
Change-Id: I2852a3e169c1d34d942b50fb439e0961394c92bc
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/EnableAccessibilityController.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/policy/src/com/android/internal/policy/impl/EnableAccessibilityController.java b/policy/src/com/android/internal/policy/impl/EnableAccessibilityController.java index 889463b7eec0..71b0d53572d2 100644 --- a/policy/src/com/android/internal/policy/impl/EnableAccessibilityController.java +++ b/policy/src/com/android/internal/policy/impl/EnableAccessibilityController.java @@ -40,6 +40,7 @@ import android.view.accessibility.IAccessibilityManager; import com.android.internal.R; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -131,8 +132,9 @@ public class EnableAccessibilityController { private static List<AccessibilityServiceInfo> getInstalledSpeakingAccessibilityServices( Context context) { - List<AccessibilityServiceInfo> services = AccessibilityManager.getInstance( - context).getInstalledAccessibilityServiceList(); + List<AccessibilityServiceInfo> services = new ArrayList<AccessibilityServiceInfo>(); + services.addAll(AccessibilityManager.getInstance(context) + .getInstalledAccessibilityServiceList()); Iterator<AccessibilityServiceInfo> iterator = services.iterator(); while (iterator.hasNext()) { AccessibilityServiceInfo service = iterator.next(); |