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

Commit 8ac430ce authored by Winson Chiu's avatar Winson Chiu Committed by Android (Google) Code Review
Browse files

Merge "Remove contents from PackageDataSnapshot"

parents a14bf150 697894bb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -332,7 +332,7 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot {
                    return false;
                }
            } else {
                if (!shouldFilterApplicationInternal(snapshot,
                if (!shouldFilterApplicationInternal((Computer) snapshot,
                        callingUid, callingSetting, targetPkgSetting, userId)) {
                    return false;
                }
@@ -365,7 +365,7 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot {
        return mShouldFilterCache.valueAt(callingIndex, targetIndex);
    }

    protected boolean shouldFilterApplicationInternal(PackageDataSnapshot snapshot, int callingUid,
    protected boolean shouldFilterApplicationInternal(Computer snapshot, int callingUid,
            Object callingSetting, PackageStateInternal targetPkgSetting, int targetUserId) {
        if (DEBUG_TRACING) {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "shouldFilterApplicationInternal");
+13 −14
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ import com.android.server.pm.parsing.pkg.AndroidPackage;
import com.android.server.pm.parsing.pkg.AndroidPackageUtils;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.component.ParsedInstrumentation;
import com.android.server.pm.snapshot.PackageDataSnapshot;
import com.android.server.utils.Snappable;
import com.android.server.utils.SnapshotCache;
import com.android.server.utils.Watchable;
@@ -309,7 +308,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,

        @Override
        public void onCompatChange(String packageName) {
            PackageDataSnapshot snapshot = mPmInternal.snapshot();
            Computer snapshot = (Computer) mPmInternal.snapshot();
            AndroidPackage pkg = snapshot.getPackage(packageName);
            if (pkg == null) {
                return;
@@ -435,7 +434,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
     * @param newPkgSetting the new setting being added
     * @param isReplace     if the package is being replaced and may need extra cleanup.
     */
    public void addPackage(PackageDataSnapshot snapshot, PackageStateInternal newPkgSetting,
    public void addPackage(Computer snapshot, PackageStateInternal newPkgSetting,
            boolean isReplace) {
        if (DEBUG_TRACING) {
            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "filter.addPackage");
@@ -632,7 +631,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
        }
    }

    private void updateEntireShouldFilterCache(PackageDataSnapshot snapshot, int subjectUserId) {
    private void updateEntireShouldFilterCache(Computer snapshot, int subjectUserId) {
        final ArrayMap<String, ? extends PackageStateInternal> settings =
                snapshot.getPackageStates();
        final UserInfo[] users = snapshot.getUserInfos();
@@ -653,7 +652,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
        onChanged();
    }

    private void updateEntireShouldFilterCacheInner(PackageDataSnapshot snapshot,
    private void updateEntireShouldFilterCacheInner(Computer snapshot,
            ArrayMap<String, ? extends PackageStateInternal> settings,
            UserInfo[] users,
            int subjectUserId) {
@@ -684,7 +683,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,

            final ArrayMap<String, AndroidPackage> packagesCache = new ArrayMap<>();
            final UserInfo[][] usersRef = new UserInfo[1][];
            final PackageDataSnapshot snapshot = pmInternal.snapshot();
            final Computer snapshot = (Computer) pmInternal.snapshot();
            final ArrayMap<String, ? extends PackageStateInternal> settings =
                    snapshot.getPackageStates();
            final UserInfo[] users = snapshot.getUserInfos();
@@ -712,7 +711,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
        }, delayMs);
    }

    public void onUserCreated(PackageDataSnapshot snapshot, int newUserId) {
    public void onUserCreated(Computer snapshot, int newUserId) {
        if (!mCacheReady) {
            return;
        }
@@ -727,7 +726,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
        onChanged();
    }

    private void updateShouldFilterCacheForPackage(PackageDataSnapshot snapshot,
    private void updateShouldFilterCacheForPackage(Computer snapshot,
            String packageName) {
        if (!mCacheReady) {
            return;
@@ -744,7 +743,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
    }

    @GuardedBy("mCacheLock")
    private void updateShouldFilterCacheForPackage(PackageDataSnapshot snapshot,
    private void updateShouldFilterCacheForPackage(Computer snapshot,
            @Nullable String skipPackageName, PackageStateInternal subjectSetting, ArrayMap<String,
            ? extends PackageStateInternal> allSettings, UserInfo[] allUsers, int subjectUserId,
            int maxIndex) {
@@ -771,7 +770,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
    }

    @GuardedBy("mCacheLock")
    private void updateShouldFilterCacheForUser(PackageDataSnapshot snapshot,
    private void updateShouldFilterCacheForUser(Computer snapshot,
            PackageStateInternal subjectSetting, UserInfo[] allUsers,
            PackageStateInternal otherSetting, int subjectUserId) {
        for (int ou = 0; ou < allUsers.length; ou++) {
@@ -889,12 +888,12 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
    }

    /**
     * Equivalent to calling {@link #addPackage(PackageDataSnapshot, PackageStateInternal, boolean)}
     * Equivalent to calling {@link #addPackage(Computer, PackageStateInternal, boolean)}
     * with {@code isReplace} equal to {@code false}.
     *
     * @see AppsFilterImpl#addPackage(PackageDataSnapshot, PackageStateInternal, boolean)
     * @see AppsFilterImpl#addPackage(Computer, PackageStateInternal, boolean)
     */
    public void addPackage(PackageDataSnapshot snapshot, PackageStateInternal newPkgSetting) {
    public void addPackage(Computer snapshot, PackageStateInternal newPkgSetting) {
        addPackage(snapshot, newPkgSetting, false /* isReplace */);
    }

@@ -904,7 +903,7 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
     * @param setting   the setting of the package being removed.
     * @param isReplace if the package is being replaced.
     */
    public void removePackage(PackageDataSnapshot snapshot, PackageStateInternal setting,
    public void removePackage(Computer snapshot, PackageStateInternal setting,
            boolean isReplace) {
        final ArraySet<String> additionalChangedPackages;
        final ArrayMap<String, ? extends PackageStateInternal> settings =
+0 −4
Original line number Diff line number Diff line
@@ -130,7 +130,6 @@ public interface Computer extends PackageDataSnapshot {
     */
    ActivityInfo getActivityInfoInternal(ComponentName component, long flags,
            int filterCallingUid, int userId);
    @Override
    AndroidPackage getPackage(String packageName);
    AndroidPackage getPackage(int uid);
    ApplicationInfo generateApplicationInfoFromSettings(String packageName, long flags,
@@ -318,7 +317,6 @@ public interface Computer extends PackageDataSnapshot {
    PreferredIntentResolver getPreferredActivities(@UserIdInt int userId);

    @NonNull
    @Override
    ArrayMap<String, ? extends PackageStateInternal> getPackageStates();

    @Nullable
@@ -645,11 +643,9 @@ public interface Computer extends PackageDataSnapshot {
    @NonNull
    List<? extends PackageStateInternal> getVolumePackages(@NonNull String volumeUuid);

    @Override
    @NonNull
    UserInfo[] getUserInfos();

    @Override
    @NonNull
    Collection<SharedUserSetting> getAllSharedUsers();
}
+11 −15
Original line number Diff line number Diff line
@@ -16,22 +16,18 @@

package com.android.server.pm.snapshot;

import android.annotation.NonNull;
import android.content.pm.UserInfo;
import android.util.ArrayMap;
import android.content.pm.PackageManagerInternal;

import com.android.server.pm.SharedUserSetting;
import com.android.server.pm.parsing.pkg.AndroidPackage;
import com.android.server.pm.pkg.PackageStateInternal;

import java.util.Collection;
import com.android.server.pm.Computer;
import com.android.server.pm.PackageManagerService;

/**
 * An empty interface provided as the type for a snapshot of {@link PackageManagerService} data.
 * There should be no members of this interface, to discourage its usage beyond as an input to
 * other package related APIs.
 *
 * Usage inside {@link PackageManagerInternal} and related should cast the object instance to
 * a {@link Computer} to access data.
 */
public interface PackageDataSnapshot {
    @NonNull
    ArrayMap<String, ? extends PackageStateInternal> getPackageStates();
    @NonNull
    UserInfo[] getUserInfos();
    @NonNull
    Collection<SharedUserSetting> getAllSharedUsers();
    AndroidPackage getPackage(String packageName);
}
+1 −2
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ import com.android.server.pm.pkg.component.ParsedInstrumentationImpl;
import com.android.server.pm.pkg.component.ParsedIntentInfoImpl;
import com.android.server.pm.pkg.component.ParsedProviderImpl;
import com.android.server.pm.pkg.parsing.ParsingPackage;
import com.android.server.pm.snapshot.PackageDataSnapshot;
import com.android.server.utils.WatchableTester;

import org.junit.Before;
@@ -102,7 +101,7 @@ public class AppsFilterImplTest {
    @Mock
    FeatureConfig mFeatureConfigMock;
    @Mock
    PackageDataSnapshot mSnapshot;
    Computer mSnapshot;
    @Mock
    Handler mMockHandler;
    @Mock