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