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

Commit b49b2caa authored by Beth Thibodeau's avatar Beth Thibodeau Committed by Automerger Merge Worker
Browse files

Merge "Proper PendingIntent.queryIntentComponents implementation" into tm-dev am: eba590b2

parents 7bf99cd7 eba590b2
Loading
Loading
Loading
Loading
+10 −7
Original line number Original line Diff line number Diff line
@@ -450,6 +450,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.List;
import java.util.Locale;
import java.util.Locale;
import java.util.Map;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.Set;
import java.util.UUID;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -5535,7 +5536,7 @@ public class ActivityManagerService extends IActivityManager.Stub
            IIntentSender pendingResult, int matchFlags) {
            IIntentSender pendingResult, int matchFlags) {
        enforceCallingPermission(Manifest.permission.GET_INTENT_SENDER_INTENT,
        enforceCallingPermission(Manifest.permission.GET_INTENT_SENDER_INTENT,
                "queryIntentComponentsForIntentSender()");
                "queryIntentComponentsForIntentSender()");
        Preconditions.checkNotNull(pendingResult);
        Objects.requireNonNull(pendingResult);
        final PendingIntentRecord res;
        final PendingIntentRecord res;
        try {
        try {
            res = (PendingIntentRecord) pendingResult;
            res = (PendingIntentRecord) pendingResult;
@@ -5547,17 +5548,19 @@ public class ActivityManagerService extends IActivityManager.Stub
            return null;
            return null;
        }
        }
        final int userId = res.key.userId;
        final int userId = res.key.userId;
        final int uid = res.uid;
        final String resolvedType = res.key.requestResolvedType;
        switch (res.key.type) {
        switch (res.key.type) {
            case ActivityManager.INTENT_SENDER_ACTIVITY:
            case ActivityManager.INTENT_SENDER_ACTIVITY:
                return new ParceledListSlice<>(mContext.getPackageManager()
                return new ParceledListSlice<>(mPackageManagerInt.queryIntentActivities(
                        .queryIntentActivitiesAsUser(intent, matchFlags, userId));
                        intent, resolvedType, matchFlags, uid, userId));
            case ActivityManager.INTENT_SENDER_SERVICE:
            case ActivityManager.INTENT_SENDER_SERVICE:
            case ActivityManager.INTENT_SENDER_FOREGROUND_SERVICE:
            case ActivityManager.INTENT_SENDER_FOREGROUND_SERVICE:
                return new ParceledListSlice<>(mContext.getPackageManager()
                return new ParceledListSlice<>(mPackageManagerInt.queryIntentServices(
                        .queryIntentServicesAsUser(intent, matchFlags, userId));
                        intent, matchFlags, uid, userId));
            case ActivityManager.INTENT_SENDER_BROADCAST:
            case ActivityManager.INTENT_SENDER_BROADCAST:
                return new ParceledListSlice<>(mContext.getPackageManager()
                return new ParceledListSlice<>(mPackageManagerInt.queryIntentReceivers(
                        .queryBroadcastReceiversAsUser(intent, matchFlags, userId));
                        intent, resolvedType, matchFlags, uid, userId, false));
            default: // ActivityManager.INTENT_SENDER_ACTIVITY_RESULT
            default: // ActivityManager.INTENT_SENDER_ACTIVITY_RESULT
                throw new IllegalStateException("Unsupported intent sender type: " + res.key.type);
                throw new IllegalStateException("Unsupported intent sender type: " + res.key.type);
        }
        }
+2 −0
Original line number Original line Diff line number Diff line
@@ -112,6 +112,8 @@ public interface Computer extends PackageDataSnapshot {
            @PackageManager.ResolveInfoFlagsBits long flags,
            @PackageManager.ResolveInfoFlagsBits long flags,
            @PackageManagerInternal.PrivateResolveFlags long privateResolveFlags,
            @PackageManagerInternal.PrivateResolveFlags long privateResolveFlags,
            int filterCallingUid, int userId, boolean resolveForStart, boolean allowDynamicSplits);
            int filterCallingUid, int userId, boolean resolveForStart, boolean allowDynamicSplits);
    @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, String resolvedType,
            long flags, int filterCallingUid, int userId);
    @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, String resolvedType,
    @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, String resolvedType,
            long flags, int userId);
            long flags, int userId);
    @NonNull List<ResolveInfo> queryIntentServicesInternal(Intent intent, String resolvedType,
    @NonNull List<ResolveInfo> queryIntentServicesInternal(Intent intent, String resolvedType,
+9 −0
Original line number Original line Diff line number Diff line
@@ -599,6 +599,15 @@ public class ComputerEngine implements Computer {
                resolveForStart, userId, intent);
                resolveForStart, userId, intent);
    }
    }


    @NonNull
    @Override
    public final List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, String resolvedType,
            @PackageManager.ResolveInfoFlagsBits long flags, int filterCallingUid, int userId) {
        return queryIntentActivitiesInternal(
                intent, resolvedType, flags, 0 /*privateResolveFlags*/, filterCallingUid,
                userId, false /*resolveForStart*/, true /*allowDynamicSplits*/);
    }

    public final @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent,
    public final @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent,
            String resolvedType, @PackageManager.ResolveInfoFlagsBits long flags, int userId) {
            String resolvedType, @PackageManager.ResolveInfoFlagsBits long flags, int userId) {
        return queryIntentActivitiesInternal(
        return queryIntentActivitiesInternal(
+2 −1
Original line number Original line Diff line number Diff line
@@ -308,7 +308,8 @@ abstract class PackageManagerInternalBase extends PackageManagerInternal {
    public final List<ResolveInfo> queryIntentActivities(
    public final List<ResolveInfo> queryIntentActivities(
            Intent intent, String resolvedType, @PackageManager.ResolveInfoFlagsBits long flags,
            Intent intent, String resolvedType, @PackageManager.ResolveInfoFlagsBits long flags,
            int filterCallingUid, int userId) {
            int filterCallingUid, int userId) {
        return snapshot().queryIntentActivitiesInternal(intent, resolvedType, flags, userId);
        return snapshot().queryIntentActivitiesInternal(intent, resolvedType, flags,
                filterCallingUid, userId);
    }
    }


    @Override
    @Override