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

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

Merge "Improved 'am switch' to handle errors."

parents ef7237da 75aeb684
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -1759,7 +1759,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
        return 0;
    }

    private void switchUserAndWaitForComplete(int userId) throws RemoteException {
    private boolean switchUserAndWaitForComplete(int userId) throws RemoteException {
        // Register switch observer.
        final CountDownLatch switchLatch = new CountDownLatch(1);
        mInterface.registerUserSwitchObserver(
@@ -1773,7 +1773,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
                }, ActivityManagerShellCommand.class.getName());

        // Switch.
        mInterface.switchUser(userId);
        boolean switched = mInterface.switchUser(userId);

        // Wait.
        try {
@@ -1781,6 +1781,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
        } catch (InterruptedException e) {
            getErrPrintWriter().println("Thread interrupted unexpectedly.");
        }
        return switched;
    }

    int runSwitchUser(PrintWriter pw) throws RemoteException {
@@ -1802,12 +1803,18 @@ final class ActivityManagerShellCommand extends ShellCommand {
        }

        int userId = Integer.parseInt(getNextArgRequired());
        boolean switched;
        if (wait) {
            switchUserAndWaitForComplete(userId);
            switched = switchUserAndWaitForComplete(userId);
        } else {
            mInterface.switchUser(userId);
            switched = mInterface.switchUser(userId);
        }
        if (switched) {
            return 0;
        } else {
            pw.printf("Failed to switch to user %d\n", userId);
            return 1;
        }
    }

    int runGetCurrentUser(PrintWriter pw) throws RemoteException {