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

Commit 235c9203 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update user support for package manager"

parents 10354831 5385b517
Loading
Loading
Loading
Loading
+31 −24
Original line number Diff line number Diff line
@@ -728,8 +728,11 @@ class PackageManagerShellCommand extends ShellCommand {

        final String filter = getNextArg();

        if (userId == UserHandle.USER_ALL) {
            getFlags |= PackageManager.MATCH_KNOWN_PACKAGES;
        }
        final int translatedUserId =
                translateUserId(userId, UserHandle.USER_NULL, "runListPackages");
                translateUserId(userId, UserHandle.USER_SYSTEM, "runListPackages");
        @SuppressWarnings("unchecked")
        final ParceledListSlice<PackageInfo> slice =
                mInterface.getInstalledPackages(getFlags, translatedUserId);
@@ -896,10 +899,9 @@ class PackageManagerShellCommand extends ShellCommand {
    }

    private int runListStagedSessions() {
        final IndentingPrintWriter pw = new IndentingPrintWriter(
                getOutPrintWriter(), /* singleIndent */ "  ", /* wrapLength */ 120);

        SessionDump sessionDump = new SessionDump();
        try (IndentingPrintWriter pw = new IndentingPrintWriter(
                getOutPrintWriter(), /* singleIndent */ "  ", /* wrapLength */ 120)) {
            final SessionDump sessionDump = new SessionDump();
            String opt;
            while ((opt = getNextOption()) != null) {
                if (!setSessionFlag(opt, sessionDump)) {
@@ -909,7 +911,7 @@ class PackageManagerShellCommand extends ShellCommand {
            }

            try {
            List<SessionInfo> stagedSessions =
                final List<SessionInfo> stagedSessions =
                        mInterface.getPackageInstaller().getStagedSessions().getList();
                printSessionList(pw, stagedSessions, sessionDump);
            } catch (RemoteException e) {
@@ -920,6 +922,7 @@ class PackageManagerShellCommand extends ShellCommand {
            }
            return 1;
        }
    }

    private void printSessionList(IndentingPrintWriter pw, List<SessionInfo> stagedSessions,
            SessionDump sessionDump) {
@@ -1943,8 +1946,10 @@ class PackageManagerShellCommand extends ShellCommand {
            return 1;
        }

        ClearDataObserver obs = new ClearDataObserver();
        ActivityManager.getService().clearApplicationUserData(pkg, false, obs, userId);
        final int translatedUserId =
                translateUserId(userId, UserHandle.USER_NULL, "runClear");
        final ClearDataObserver obs = new ClearDataObserver();
        ActivityManager.getService().clearApplicationUserData(pkg, false, obs, translatedUserId);
        synchronized (obs) {
            while (!obs.finished) {
                try {
@@ -2551,9 +2556,11 @@ class PackageManagerShellCommand extends ShellCommand {
            getErrPrintWriter().println("Error: valid value not specified");
            return 1;
        }
        IUserManager um = IUserManager.Stub.asInterface(
        final int translatedUserId =
                translateUserId(userId, UserHandle.USER_NULL, "runSetUserRestriction");
        final IUserManager um = IUserManager.Stub.asInterface(
                ServiceManager.getService(Context.USER_SERVICE));
        um.setUserRestriction(restriction, value, userId);
        um.setUserRestriction(restriction, value, translatedUserId);
        return 0;
    }