Merge "Remove then add during replace to reset vis" into rvc-dev am: 155007ab1f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11971855 Change-Id: If4a4e8398330719665a3afa2d5267c660538f337
This commit is contained in:
@@ -495,10 +495,15 @@ public class AppsFilter {
|
|||||||
* Adds a package that should be considered when filtering visibility between apps.
|
* Adds a package that should be considered when filtering visibility between apps.
|
||||||
*
|
*
|
||||||
* @param newPkgSetting the new setting being added
|
* @param newPkgSetting the new setting being added
|
||||||
|
* @param isReplace if the package is being replaced and may need extra cleanup.
|
||||||
*/
|
*/
|
||||||
public void addPackage(PackageSetting newPkgSetting) {
|
public void addPackage(PackageSetting newPkgSetting, boolean isReplace) {
|
||||||
Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "filter.addPackage");
|
Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "filter.addPackage");
|
||||||
try {
|
try {
|
||||||
|
if (isReplace) {
|
||||||
|
// let's first remove any prior rules for this package
|
||||||
|
removePackage(newPkgSetting);
|
||||||
|
}
|
||||||
mStateProvider.runWithState((settings, users) -> {
|
mStateProvider.runWithState((settings, users) -> {
|
||||||
addPackageInternal(newPkgSetting, settings);
|
addPackageInternal(newPkgSetting, settings);
|
||||||
if (mShouldFilterCache != null) {
|
if (mShouldFilterCache != null) {
|
||||||
@@ -776,6 +781,15 @@ public class AppsFilter {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Equivalent to calling {@link #addPackage(PackageSetting, boolean)} with {@code isReplace}
|
||||||
|
* equal to {@code false}.
|
||||||
|
* @see AppsFilter#addPackage(PackageSetting, boolean)
|
||||||
|
*/
|
||||||
|
public void addPackage(PackageSetting newPkgSetting) {
|
||||||
|
addPackage(newPkgSetting, false /* isReplace */);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes a package for consideration when filtering visibility between apps.
|
* Removes a package for consideration when filtering visibility between apps.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -12368,7 +12368,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
ksms.addScannedPackageLPw(pkg);
|
ksms.addScannedPackageLPw(pkg);
|
||||||
|
|
||||||
mComponentResolver.addAllComponents(pkg, chatty);
|
mComponentResolver.addAllComponents(pkg, chatty);
|
||||||
mAppsFilter.addPackage(pkgSetting);
|
final boolean isReplace =
|
||||||
|
reconciledPkg.prepareResult != null && reconciledPkg.prepareResult.replace;
|
||||||
|
mAppsFilter.addPackage(pkgSetting, isReplace);
|
||||||
|
|
||||||
// Don't allow ephemeral applications to define new permissions groups.
|
// Don't allow ephemeral applications to define new permissions groups.
|
||||||
if ((scanFlags & SCAN_AS_INSTANT_APP) != 0) {
|
if ((scanFlags & SCAN_AS_INSTANT_APP) != 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user