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_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 64 Consts.TAG_WM), 65 WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 66 Consts.TAG_WM), 67 WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), 68 WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 69 Consts.TAG_WM), 70 WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), 71 WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 72 Consts.TAG_WM), 73 WM_DEBUG_WINDOW_MOVEMENT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 74 Consts.TAG_WM), 75 WM_DEBUG_IME(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 76 Consts.TAG_WM), 77 WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 78 Consts.TAG_WM), 79 WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 80 Consts.TAG_WM), 81 WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, 82 Consts.TAG_WM), 83 WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, 84 Consts.TAG_WM), 85 WM_DEBUG_LAYER_MIRRORING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, 86 Consts.TAG_WM), 87 WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), 88 TEST_GROUP(true, true, false, "WindowManagerProtoLogTest"); 89 90 private final boolean mEnabled; 91 private volatile boolean mLogToProto; 92 private volatile boolean mLogToLogcat; 93 private final String mTag; 94 95 /** 96 * @param enabled set to false to exclude all log statements for this group from 97 * compilation, 98 * they will not be available in runtime. 99 * @param logToProto enable binary logging for the group 100 * @param logToLogcat enable text logging for the group 101 * @param tag name of the source of the logged message 102 */ ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag)103 ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) { 104 this.mEnabled = enabled; 105 this.mLogToProto = logToProto; 106 this.mLogToLogcat = logToLogcat; 107 this.mTag = tag; 108 } 109 110 @Override isEnabled()111 public boolean isEnabled() { 112 return mEnabled; 113 } 114 115 @Override isLogToProto()116 public boolean isLogToProto() { 117 return mLogToProto; 118 } 119 120 @Override isLogToLogcat()121 public boolean isLogToLogcat() { 122 return mLogToLogcat; 123 } 124 125 @Override isLogToAny()126 public boolean isLogToAny() { 127 return mLogToLogcat || mLogToProto; 128 } 129 130 @Override getTag()131 public String getTag() { 132 return mTag; 133 } 134 135 @Override setLogToProto(boolean logToProto)136 public void setLogToProto(boolean logToProto) { 137 this.mLogToProto = logToProto; 138 } 139 140 @Override setLogToLogcat(boolean logToLogcat)141 public void setLogToLogcat(boolean logToLogcat) { 142 this.mLogToLogcat = logToLogcat; 143 } 144 145 private static class Consts { 146 private static final String TAG_WM = "WindowManager"; 147 148 private static final boolean ENABLE_DEBUG = true; 149 private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true; 150 } 151 } 152