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

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

Merge "Fix LauncherAppsService queryIntentLauncherActivities"

parents 4c361bbb e0b6a4df
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.content.pm;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.os.Parcel;
@@ -28,18 +30,24 @@ public class LauncherActivityInfoInternal implements Parcelable {
    @UnsupportedAppUsage
    private ActivityInfo mActivityInfo;
    private ComponentName mComponentName;
    private IncrementalStatesInfo mIncrementalStatesInfo;
    @NonNull private IncrementalStatesInfo mIncrementalStatesInfo;

    /**
     * @param info ActivityInfo from which to create the LauncherActivityInfo.
     * @param incrementalStatesInfo The package's states.
     */
    public LauncherActivityInfoInternal(ActivityInfo info,
            IncrementalStatesInfo incrementalStatesInfo) {
            @Nullable IncrementalStatesInfo incrementalStatesInfo) {
        mActivityInfo = info;
        mComponentName = new ComponentName(info.packageName, info.name);
        if (incrementalStatesInfo == null) {
            // default value for non-incremental apps
            mIncrementalStatesInfo = new IncrementalStatesInfo(
                    true /* isStartable */, false /* isLoading */, 1 /* progress */);
        } else {
            mIncrementalStatesInfo = incrementalStatesInfo;
        }
    }

    public LauncherActivityInfoInternal(Parcel source) {
        mActivityInfo = source.readParcelable(ActivityInfo.class.getClassLoader());
+13 −7
Original line number Diff line number Diff line
@@ -548,8 +548,13 @@ public class LauncherAppsService extends SystemService {
                        PackageManager.MATCH_DIRECT_BOOT_AWARE
                                | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
                        callingUid, user.getIdentifier());
                final IncrementalStatesInfo incrementalStatesInfo = pmInt.getIncrementalStatesInfo(
                final IncrementalStatesInfo incrementalStatesInfo;
                if (component.getPackageName() == null) {
                    incrementalStatesInfo = null;
                } else {
                    incrementalStatesInfo = pmInt.getIncrementalStatesInfo(
                            component.getPackageName(), callingUid, user.getIdentifier());
                }
                return new LauncherActivityInfoInternal(activityInfo, incrementalStatesInfo);
            } finally {
                Binder.restoreCallingIdentity(ident);
@@ -592,11 +597,12 @@ public class LauncherAppsService extends SystemService {
            List<LauncherActivityInfoInternal> results = new ArrayList<>();
            for (int i = 0; i < numResolveInfos; i++) {
                final ResolveInfo ri = apps.get(i);
                final IncrementalStatesInfo incrementalStatesInfo =
                        pmInt.getIncrementalStatesInfo(ri.resolvePackageName, callingUid,
                                user.getIdentifier());
                if (incrementalStatesInfo == null) {
                    continue;
                final IncrementalStatesInfo incrementalStatesInfo;
                if (ri.resolvePackageName == null) {
                    incrementalStatesInfo = null;
                } else {
                    incrementalStatesInfo = pmInt.getIncrementalStatesInfo(
                            ri.resolvePackageName, callingUid, user.getIdentifier());
                }
                results.add(new LauncherActivityInfoInternal(ri.activityInfo,
                        incrementalStatesInfo));
+1 −3
Original line number Diff line number Diff line
@@ -25662,12 +25662,10 @@ public class PackageManagerService extends IPackageManager.Stub
        @Override
        public IncrementalStatesInfo getIncrementalStatesInfo(
                String packageName, int filterCallingUid, int userId) {
                @NonNull String packageName, int filterCallingUid, int userId) {
            final PackageSetting ps = getPackageSettingForUser(packageName, filterCallingUid,
                    userId);
            if (ps == null) {
                Slog.w(TAG, "Failed getting incremental state. Package " + packageName
                        + " is not available");
                return null;
            }
            return ps.getIncrementalStates();