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

Commit 407ea382 authored by Ryan Mitchell's avatar Ryan Mitchell Committed by Android (Google) Code Review
Browse files

Merge "Allow "cmd overlay list" to list all overlays" into qt-dev

parents 815979d5 a76070e1
Loading
Loading
Loading
Loading
+47 −24
Original line number Diff line number Diff line
@@ -120,20 +120,49 @@ final class OverlayManagerShellCommand extends ShellCommand {
                    return 1;
            }
        }

        final String packageName = getNextArg();
        if (packageName != null) {
            List<OverlayInfo> overlaysForTarget = mInterface.getOverlayInfosForTarget(
                    packageName, userId);

            // If the package is not targeted by any overlays, check if the package is an overlay.
            if (overlaysForTarget.isEmpty()) {
                final OverlayInfo info = mInterface.getOverlayInfo(packageName, userId);
                if (info != null) {
                    printListOverlay(out, info);
                }
                return 0;
            }

            out.println(packageName);

            // Print the overlays for the target.
            final int n = overlaysForTarget.size();
            for (int i = 0; i < n; i++) {
                printListOverlay(out, overlaysForTarget.get(i));
            }

            return 0;
        }

        // Print all overlays grouped by target package name.
        final Map<String, List<OverlayInfo>> allOverlays = mInterface.getAllOverlays(userId);
        for (final String targetPackageName : allOverlays.keySet()) {
            if (targetPackageName.equals(packageName)) {
            out.println(targetPackageName);
            }

            List<OverlayInfo> overlaysForTarget = allOverlays.get(targetPackageName);
            final int n = overlaysForTarget.size();
            for (int i = 0; i < n; i++) {
                final OverlayInfo oi = overlaysForTarget.get(i);
                if (!targetPackageName.equals(packageName) && !oi.packageName.equals(packageName)) {
                    continue;
                printListOverlay(out, overlaysForTarget.get(i));
            }
            out.println();
        }

        return 0;
    }

    private void printListOverlay(PrintWriter out, OverlayInfo oi) {
        String status;
        switch (oi.state) {
            case OverlayInfo.STATE_ENABLED_STATIC:
@@ -149,12 +178,6 @@ final class OverlayManagerShellCommand extends ShellCommand {
        }
        out.println(String.format("%s %s", status, oi.packageName));
    }
            if (targetPackageName.equals(packageName)) {
                out.println();
            }
        }
        return 0;
    }

    private int runEnableDisable(final boolean enable) throws RemoteException {
        final PrintWriter err = getErrPrintWriter();