Merge "Fix a lot of OVERLAY_CHANGED broadcasts" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3e238386a8
@@ -6546,7 +6546,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
|
|||||||
if (dependentState == null) {
|
if (dependentState == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!Objects.equals(dependentState.getUserStateOrDefault(userId)
|
if (canSetOverlayPaths(dependentState.getUserStateOrDefault(userId)
|
||||||
.getSharedLibraryOverlayPaths()
|
.getSharedLibraryOverlayPaths()
|
||||||
.get(libName), newOverlayPaths)) {
|
.get(libName), newOverlayPaths)) {
|
||||||
String dependentPackageName = dependent.getPackageName();
|
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 -> {
|
commitPackageStateMutation(null, mutator -> {
|
||||||
mutator.forPackage(targetPackageName)
|
mutator.forPackage(targetPackageName)
|
||||||
@@ -6593,6 +6596,17 @@ public class PackageManagerService implements PackageSender, TestUtilityService
|
|||||||
return true;
|
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) {
|
private void maybeUpdateSystemOverlays(String targetPackageName, OverlayPaths newOverlayPaths) {
|
||||||
if (!mResolverReplaced) {
|
if (!mResolverReplaced) {
|
||||||
if (targetPackageName.equals("android")) {
|
if (targetPackageName.equals("android")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user