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

Commit 043bb30f authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Add telecom log marking shell command.

We often get bugs where testers have executed a LONG list of test steps.
It becomes extremely difficult to know where in the logs corresponds to
which test script step.

This adds a new telecom shell command:
adb shell telecom log-mark Testing 1 2 3

This command adds a USER_LOG_MARK event log item to all ongoing calls and
to the general telecom logs with the specified message.

Test: Tested using the new shell command to mark the telecom logs in and out of calls.
Fixes: 228895073
Change-Id: Ic11edc777e57a4fc8748a42c931379faf7cea671
parent d9e8a4f5
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ import com.android.internal.os.BaseCommand;
import com.android.internal.telecom.ITelecomService;

import java.io.PrintStream;
import java.util.Arrays;
import java.util.stream.Collectors;

public final class Telecom extends BaseCommand {

@@ -88,6 +90,10 @@ public final class Telecom extends BaseCommand {
    private static final String COMMAND_GET_MAX_PHONES = "get-max-phones";
    private static final String COMMAND_SET_TEST_EMERGENCY_PHONE_ACCOUNT_PACKAGE_FILTER =
            "set-test-emergency-phone-account-package-filter";
    /**
     * Command used to emit a distinct "mark" in the logs.
     */
    private static final String COMMAND_LOG_MARK = "log-mark";

    private ComponentName mComponent;
    private String mAccountId;
@@ -156,6 +162,8 @@ public final class Telecom extends BaseCommand {
                        + " package name that will be used for test emergency calls. To clear,"
                        + " send an empty package name. Real emergency calls will still be placed"
                        + " over Telephony.\n"
                + "telecom log-mark <MESSAGE>: emits a message into the telecom logs.  Useful for "
                        + "testers to indicate where in the logs various test steps take place.\n"
        );
    }

@@ -257,6 +265,9 @@ public final class Telecom extends BaseCommand {
            case COMMAND_SET_TEST_EMERGENCY_PHONE_ACCOUNT_PACKAGE_FILTER:
                runSetEmergencyPhoneAccountPackageFilter();
                break;
            case COMMAND_LOG_MARK:
                runLogMark();
                break;
            default:
                Log.w(this, "onRun: unknown command: %s", command);
                throw new IllegalArgumentException ("unknown command '" + command + "'");
@@ -429,6 +440,11 @@ public final class Telecom extends BaseCommand {

    }

    private void runLogMark() throws RemoteException {
        String message = Arrays.stream(mArgs.peekRemainingArgs()).collect(Collectors.joining(" "));
        mTelecomService.requestLogMark(message);
    }

    private PhoneAccountHandle getPhoneAccountHandleFromArgs() throws RemoteException {
        if (TextUtils.isEmpty(mArgs.peekNextArg())) {
            return null;
+5 −0
Original line number Diff line number Diff line
@@ -344,6 +344,11 @@ interface ITelecomService {

    void setTestDefaultCallRedirectionApp(String packageName);

    /**
     * @see TelecomServiceImpl#requestLogMark
     */
    void requestLogMark(in String message);

    void setTestPhoneAcctSuggestionComponent(String flattenedComponentName);

    void setTestDefaultCallScreeningApp(String packageName);