summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/search
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-04-21 22:35:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-21 22:35:06 +0000
commit2ce2fd2085653904d243071b505cc0ab485ea64c (patch)
tree8bf2da039e28d6f5e98ee89ac00544563d4ee52c /src/com/android/settings/search
parent59a672ae4ae82dc2ec7cbfee5a574a334ef091e4 (diff)
parent6d7bb92b38fd55991c9c2d399ed303e804520962 (diff)
downloadpackages_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.java20
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.