From: Svetoslav Date: Wed, 8 May 2013 19:14:15 +0000 (-0700) Subject: Settings crashing if there are no installed accessibility services. X-Git-Tag: android-x86-4.4-r1~95^2~16^2~30^2 X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fpackages-apps-Settings.git;a=commitdiff_plain;h=084fbc8107b09887f9f644023759c2c468db8c4a Settings crashing if there are no installed accessibility services. If there is no installed accessibility services and the user goes into the accessibility settings section, the app crashes. This is due to a lacking null pointer check against the list of installed services returned by the accessibility manager. We should not have returned null, rather an empty list - too late now, sigh... bug:8871034 Change-Id: Id3800d398af83868862847fa7ed861a9dee61c8f --- diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java index a4438d056a..ea4940e80b 100644 --- a/src/com/android/settings/AccessibilitySettings.java +++ b/src/com/android/settings/AccessibilitySettings.java @@ -570,11 +570,16 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } private void loadInstalledServices() { + Set installedServices = sInstalledServices; + installedServices.clear(); + List installedServiceInfos = AccessibilityManager.getInstance(getActivity()) .getInstalledAccessibilityServiceList(); - Set installedServices = sInstalledServices; - installedServices.clear(); + if (installedServiceInfos == null) { + return; + } + final int installedServiceInfoCount = installedServiceInfos.size(); for (int i = 0; i < installedServiceInfoCount; i++) { ResolveInfo resolveInfo = installedServiceInfos.get(i).getResolveInfo();