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

Commit 4c80c3bd authored by András Klöczl's avatar András Klöczl Committed by Android (Google) Code Review
Browse files

Merge "Add new shell commands for DeviceStateChanged CTS test" into sc-v2-dev

parents 4f82ace2 75eddd35
Loading
Loading
Loading
Loading
+31 −2
Original line number Diff line number Diff line
@@ -27,7 +27,9 @@ import android.os.Binder;
import android.os.ShellCommand;

import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Optional;
import java.util.stream.Collectors;

/**
 * ShellCommands for {@link DeviceStateManagerService}.
@@ -56,14 +58,18 @@ public class DeviceStateManagerShellCommand extends ShellCommand {
        switch (cmd) {
            case "state":
                return runState(pw);
            case "print-state":
                return runPrintState(pw);
            case "print-states":
                return runPrintStates(pw);
            case "print-states-simple":
                return runPrintStatesSimple(pw);
            default:
                return handleDefaultCommands(cmd);
        }
    }

    private void printState(PrintWriter pw) {
    private void printAllStates(PrintWriter pw) {
        Optional<DeviceState> committedState = mService.getCommittedState();
        Optional<DeviceState> baseState = mService.getBaseState();
        Optional<DeviceState> overrideState = mService.getOverrideState();
@@ -79,7 +85,8 @@ public class DeviceStateManagerShellCommand extends ShellCommand {
    private int runState(PrintWriter pw) {
        final String nextArg = getNextArg();
        if (nextArg == null) {
            printState(pw);
            printAllStates(pw);
            return 0;
        }

        final Context context = mService.getContext();
@@ -123,6 +130,16 @@ public class DeviceStateManagerShellCommand extends ShellCommand {
        return 0;
    }

    private int runPrintState(PrintWriter pw) {
        Optional<DeviceState> deviceState = mService.getCommittedState();
        if (deviceState.isPresent()) {
            pw.println(deviceState.get().getIdentifier());
            return 0;
        }
        getErrPrintWriter().println("Error: device state not available.");
        return 1;
    }

    private int runPrintStates(PrintWriter pw) {
        DeviceState[] states = mService.getSupportedStates();
        pw.print("Supported states: [\n");
@@ -133,6 +150,14 @@ public class DeviceStateManagerShellCommand extends ShellCommand {
        return 0;
    }

    private int runPrintStatesSimple(PrintWriter pw) {
        pw.print(Arrays.stream(mService.getSupportedStates())
                .map(DeviceState::getIdentifier)
                .map(Object::toString)
                .collect(Collectors.joining(",")));
        return 0;
    }

    @Override
    public void onHelp() {
        PrintWriter pw = getOutPrintWriter();
@@ -141,8 +166,12 @@ public class DeviceStateManagerShellCommand extends ShellCommand {
        pw.println("    Print this help text.");
        pw.println("  state [reset|OVERRIDE_DEVICE_STATE]");
        pw.println("    Return or override device state.");
        pw.println("  print-state");
        pw.println("    Return the current device state.");
        pw.println("  print-states");
        pw.println("    Return list of currently supported device states.");
        pw.println("  print-states-simple");
        pw.println("    Return the currently supported device states in comma separated format.");
    }

    private static String toString(@NonNull Optional<DeviceState> state) {