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

This commit is contained in:
TreeHugger Robot
2020-01-21 23:50:50 +00:00
committed by Android (Google) Code Review

View File

@@ -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;
}
return 0;
}
int runGetCurrentUser(PrintWriter pw) throws RemoteException {