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

Commit a232d135 authored by Felipe Leme's avatar Felipe Leme
Browse files

Avoid NPE on dump() when permissions or packages is null.

Test: not really
Fixes: 71859400

Change-Id: Ia70626903dd6b259ea2c42a0b4c40f839a6e9cc8
parent e78597ec
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.util.ArraySet;
import android.util.Log;

import com.android.documentsui.prefs.ScopedAccessLocalPreferences.Permission;
import com.android.internal.util.ArrayUtils;

import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -121,6 +122,11 @@ public class ScopedAccessProvider extends ContentProvider {
        // First get the packages that were denied
        final ArraySet<String> pkgs = getAllPackages(getContext());

        if (ArrayUtils.isEmpty(pkgs)) {
            if (VERBOSE) Log.v(TAG, "getPackagesCursor(): ignoring " + pkgs);
            return null;
        }

        // TODO(b/63720392): also need to query AM for granted permissions

        // Then create the cursor
@@ -140,6 +146,11 @@ public class ScopedAccessProvider extends ContentProvider {
        // First get the packages that were denied
        final ArrayList<Permission> rawPermissions = getAllPermissions(getContext());

        if (ArrayUtils.isEmpty(rawPermissions)) {
            if (VERBOSE) Log.v(TAG, "getPermissionsCursor(): ignoring " + rawPermissions);
            return null;
        }

        final List<Object[]> permissions = rawPermissions.stream()
                .filter(permission -> permission.status == PERMISSION_ASK_AGAIN
                        || permission.status == PERMISSION_NEVER_ASK)