• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.protolog;
18 
19 import com.android.internal.protolog.common.IProtoLogGroup;
20 
21 /**
22  * Defines logging groups for ProtoLog.
23  *
24  * This file is used by the ProtoLogTool to generate optimized logging code. All of its dependencies
25  * must be included in services.core.wm.protologgroups build target.
26  */
27 public enum ProtoLogGroup implements IProtoLogGroup {
28     WM_ERROR(true, true, true, Consts.TAG_WM),
29     WM_DEBUG_ORIENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
30             Consts.TAG_WM),
31     WM_DEBUG_FOCUS_LIGHT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
32             Consts.TAG_WM),
33     WM_DEBUG_BOOT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
34             Consts.TAG_WM),
35     WM_DEBUG_RESIZE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
36             Consts.TAG_WM),
37     WM_DEBUG_ADD_REMOVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
38             Consts.TAG_WM),
39     WM_DEBUG_CONFIGURATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
40             Consts.TAG_WM),
41     WM_DEBUG_SWITCH(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
42             Consts.TAG_WM),
43     WM_DEBUG_CONTAINERS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
44             Consts.TAG_WM),
45     WM_DEBUG_FOCUS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
46             Consts.TAG_WM),
47     WM_DEBUG_IMMERSIVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
48             Consts.TAG_WM),
49     WM_DEBUG_LOCKTASK(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
50             Consts.TAG_WM),
51     WM_DEBUG_STATES(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
52             Consts.TAG_WM),
53     WM_DEBUG_TASKS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
54             Consts.TAG_WM),
55     WM_DEBUG_STARTING_WINDOW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
56             Consts.TAG_WM),
57     WM_SHOW_TRANSACTIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
58             Consts.TAG_WM),
59     WM_SHOW_SURFACE_ALLOC(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
60             Consts.TAG_WM),
61     WM_DEBUG_APP_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
62             Consts.TAG_WM),
63     WM_DEBUG_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
64     WM_DEBUG_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
65             Consts.TAG_WM),
66     WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
67             Consts.TAG_WM),
68     WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
69     WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
70             Consts.TAG_WM),
71     WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
72     WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
73             Consts.TAG_WM),
74     WM_DEBUG_WINDOW_MOVEMENT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
75             Consts.TAG_WM),
76     WM_DEBUG_IME(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
77             Consts.TAG_WM),
78     WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
79             Consts.TAG_WM),
80     WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
81             Consts.TAG_WM),
82     WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
83             Consts.TAG_WM),
84     WM_DEBUG_WINDOW_TRANSITIONS_MIN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
85             Consts.TAG_WM),
86     WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
87             Consts.TAG_WM),
88     WM_DEBUG_CONTENT_RECORDING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
89             Consts.TAG_WM),
90     WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
91     WM_DEBUG_BACK_PREVIEW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
92             "CoreBackPreview"),
93     WM_DEBUG_DREAM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM),
94     TEST_GROUP(true, true, false, "WindowManagerProtoLogTest");
95 
96     private final boolean mEnabled;
97     private volatile boolean mLogToProto;
98     private volatile boolean mLogToLogcat;
99     private final String mTag;
100 
101     /**
102      * @param enabled     set to false to exclude all log statements for this group from
103      *                    compilation,
104      *                    they will not be available in runtime.
105      * @param logToProto  enable binary logging for the group
106      * @param logToLogcat enable text logging for the group
107      * @param tag         name of the source of the logged message
108      */
ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag)109     ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) {
110         this.mEnabled = enabled;
111         this.mLogToProto = logToProto;
112         this.mLogToLogcat = logToLogcat;
113         this.mTag = tag;
114     }
115 
116     @Override
isEnabled()117     public boolean isEnabled() {
118         return mEnabled;
119     }
120 
121     @Override
isLogToProto()122     public boolean isLogToProto() {
123         return mLogToProto;
124     }
125 
126     @Override
isLogToLogcat()127     public boolean isLogToLogcat() {
128         return mLogToLogcat;
129     }
130 
131     @Override
isLogToAny()132     public boolean isLogToAny() {
133         return mLogToLogcat || mLogToProto;
134     }
135 
136     @Override
getTag()137     public String getTag() {
138         return mTag;
139     }
140 
141     @Override
setLogToProto(boolean logToProto)142     public void setLogToProto(boolean logToProto) {
143         this.mLogToProto = logToProto;
144     }
145 
146     @Override
setLogToLogcat(boolean logToLogcat)147     public void setLogToLogcat(boolean logToLogcat) {
148         this.mLogToLogcat = logToLogcat;
149     }
150 
151     private static class Consts {
152         private static final String TAG_WM = "WindowManager";
153 
154         private static final boolean ENABLE_DEBUG = true;
155         private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true;
156     }
157 }
158