Merge "Fix bug #14228591 NPE in settings app when it is launched by UiAutomator"
diff --git a/src/com/android/settings/search/DynamicIndexableContentMonitor.java b/src/com/android/settings/search/DynamicIndexableContentMonitor.java
index ad2cce8..af7f2e9 100644
--- a/src/com/android/settings/search/DynamicIndexableContentMonitor.java
+++ b/src/com/android/settings/search/DynamicIndexableContentMonitor.java
@@ -21,6 +21,8 @@
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 @@
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 @@
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 @@
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.