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

Commit b4ee2741 authored by Todd Kennedy's avatar Todd Kennedy Committed by android-build-merger
Browse files

Merge "Add systrace for resolveIntent()" into nyc-dev

am: f86ce783

* commit 'f86ce783':
  Add systrace for resolveIntent()

Change-Id: Ia4941ab8c94d6af8fb49b6899698e616beb270ae
parents 1ebd7d39 f86ce783
Loading
Loading
Loading
Loading
+37 −19
Original line number Original line Diff line number Diff line
@@ -4722,16 +4722,24 @@ public class PackageManagerService extends IPackageManager.Stub {
    @Override
    @Override
    public ResolveInfo resolveIntent(Intent intent, String resolvedType,
    public ResolveInfo resolveIntent(Intent intent, String resolvedType,
            int flags, int userId) {
            int flags, int userId) {
        try {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveIntent");
            if (!sUserManager.exists(userId)) return null;
            if (!sUserManager.exists(userId)) return null;
            flags = updateFlagsForResolve(flags, userId, intent);
            flags = updateFlagsForResolve(flags, userId, intent);
            enforceCrossUserPermission(Binder.getCallingUid(), userId,
            enforceCrossUserPermission(Binder.getCallingUid(), userId,
                    false /*requireFullPermission*/, false /*checkShell*/, "resolve intent");
                    false /*requireFullPermission*/, false /*checkShell*/, "resolve intent");
        final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags,
                userId);
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities");
            final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType,
                    flags, userId);
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
            final ResolveInfo bestChoice =
            final ResolveInfo bestChoice =
                    chooseBestActivity(intent, resolvedType, flags, query, userId);
                    chooseBestActivity(intent, resolvedType, flags, query, userId);
            if (isEphemeralAllowed(intent, query, userId)) {
            if (isEphemeralAllowed(intent, query, userId)) {
                Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral");
                final EphemeralResolveInfo ai =
                final EphemeralResolveInfo ai =
                        getEphemeralResolveInfo(intent, resolvedType, userId);
                        getEphemeralResolveInfo(intent, resolvedType, userId);
                if (ai != null) {
                if (ai != null) {
@@ -4741,8 +4749,12 @@ public class PackageManagerService extends IPackageManager.Stub {
                    bestChoice.ephemeralInstaller = mEphemeralInstallerInfo;
                    bestChoice.ephemeralInstaller = mEphemeralInstallerInfo;
                    bestChoice.ephemeralResolveInfo = ai;
                    bestChoice.ephemeralResolveInfo = ai;
                }
                }
                Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
            }
            }
            return bestChoice;
            return bestChoice;
        } finally {
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
        }
    }
    }
    @Override
    @Override
@@ -5189,8 +5201,14 @@ public class PackageManagerService extends IPackageManager.Stub {
    @Override
    @Override
    public @NonNull ParceledListSlice<ResolveInfo> queryIntentActivities(Intent intent,
    public @NonNull ParceledListSlice<ResolveInfo> queryIntentActivities(Intent intent,
            String resolvedType, int flags, int userId) {
            String resolvedType, int flags, int userId) {
        try {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities");
            return new ParceledListSlice<>(
            return new ParceledListSlice<>(
                    queryIntentActivitiesInternal(intent, resolvedType, flags, userId));
                    queryIntentActivitiesInternal(intent, resolvedType, flags, userId));
        } finally {
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
        }
    }
    }
    private @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent,
    private @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent,