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

Commit 72037359 authored by Ryan Mitchell's avatar Ryan Mitchell Committed by Automerger Merge Worker
Browse files

Merge "OMS: 'cmd overlay lookup': support --user" am: 5267d0e0 am: d64094cf

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1601513

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie2961b4276f4f6cc4095a15b9159912ee5c571f4
parents 86f92243 d64094cf
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ final class OverlayManagerShellCommand extends ShellCommand {
        out.println("    'lowest', change priority of PACKAGE to the lowest priority.");
        out.println("    If PARENT is the special keyword 'highest', change priority of");
        out.println("    PACKAGE to the highest priority.");
        out.println("  lookup [--verbose] PACKAGE-TO-LOAD PACKAGE:TYPE/NAME");
        out.println("  lookup [--user USER_ID] [--verbose] PACKAGE-TO-LOAD PACKAGE:TYPE/NAME");
        out.println("    Load a package and print the value of a given resource");
        out.println("    applying the current configuration and enabled overlays.");
        out.println("    For a more fine-grained alernative, use 'idmap2 lookup'.");
@@ -274,7 +274,22 @@ final class OverlayManagerShellCommand extends ShellCommand {
        final PrintWriter out = getOutPrintWriter();
        final PrintWriter err = getErrPrintWriter();

        final boolean verbose = "--verbose".equals(getNextOption());
        int userId = UserHandle.USER_SYSTEM;
        boolean verbose = false;
        String opt;
        while ((opt = getNextOption()) != null) {
            switch (opt) {
                case "--user":
                    userId = UserHandle.parseUserArg(getNextArgRequired());
                    break;
                case "--verbose":
                    verbose = true;
                    break;
                default:
                    err.println("Error: Unknown option: " + opt);
                    return 1;
            }
        }

        final String packageToLoad = getNextArgRequired();

@@ -286,17 +301,15 @@ final class OverlayManagerShellCommand extends ShellCommand {
            return 1;
        }

        final PackageManager pm = mContext.getPackageManager();
        if (pm == null) {
            err.println("Error: failed to get package manager");
            return 1;
        }

        final Resources res;
        try {
            res = pm.getResourcesForApplication(packageToLoad);
            res = mContext
                .createContextAsUser(UserHandle.of(userId), /* flags */ 0)
                .getPackageManager()
                .getResourcesForApplication(packageToLoad);
        } catch (PackageManager.NameNotFoundException e) {
            err.println("Error: failed to get resources for package " + packageToLoad);
            err.println(String.format("Error: failed to get resources for package %s for user %d",
                    packageToLoad, userId));
            return 1;
        }
        final AssetManager assets = res.getAssets();