Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e99decb9 authored by Adnan Begovic's avatar Adnan Begovic Committed by Gerrit Code Review
Browse files

Settings: Avoid possible NPE if resolve infos return null.

 When querying for intent services to handle accessiblity, printing,
 or IME, its possible that the device doesn't have anything available
 at the given moment to handle the query due to either the default
 application being moved to or from sdcard, or just not being present
 on the device.

 TICKET: CYNGNOS-279

Change-Id: Ic264b27deee9eae4329d6b5827976cdb40986622
parent 9405ef9f
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -233,7 +233,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme
    private void handlePackageAvailable(String packageName) {
        if (!mAccessibilityServices.contains(packageName)) {
            final Intent intent = getAccessibilityServiceIntent(packageName);
            if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) {
            List<ResolveInfo> resolveInfos
                    = mContext.getPackageManager().queryIntentServices(intent, 0);
            if (resolveInfos != null && !resolveInfos.isEmpty()) {
                mAccessibilityServices.add(packageName);
                Index.getInstance(mContext).updateFromClassNameResource(
                        AccessibilitySettings.class.getName(), false, true);
@@ -243,7 +245,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme
        if (mHasFeaturePrinting) {
            if (!mPrintServices.contains(packageName)) {
                final Intent intent = getPrintServiceIntent(packageName);
                if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) {
                List<ResolveInfo> resolveInfos
                        = mContext.getPackageManager().queryIntentServices(intent, 0);
                if (resolveInfos != null && !resolveInfos.isEmpty()) {
                    mPrintServices.add(packageName);
                    Index.getInstance(mContext).updateFromClassNameResource(
                            PrintSettingsFragment.class.getName(), false, true);
@@ -254,7 +258,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme
        if (mHasFeatureIme) {
            if (!mImeServices.contains(packageName)) {
                Intent intent = getIMEServiceIntent(packageName);
                if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) {
                List<ResolveInfo> resolveInfos
                        = mContext.getPackageManager().queryIntentServices(intent, 0);
                if (resolveInfos != null && !resolveInfos.isEmpty()) {
                    mImeServices.add(packageName);
                    Index.getInstance(mContext).updateFromClassNameResource(
                            InputMethodAndLanguageSettings.class.getName(), false, true);