Merge "Remove contents from PackageDataSnapshot"
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user