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

Commit f51f3f62 authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Support nullable ViewerConfigReader in PerfettoProtoLogImpl

In processes where there is no pre-processing of the source code by the protolog tool the ViewerConfigReader will be null.

Flag: android.tracing.perfetto_protolog_tracing
Change-Id: Id741ddee590c62df106f3a93780e7bf60393cbfa
parent 974c3b24
Loading
Loading
Loading
Loading
+24 −8
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ public class PerfettoProtoLogImpl implements IProtoLog {
            this::onTracingFlush,
            this::onTracingInstanceStop
    );
    @Nullable
    private final ProtoLogViewerConfigReader mViewerConfigReader;
    private final ViewerConfigInputStreamProvider mViewerConfigInputStreamProvider;
    private final TreeMap<String, IProtoLogGroup> mLogGroups = new TreeMap<>();
@@ -126,7 +127,7 @@ public class PerfettoProtoLogImpl implements IProtoLog {
    }

    public PerfettoProtoLogImpl(
            ViewerConfigInputStreamProvider viewerConfigInputStreamProvider,
            @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider,
            Runnable cacheUpdater
    ) {
        this(viewerConfigInputStreamProvider,
@@ -136,8 +137,8 @@ public class PerfettoProtoLogImpl implements IProtoLog {

    @VisibleForTesting
    public PerfettoProtoLogImpl(
            ViewerConfigInputStreamProvider viewerConfigInputStreamProvider,
            ProtoLogViewerConfigReader viewerConfigReader,
            @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider,
            @Nullable ProtoLogViewerConfigReader viewerConfigReader,
            Runnable cacheUpdater
    ) {
        Producer.init(InitArguments.DEFAULTS);
@@ -209,7 +210,9 @@ public class PerfettoProtoLogImpl implements IProtoLog {
     * @return status code
     */
    public int startLoggingToLogcat(String[] groups, ILogger logger) {
        if (mViewerConfigReader != null) {
            mViewerConfigReader.loadViewerConfig(logger);
        }
        return setTextLogging(true, logger, groups);
    }

@@ -220,7 +223,9 @@ public class PerfettoProtoLogImpl implements IProtoLog {
     * @return status code
     */
    public int stopLoggingToLogcat(String[] groups, ILogger logger) {
        if (mViewerConfigReader != null) {
            mViewerConfigReader.unloadViewerConfig();
        }
        return setTextLogging(false, logger, groups);
    }

@@ -262,7 +267,9 @@ public class PerfettoProtoLogImpl implements IProtoLog {
                return -1;
            }
            case "enable-text" -> {
                if (mViewerConfigReader != null) {
                    mViewerConfigReader.loadViewerConfig(logger);
                }
                return setTextLogging(true, logger, groups);
            }
            case "disable-text" -> {
@@ -420,7 +427,12 @@ public class PerfettoProtoLogImpl implements IProtoLog {

    private void logToLogcat(String tag, LogLevel level, Message message,
            @Nullable Object[] args) {
        String messageString = message.getMessage(mViewerConfigReader);
        String messageString;
        if (mViewerConfigReader == null) {
            messageString = message.getMessage();
        } else {
            messageString = message.getMessage(mViewerConfigReader);
        }

        if (messageString == null) {
            StringBuilder builder = new StringBuilder("UNKNOWN MESSAGE");
@@ -827,7 +839,11 @@ public class PerfettoProtoLogImpl implements IProtoLog {
            return mMessageMask;
        }

        private String getMessage(ProtoLogViewerConfigReader viewerConfigReader) {
        private String getMessage() {
            return mMessageString;
        }

        private String getMessage(@NonNull ProtoLogViewerConfigReader viewerConfigReader) {
            if (mMessageString != null) {
                return mMessageString;
            }