Loading services/core/java/com/android/server/om/OverlayManagerService.java +8 −2 Original line number Diff line number Diff line Loading @@ -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); } } Loading services/core/java/com/android/server/om/OverlayManagerServiceImpl.java +10 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading services/core/java/com/android/server/pm/PackageManagerService.java +2 −10 Original line number Diff line number Diff line Loading @@ -21656,8 +21656,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; Loading Loading @@ -21901,8 +21900,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)) { Loading Loading @@ -24682,12 +24679,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; } } services/core/java/com/android/server/pm/PackageSettingBase.java +3 −15 Original line number Diff line number Diff line Loading @@ -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) { Loading services/core/java/com/android/server/pm/Settings.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); } } Loading Loading
services/core/java/com/android/server/om/OverlayManagerService.java +8 −2 Original line number Diff line number Diff line Loading @@ -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); } } Loading
services/core/java/com/android/server/om/OverlayManagerServiceImpl.java +10 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading @@ -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) { Loading
services/core/java/com/android/server/pm/PackageManagerService.java +2 −10 Original line number Diff line number Diff line Loading @@ -21656,8 +21656,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; Loading Loading @@ -21901,8 +21900,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)) { Loading Loading @@ -24682,12 +24679,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; } }
services/core/java/com/android/server/pm/PackageSettingBase.java +3 −15 Original line number Diff line number Diff line Loading @@ -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) { Loading
services/core/java/com/android/server/pm/Settings.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); } } Loading