diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-04-21 22:35:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-04-21 22:35:06 +0000 |
commit | 2ce2fd2085653904d243071b505cc0ab485ea64c (patch) | |
tree | 8bf2da039e28d6f5e98ee89ac00544563d4ee52c /src/com/android/settings/search | |
parent | 59a672ae4ae82dc2ec7cbfee5a574a334ef091e4 (diff) | |
parent | 6d7bb92b38fd55991c9c2d399ed303e804520962 (diff) | |
download | packages_apps_Settings-2ce2fd2085653904d243071b505cc0ab485ea64c.tar.gz packages_apps_Settings-2ce2fd2085653904d243071b505cc0ab485ea64c.tar.bz2 packages_apps_Settings-2ce2fd2085653904d243071b505cc0ab485ea64c.zip |
Merge "Fix bug #14228591 NPE in settings app when it is launched by UiAutomator"
Diffstat (limited to 'src/com/android/settings/search')
-rw-r--r-- | src/com/android/settings/search/DynamicIndexableContentMonitor.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/com/android/settings/search/DynamicIndexableContentMonitor.java b/src/com/android/settings/search/DynamicIndexableContentMonitor.java index ad2cce8f0..af7f2e9fb 100644 --- a/src/com/android/settings/search/DynamicIndexableContentMonitor.java +++ b/src/com/android/settings/search/DynamicIndexableContentMonitor.java @@ -21,6 +21,8 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.pm.ServiceInfo; import android.database.ContentObserver; import android.hardware.input.InputManager; import android.net.Uri; @@ -105,8 +107,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme final int accessibilityServiceCount = accessibilityServices.size(); for (int i = 0; i < accessibilityServiceCount; i++) { AccessibilityServiceInfo accessibilityService = accessibilityServices.get(i); - mAccessibilityServices.add(accessibilityService.getResolveInfo() - .serviceInfo.packageName); + ResolveInfo resolveInfo = accessibilityService.getResolveInfo(); + if (resolveInfo == null || resolveInfo.serviceInfo == null) { + continue; + } + mAccessibilityServices.add(resolveInfo.serviceInfo.packageName); } // Cache print service packages to know when they go away. @@ -116,8 +121,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme final int serviceCount = printServices.size(); for (int i = 0; i < serviceCount; i++) { PrintServiceInfo printService = printServices.get(i); - mPrintServices.add(printService.getResolveInfo() - .serviceInfo.packageName); + ResolveInfo resolveInfo = printService.getResolveInfo(); + if (resolveInfo == null || resolveInfo.serviceInfo == null) { + continue; + } + mPrintServices.add(resolveInfo.serviceInfo.packageName); } // Cache IME service packages to know when they go away. @@ -127,7 +135,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme final int inputMethodCount = inputMethods.size(); for (int i = 0; i < inputMethodCount; i++) { InputMethodInfo inputMethod = inputMethods.get(i); - mImeServices.add(inputMethod.getServiceInfo().packageName); + ServiceInfo serviceInfo = inputMethod.getServiceInfo(); + if (serviceInfo == null) continue; + mImeServices.add(serviceInfo.packageName); } // Watch for related content URIs. |