Merge "Track both framework and app overlays per package" into oc-dev
This commit is contained in:
@@ -714,11 +714,17 @@ public final class OverlayManagerService extends SystemService {
|
||||
|
||||
final Map<String, List<String>> pendingChanges = new ArrayMap<>(targetPackageNames.size());
|
||||
synchronized (mLock) {
|
||||
final List<String> frameworkOverlays =
|
||||
mImpl.getEnabledOverlayPackageNames("android", userId);
|
||||
final int N = targetPackageNames.size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
final String targetPackageName = targetPackageNames.get(i);
|
||||
pendingChanges.put(targetPackageName,
|
||||
mImpl.getEnabledOverlayPackageNames(targetPackageName, userId));
|
||||
List<String> list = new ArrayList<>();
|
||||
if (!"android".equals(targetPackageName)) {
|
||||
list.addAll(frameworkOverlays);
|
||||
}
|
||||
list.addAll(mImpl.getEnabledOverlayPackageNames(targetPackageName, userId));
|
||||
pendingChanges.put(targetPackageName, list);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -170,6 +170,7 @@ final class OverlayManagerServiceImpl {
|
||||
|
||||
final PackageInfo targetPackage = mPackageManager.getPackageInfo(packageName, userId);
|
||||
updateAllOverlaysForTarget(packageName, userId, targetPackage);
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
|
||||
void onTargetPackageChanged(@NonNull final String packageName, final int userId) {
|
||||
@@ -178,7 +179,9 @@ final class OverlayManagerServiceImpl {
|
||||
}
|
||||
|
||||
final PackageInfo targetPackage = mPackageManager.getPackageInfo(packageName, userId);
|
||||
updateAllOverlaysForTarget(packageName, userId, targetPackage);
|
||||
if (updateAllOverlaysForTarget(packageName, userId, targetPackage)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
|
||||
void onTargetPackageUpgrading(@NonNull final String packageName, final int userId) {
|
||||
@@ -186,7 +189,9 @@ final class OverlayManagerServiceImpl {
|
||||
Slog.d(TAG, "onTargetPackageUpgrading packageName=" + packageName + " userId=" + userId);
|
||||
}
|
||||
|
||||
updateAllOverlaysForTarget(packageName, userId, null);
|
||||
if (updateAllOverlaysForTarget(packageName, userId, null)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
|
||||
void onTargetPackageUpgraded(@NonNull final String packageName, final int userId) {
|
||||
@@ -195,7 +200,9 @@ final class OverlayManagerServiceImpl {
|
||||
}
|
||||
|
||||
final PackageInfo targetPackage = mPackageManager.getPackageInfo(packageName, userId);
|
||||
updateAllOverlaysForTarget(packageName, userId, targetPackage);
|
||||
if (updateAllOverlaysForTarget(packageName, userId, targetPackage)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
|
||||
void onTargetPackageRemoved(@NonNull final String packageName, final int userId) {
|
||||
|
||||
@@ -21587,8 +21587,7 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
|
||||
public static final int DUMP_FROZEN = 1 << 19;
|
||||
public static final int DUMP_DEXOPT = 1 << 20;
|
||||
public static final int DUMP_COMPILER_STATS = 1 << 21;
|
||||
public static final int DUMP_ENABLED_OVERLAYS = 1 << 22;
|
||||
public static final int DUMP_CHANGES = 1 << 23;
|
||||
public static final int DUMP_CHANGES = 1 << 22;
|
||||
|
||||
public static final int OPTION_SHOW_FILTERS = 1 << 0;
|
||||
|
||||
@@ -21832,8 +21831,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
|
||||
dumpState.setDump(DumpState.DUMP_DEXOPT);
|
||||
} else if ("compiler-stats".equals(cmd)) {
|
||||
dumpState.setDump(DumpState.DUMP_COMPILER_STATS);
|
||||
} else if ("enabled-overlays".equals(cmd)) {
|
||||
dumpState.setDump(DumpState.DUMP_ENABLED_OVERLAYS);
|
||||
} else if ("changes".equals(cmd)) {
|
||||
dumpState.setDump(DumpState.DUMP_CHANGES);
|
||||
} else if ("write".equals(cmd)) {
|
||||
@@ -24610,12 +24607,7 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
|
||||
}
|
||||
|
||||
final PackageSetting ps = mSettings.mPackages.get(targetPackageName);
|
||||
String[] frameworkOverlayPaths = null;
|
||||
if (!"android".equals(targetPackageName)) {
|
||||
frameworkOverlayPaths =
|
||||
mSettings.mPackages.get("android").getOverlayPaths(userId);
|
||||
}
|
||||
ps.setOverlayPaths(overlayPaths, frameworkOverlayPaths, userId);
|
||||
ps.setOverlayPaths(overlayPaths, userId);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,21 +330,9 @@ abstract class PackageSettingBase extends SettingBase {
|
||||
modifyUserState(userId).installReason = installReason;
|
||||
}
|
||||
|
||||
void setOverlayPaths(List<String> overlayPaths, String[] frameworkOverlayPaths, int userId) {
|
||||
if (overlayPaths == null && frameworkOverlayPaths == null) {
|
||||
modifyUserState(userId).overlayPaths = null;
|
||||
return;
|
||||
}
|
||||
final List<String> paths;
|
||||
if (frameworkOverlayPaths == null) {
|
||||
paths = overlayPaths;
|
||||
} else {
|
||||
paths = Lists.newArrayList(frameworkOverlayPaths);
|
||||
if (overlayPaths != null) {
|
||||
paths.addAll(overlayPaths);
|
||||
}
|
||||
}
|
||||
modifyUserState(userId).overlayPaths = paths.toArray(new String[paths.size()]);
|
||||
void setOverlayPaths(List<String> overlayPaths, int userId) {
|
||||
modifyUserState(userId).overlayPaths = overlayPaths == null ? null :
|
||||
overlayPaths.toArray(new String[overlayPaths.size()]);
|
||||
}
|
||||
|
||||
String[] getOverlayPaths(int userId) {
|
||||
|
||||
@@ -4861,9 +4861,9 @@ final class Settings {
|
||||
|
||||
String[] overlayPaths = ps.getOverlayPaths(user.id);
|
||||
if (overlayPaths != null && overlayPaths.length > 0) {
|
||||
pw.println("Overlay paths:");
|
||||
pw.print(prefix); pw.println(" overlay paths:");
|
||||
for (String path : overlayPaths) {
|
||||
pw.println(path);
|
||||
pw.print(prefix); pw.print(" "); pw.println(path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user