Merge "Fix a lot of OVERLAY_CHANGED broadcasts" into tm-qpr-dev am: 3e238386a8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20016124

Change-Id: I4348747d74b85758a7b0d971ac999e7e85fdf3ab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-09-26 20:11:44 +00:00
committed by Automerger Merge Worker

View File

@@ -6546,7 +6546,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
if (dependentState == null) {
continue;
}
if (!Objects.equals(dependentState.getUserStateOrDefault(userId)
if (canSetOverlayPaths(dependentState.getUserStateOrDefault(userId)
.getSharedLibraryOverlayPaths()
.get(libName), newOverlayPaths)) {
String dependentPackageName = dependent.getPackageName();
@@ -6562,7 +6562,10 @@ public class PackageManagerService implements PackageSender, TestUtilityService
}
}
outUpdatedPackageNames.add(targetPackageName);
if (canSetOverlayPaths(packageState.getUserStateOrDefault(userId).getOverlayPaths(),
newOverlayPaths)) {
outUpdatedPackageNames.add(targetPackageName);
}
commitPackageStateMutation(null, mutator -> {
mutator.forPackage(targetPackageName)
@@ -6593,6 +6596,17 @@ public class PackageManagerService implements PackageSender, TestUtilityService
return true;
}
private boolean canSetOverlayPaths(OverlayPaths origPaths, OverlayPaths newPaths) {
if (Objects.equals(origPaths, newPaths)) {
return false;
}
if ((origPaths == null && newPaths.isEmpty())
|| (newPaths == null && origPaths.isEmpty())) {
return false;
}
return true;
}
private void maybeUpdateSystemOverlays(String targetPackageName, OverlayPaths newOverlayPaths) {
if (!mResolverReplaced) {
if (targetPackageName.equals("android")) {