Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c36175d7 authored by Todd Kennedy's avatar Todd Kennedy Committed by android-build-merger
Browse files

Merge "Track both framework and app overlays per package" into oc-dev

am: 65ffdba7

Change-Id: I4af23140f4d9ecc2c1e9faa09d03eddb22db9dae
parents 95b41415 65ffdba7
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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);
            }
        }

+10 −3
Original line number Diff line number Diff line
@@ -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) {
+2 −10
Original line number Diff line number Diff line
@@ -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;
@@ -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)) {
@@ -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;
            }
        }
+3 −15
Original line number Diff line number Diff line
@@ -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) {
+2 −2
Original line number Diff line number Diff line
@@ -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);
                }
            }