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

Commit a1db600e authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Save ProtoLog viewer configuration in WMShell" into tm-qpr-dev

parents 84e68e28 2b227ee1
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -100,6 +100,21 @@ genrule {
    out: ["wm_shell_protolog.json"],
}

genrule {
    name: "protolog.json.gz",
    srcs: [":generate-wm_shell_protolog.json"],
    out: ["wmshell.protolog.json.gz"],
    cmd: "$(location minigzip) -c < $(in) > $(out)",
    tools: ["minigzip"],
}

prebuilt_etc {
    name: "wmshell.protolog.json.gz",
    system_ext_specific: true,
    src: ":protolog.json.gz",
    filename_from_src: true,
}

// End ProtoLog

java_library {
@@ -123,9 +138,6 @@ android_library {
    resource_dirs: [
        "res",
    ],
    java_resources: [
        ":generate-wm_shell_protolog.json",
    ],
    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx.arch.core_core-runtime",
+7 −23
Original line number Diff line number Diff line
@@ -17,22 +17,14 @@
package com.android.wm.shell.protolog;

import android.annotation.Nullable;
import android.content.Context;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.BaseProtoLogImpl;
import com.android.internal.protolog.ProtoLogViewerConfigReader;
import com.android.internal.protolog.common.IProtoLogGroup;
import com.android.wm.shell.R;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;

import org.json.JSONException;


/**
 * A service for the ProtoLog logging system.
@@ -40,8 +32,9 @@ import org.json.JSONException;
public class ShellProtoLogImpl extends BaseProtoLogImpl {
    private static final String TAG = "ProtoLogImpl";
    private static final int BUFFER_CAPACITY = 1024 * 1024;
    // TODO: Get the right path for the proto log file when we initialize the shell components
    private static final String LOG_FILENAME = new File("wm_shell_log.pb").getAbsolutePath();
    // TODO: find a proper location to save the protolog message file
    private static final String LOG_FILENAME = "/data/misc/wmtrace/shell_log.winscope";
    private static final String VIEWER_CONFIG_FILENAME = "/system_ext/etc/wmshell.protolog.json.gz";

    private static ShellProtoLogImpl sServiceInstance = null;

@@ -111,18 +104,8 @@ public class ShellProtoLogImpl extends BaseProtoLogImpl {
    }

    public int startTextLogging(String[] groups, PrintWriter pw) {
        try (InputStream is =
                     getClass().getClassLoader().getResourceAsStream("wm_shell_protolog.json")){
            mViewerConfig.loadViewerConfig(is);
        mViewerConfig.loadViewerConfig(pw, VIEWER_CONFIG_FILENAME);
        return setLogging(true /* setTextLogging */, true, pw, groups);
        } catch (IOException e) {
            Log.i(TAG, "Unable to load log definitions: IOException while reading "
                    + "wm_shell_protolog. " + e);
        } catch (JSONException e) {
            Log.i(TAG, "Unable to load log definitions: JSON parsing exception while reading "
                    + "wm_shell_protolog. " + e);
        }
        return -1;
    }

    public int stopTextLogging(String[] groups, PrintWriter pw) {
@@ -130,7 +113,8 @@ public class ShellProtoLogImpl extends BaseProtoLogImpl {
    }

    private ShellProtoLogImpl() {
        super(new File(LOG_FILENAME), null, BUFFER_CAPACITY, new ProtoLogViewerConfigReader());
        super(new File(LOG_FILENAME), VIEWER_CONFIG_FILENAME, BUFFER_CAPACITY,
                new ProtoLogViewerConfigReader());
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -294,5 +294,6 @@ android_app {
    dxflags: ["--multi-dex"],
    required: [
        "privapp_whitelist_com.android.systemui",
        "wmshell.protolog.json.gz",
    ],
}