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

Commit 1ba1e740 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use createPackageContextAsUser() for PackageManager cross-user calls." into qt-dev

parents 10559085 c3682574
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -96,25 +96,27 @@ public class AssistantRoleBehavior implements RoleBehavior {
    @Override
    public List<String> getQualifyingPackagesAsUser(@NonNull Role role, @NonNull UserHandle user,
            @NonNull Context context) {
        PackageManager pm = context.getPackageManager();
        Context userContext = UserUtils.getUserContext(context, user);
        PackageManager userPackageManager = userContext.getPackageManager();
        Set<String> availableAssistants = new ArraySet<>();

        List<ResolveInfo> services = pm.queryIntentServicesAsUser(ASSIST_SERVICE_PROBE,
        List<ResolveInfo> services = userPackageManager.queryIntentServices(ASSIST_SERVICE_PROBE,
                PackageManager.GET_META_DATA | PackageManager.MATCH_DIRECT_BOOT_AWARE
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, user);
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);

        int numServices = services.size();
        for (int i = 0; i < numServices; i++) {
            ResolveInfo service = services.get(i);

            if (isAssistantVoiceInteractionService(pm, service.serviceInfo)) {
            if (isAssistantVoiceInteractionService(userPackageManager, service.serviceInfo)) {
                availableAssistants.add(service.serviceInfo.packageName);
            }
        }

        List<ResolveInfo> activities = pm.queryIntentActivitiesAsUser(ASSIST_ACTIVITY_PROBE,
                PackageManager.MATCH_DEFAULT_ONLY | PackageManager.MATCH_DIRECT_BOOT_AWARE
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, user);
        List<ResolveInfo> activities = userPackageManager.queryIntentActivities(
                ASSIST_ACTIVITY_PROBE, PackageManager.MATCH_DEFAULT_ONLY
                        | PackageManager.MATCH_DIRECT_BOOT_AWARE
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);

        int numActivities = activities.size();
        for (int i = 0; i < numActivities; i++) {
+6 −3
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.util.ArraySet;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.packageinstaller.role.utils.UserUtils;

import java.util.ArrayList;
import java.util.List;

@@ -86,16 +88,17 @@ public class BrowserRoleBehavior implements RoleBehavior {
    @NonNull
    private List<String> getQualifyingPackagesAsUserInternal(@Nullable String packageName,
            @NonNull UserHandle user, @NonNull Context context) {
        PackageManager packageManager = context.getPackageManager();
        Context userContext = UserUtils.getUserContext(context, user);
        PackageManager userPackageManager = userContext.getPackageManager();
        Intent intent = BROWSER_INTENT;
        if (packageName != null) {
            intent = new Intent(intent)
                    .setPackage(packageName);
        }
        List<ResolveInfo> resolveInfos = packageManager.queryIntentActivitiesAsUser(intent,
        List<ResolveInfo> resolveInfos = userPackageManager.queryIntentActivities(intent,
                // To one's surprise, MATCH_ALL doesn't include MATCH_DIRECT_BOOT_*.
                PackageManager.MATCH_ALL | PackageManager.MATCH_DIRECT_BOOT_AWARE
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, user);
                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
        ArraySet<String> packageNames = new ArraySet<>();
        int resolveInfosSize = resolveInfos.size();
        for (int i = 0; i < resolveInfosSize; i++) {
+5 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.packageinstaller.role.utils.UserUtils;

import java.util.List;

/**
@@ -43,9 +45,10 @@ public class RequiredActivity extends RequiredComponent {
    @Override
    protected List<ResolveInfo> queryIntentComponentsAsUser(@NonNull Intent intent, int flags,
            @NonNull UserHandle user, @NonNull Context context) {
        PackageManager packageManager = context.getPackageManager();
        Context userContext = UserUtils.getUserContext(context, user);
        PackageManager userPackageManager = userContext.getPackageManager();
        flags |= PackageManager.MATCH_DEFAULT_ONLY;
        return packageManager.queryIntentActivitiesAsUser(intent, flags, user);
        return userPackageManager.queryIntentActivities(intent, flags);
    }

    @NonNull
+5 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.packageinstaller.role.utils.UserUtils;

import java.util.List;

/**
@@ -43,8 +45,9 @@ public class RequiredBroadcastReceiver extends RequiredComponent {
    @Override
    protected List<ResolveInfo> queryIntentComponentsAsUser(@NonNull Intent intent, int flags,
            @NonNull UserHandle user, @NonNull Context context) {
        PackageManager packageManager = context.getPackageManager();
        return packageManager.queryBroadcastReceiversAsUser(intent, flags, user);
        Context userContext = UserUtils.getUserContext(context, user);
        PackageManager userPackageManager = userContext.getPackageManager();
        return userPackageManager.queryBroadcastReceivers(intent, flags);
    }

    @NonNull
+5 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.packageinstaller.role.utils.UserUtils;

import java.util.List;

/**
@@ -43,8 +45,9 @@ public class RequiredContentProvider extends RequiredComponent {
    @Override
    protected List<ResolveInfo> queryIntentComponentsAsUser(@NonNull Intent intent, int flags,
            @NonNull UserHandle user, @NonNull Context context) {
        PackageManager packageManager = context.getPackageManager();
        return packageManager.queryIntentContentProvidersAsUser(intent, flags, user);
        Context userContext = UserUtils.getUserContext(context, user);
        PackageManager userPackageManager = userContext.getPackageManager();
        return userPackageManager.queryIntentContentProviders(intent, flags);
    }

    @NonNull
Loading