1 /* 2 * Copyright (C) 2022 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 #pragma once 18 19 #define LOG_TAG "InputDispatcher" 20 21 #include <android-base/logging.h> 22 23 namespace android::inputdispatcher { 24 25 /** 26 * Signals whether this is a debuggable Android build. 27 * This is populated by reading the value of the "ro.debuggable" property. 28 */ 29 extern const bool IS_DEBUGGABLE_BUILD; 30 31 /** 32 * Log detailed debug messages about each inbound event notification to the dispatcher. 33 * Enable this via "adb shell setprop log.tag.InputDispatcherInboundEvent DEBUG". 34 * This requires a restart on non-debuggable (e.g. user) builds, but should take effect immediately 35 * on debuggable builds (e.g. userdebug). 36 */ 37 bool debugInboundEventDetails(); 38 39 /** 40 * Log detailed debug messages about each outbound event processed by the dispatcher. 41 * Enable this via "adb shell setprop log.tag.InputDispatcherOutboundEvent DEBUG" (requires restart) 42 */ 43 const bool DEBUG_OUTBOUND_EVENT_DETAILS = 44 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "OutboundEvent"); 45 46 /** 47 * Log debug messages about the dispatch cycle. 48 * Enable this via "adb shell setprop log.tag.InputDispatcherDispatchCycle DEBUG" (requires restart) 49 */ 50 const bool DEBUG_DISPATCH_CYCLE = 51 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "DispatchCycle"); 52 53 /** 54 * Log debug messages about channel creation 55 * Enable this via "adb shell setprop log.tag.InputDispatcherChannelCreation DEBUG" (requires 56 * restart) 57 */ 58 const bool DEBUG_CHANNEL_CREATION = 59 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "ChannelCreation"); 60 61 /** 62 * Log debug messages about input event injection. 63 * Enable this via "adb shell setprop log.tag.InputDispatcherInjection DEBUG" (requires restart) 64 */ 65 const bool DEBUG_INJECTION = 66 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "Injection"); 67 68 /** 69 * Log debug messages about input focus tracking. 70 * Enable this via "adb shell setprop log.tag.InputDispatcherFocus DEBUG" (requires restart) 71 */ 72 const bool DEBUG_FOCUS = 73 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "Focus"); 74 75 /** 76 * Log debug messages about touch mode event 77 * Enable this via "adb shell setprop log.tag.InputDispatcherTouchMode DEBUG" (requires restart) 78 */ 79 const bool DEBUG_TOUCH_MODE = 80 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "TouchMode"); 81 82 /** 83 * Log debug messages about touch occlusion 84 */ 85 constexpr bool DEBUG_TOUCH_OCCLUSION = true; 86 87 /** 88 * Log debug messages about the app switch latency optimization. 89 * Enable this via "adb shell setprop log.tag.InputDispatcherAppSwitch DEBUG" (requires restart) 90 */ 91 const bool DEBUG_APP_SWITCH = 92 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "AppSwitch"); 93 94 /** 95 * Log debug messages about hover events. 96 * Enable this via "adb shell setprop log.tag.InputDispatcherHover DEBUG" (requires restart) 97 */ 98 const bool DEBUG_HOVER = 99 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "Hover"); 100 101 /** 102 * Crash if a bad stream from InputListener is detected. 103 * Enable this via "adb shell setprop log.tag.InputDispatcherVerifyEvents DEBUG" (requires restart) 104 */ 105 const bool DEBUG_VERIFY_EVENTS = 106 android::base::ShouldLog(android::base::LogSeverity::DEBUG, LOG_TAG "VerifyEvents"); 107 108 } // namespace android::inputdispatcher 109