Loading include/input/InputWindow.h +24 −16 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ struct InputWindowInfo { InputWindowInfo(const Parcel& from); // Window flags from WindowManager.LayoutParams enum { enum : uint32_t { FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 0x00000001, FLAG_DIM_BEHIND = 0x00000002, FLAG_BLUR_BEHIND = 0x00000004, Loading @@ -62,7 +62,14 @@ struct InputWindowInfo { FLAG_TURN_SCREEN_ON = 0x00200000, FLAG_DISMISS_KEYGUARD = 0x00400000, FLAG_SPLIT_TOUCH = 0x00800000, FLAG_HARDWARE_ACCELERATED = 0x01000000, FLAG_LAYOUT_IN_OVERSCAN = 0x02000000, FLAG_TRANSLUCENT_STATUS = 0x04000000, FLAG_TRANSLUCENT_NAVIGATION = 0x08000000, FLAG_LOCAL_FOCUS_MODE = 0x10000000, FLAG_SLIPPERY = 0x20000000, FLAG_LAYOUT_ATTACHED_IN_DECOR = 0x40000000, FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS = 0x80000000, }; // Window types from WindowManager.LayoutParams Loading Loading @@ -191,6 +198,7 @@ struct InputWindowInfo { static InputWindowInfo read(const Parcel& from); }; std::string inputWindowFlagsToString(uint32_t flags); /* * Handle for a window that can receive input. Loading libs/input/InputWindow.cpp +114 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,10 @@ #define LOG_TAG "InputWindow" #define LOG_NDEBUG 0 #include <android-base/stringprintf.h> #include <binder/Parcel.h> #include <input/InputWindow.h> #include <input/InputTransport.h> #include <input/InputWindow.h> #include <log/log.h> Loading @@ -28,6 +29,118 @@ namespace android { const char* inputWindowFlagToString(uint32_t flag) { switch (flag) { case InputWindowInfo::FLAG_ALLOW_LOCK_WHILE_SCREEN_ON: { return "ALLOW_LOCK_WHILE_SCREEN_ON"; } case InputWindowInfo::FLAG_DIM_BEHIND: { return "DIM_BEHIND"; } case InputWindowInfo::FLAG_BLUR_BEHIND: { return "BLUR_BEHIND"; } case InputWindowInfo::FLAG_NOT_FOCUSABLE: { return "NOT_FOCUSABLE"; } case InputWindowInfo::FLAG_NOT_TOUCHABLE: { return "NOT_TOUCHABLE"; } case InputWindowInfo::FLAG_NOT_TOUCH_MODAL: { return "NOT_TOUCH_MODAL"; } case InputWindowInfo::FLAG_TOUCHABLE_WHEN_WAKING: { return "TOUCHABLE_WHEN_WAKING"; } case InputWindowInfo::FLAG_KEEP_SCREEN_ON: { return "KEEP_SCREEN_ON"; } case InputWindowInfo::FLAG_LAYOUT_IN_SCREEN: { return "LAYOUT_IN_SCREEN"; } case InputWindowInfo::FLAG_LAYOUT_NO_LIMITS: { return "LAYOUT_NO_LIMITS"; } case InputWindowInfo::FLAG_FULLSCREEN: { return "FULLSCREEN"; } case InputWindowInfo::FLAG_FORCE_NOT_FULLSCREEN: { return "FORCE_NOT_FULLSCREEN"; } case InputWindowInfo::FLAG_DITHER: { return "DITHER"; } case InputWindowInfo::FLAG_SECURE: { return "SECURE"; } case InputWindowInfo::FLAG_SCALED: { return "SCALED"; } case InputWindowInfo::FLAG_IGNORE_CHEEK_PRESSES: { return "IGNORE_CHEEK_PRESSES"; } case InputWindowInfo::FLAG_LAYOUT_INSET_DECOR: { return "LAYOUT_INSET_DECOR"; } case InputWindowInfo::FLAG_ALT_FOCUSABLE_IM: { return "ALT_FOCUSABLE_IM"; } case InputWindowInfo::FLAG_WATCH_OUTSIDE_TOUCH: { return "WATCH_OUTSIDE_TOUCH"; } case InputWindowInfo::FLAG_SHOW_WHEN_LOCKED: { return "SHOW_WHEN_LOCKED"; } case InputWindowInfo::FLAG_SHOW_WALLPAPER: { return "SHOW_WALLPAPER"; } case InputWindowInfo::FLAG_TURN_SCREEN_ON: { return "TURN_SCREEN_ON"; } case InputWindowInfo::FLAG_DISMISS_KEYGUARD: { return "DISMISS_KEYGUARD"; } case InputWindowInfo::FLAG_SPLIT_TOUCH: { return "SPLIT_TOUCH"; } case InputWindowInfo::FLAG_HARDWARE_ACCELERATED: { return "HARDWARE_ACCELERATED"; } case InputWindowInfo::FLAG_LAYOUT_IN_OVERSCAN: { return "LAYOUT_IN_OVERSCAN"; } case InputWindowInfo::FLAG_TRANSLUCENT_STATUS: { return "TRANSLUCENT_STATUS"; } case InputWindowInfo::FLAG_TRANSLUCENT_NAVIGATION: { return "TRANSLUCENT_NAVIGATION"; } case InputWindowInfo::FLAG_LOCAL_FOCUS_MODE: { return "LOCAL_FOCUS_MODE"; } case InputWindowInfo::FLAG_SLIPPERY: { return "SLIPPERY"; } case InputWindowInfo::FLAG_LAYOUT_ATTACHED_IN_DECOR: { return "LAYOUT_ATTACHED_IN_DECOR"; } case InputWindowInfo::FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: { return "DRAWS_SYSTEM_BAR_BACKGROUNDS"; } } return "UNKNOWN"; } std::string inputWindowFlagsToString(uint32_t flags) { std::string result; for (BitSet32 bits(flags); !bits.isEmpty();) { uint32_t bit = bits.clearLastMarkedBit(); // counts from left const uint32_t flag = 1 << (32 - bit - 1); result += android::base::StringPrintf("%s | ", inputWindowFlagToString(flag)); } return result; } // --- InputWindowInfo --- void InputWindowInfo::addTouchableRegion(const Rect& region) { touchableRegion.orSelf(region); Loading services/inputflinger/dispatcher/InputDispatcher.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -4101,6 +4101,9 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) { dump += StringPrintf(", ownerPid=%d, ownerUid=%d, dispatchingTimeout=%0.3fms\n", windowInfo->ownerPid, windowInfo->ownerUid, windowInfo->dispatchingTimeout / 1000000.0); dump += StringPrintf(INDENT4 " flags: %s\n", inputWindowFlagsToString(windowInfo->layoutParamsFlags) .c_str()); } } else { dump += INDENT2 "Windows: <none>\n"; Loading Loading
include/input/InputWindow.h +24 −16 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ struct InputWindowInfo { InputWindowInfo(const Parcel& from); // Window flags from WindowManager.LayoutParams enum { enum : uint32_t { FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 0x00000001, FLAG_DIM_BEHIND = 0x00000002, FLAG_BLUR_BEHIND = 0x00000004, Loading @@ -62,7 +62,14 @@ struct InputWindowInfo { FLAG_TURN_SCREEN_ON = 0x00200000, FLAG_DISMISS_KEYGUARD = 0x00400000, FLAG_SPLIT_TOUCH = 0x00800000, FLAG_HARDWARE_ACCELERATED = 0x01000000, FLAG_LAYOUT_IN_OVERSCAN = 0x02000000, FLAG_TRANSLUCENT_STATUS = 0x04000000, FLAG_TRANSLUCENT_NAVIGATION = 0x08000000, FLAG_LOCAL_FOCUS_MODE = 0x10000000, FLAG_SLIPPERY = 0x20000000, FLAG_LAYOUT_ATTACHED_IN_DECOR = 0x40000000, FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS = 0x80000000, }; // Window types from WindowManager.LayoutParams Loading Loading @@ -191,6 +198,7 @@ struct InputWindowInfo { static InputWindowInfo read(const Parcel& from); }; std::string inputWindowFlagsToString(uint32_t flags); /* * Handle for a window that can receive input. Loading
libs/input/InputWindow.cpp +114 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,10 @@ #define LOG_TAG "InputWindow" #define LOG_NDEBUG 0 #include <android-base/stringprintf.h> #include <binder/Parcel.h> #include <input/InputWindow.h> #include <input/InputTransport.h> #include <input/InputWindow.h> #include <log/log.h> Loading @@ -28,6 +29,118 @@ namespace android { const char* inputWindowFlagToString(uint32_t flag) { switch (flag) { case InputWindowInfo::FLAG_ALLOW_LOCK_WHILE_SCREEN_ON: { return "ALLOW_LOCK_WHILE_SCREEN_ON"; } case InputWindowInfo::FLAG_DIM_BEHIND: { return "DIM_BEHIND"; } case InputWindowInfo::FLAG_BLUR_BEHIND: { return "BLUR_BEHIND"; } case InputWindowInfo::FLAG_NOT_FOCUSABLE: { return "NOT_FOCUSABLE"; } case InputWindowInfo::FLAG_NOT_TOUCHABLE: { return "NOT_TOUCHABLE"; } case InputWindowInfo::FLAG_NOT_TOUCH_MODAL: { return "NOT_TOUCH_MODAL"; } case InputWindowInfo::FLAG_TOUCHABLE_WHEN_WAKING: { return "TOUCHABLE_WHEN_WAKING"; } case InputWindowInfo::FLAG_KEEP_SCREEN_ON: { return "KEEP_SCREEN_ON"; } case InputWindowInfo::FLAG_LAYOUT_IN_SCREEN: { return "LAYOUT_IN_SCREEN"; } case InputWindowInfo::FLAG_LAYOUT_NO_LIMITS: { return "LAYOUT_NO_LIMITS"; } case InputWindowInfo::FLAG_FULLSCREEN: { return "FULLSCREEN"; } case InputWindowInfo::FLAG_FORCE_NOT_FULLSCREEN: { return "FORCE_NOT_FULLSCREEN"; } case InputWindowInfo::FLAG_DITHER: { return "DITHER"; } case InputWindowInfo::FLAG_SECURE: { return "SECURE"; } case InputWindowInfo::FLAG_SCALED: { return "SCALED"; } case InputWindowInfo::FLAG_IGNORE_CHEEK_PRESSES: { return "IGNORE_CHEEK_PRESSES"; } case InputWindowInfo::FLAG_LAYOUT_INSET_DECOR: { return "LAYOUT_INSET_DECOR"; } case InputWindowInfo::FLAG_ALT_FOCUSABLE_IM: { return "ALT_FOCUSABLE_IM"; } case InputWindowInfo::FLAG_WATCH_OUTSIDE_TOUCH: { return "WATCH_OUTSIDE_TOUCH"; } case InputWindowInfo::FLAG_SHOW_WHEN_LOCKED: { return "SHOW_WHEN_LOCKED"; } case InputWindowInfo::FLAG_SHOW_WALLPAPER: { return "SHOW_WALLPAPER"; } case InputWindowInfo::FLAG_TURN_SCREEN_ON: { return "TURN_SCREEN_ON"; } case InputWindowInfo::FLAG_DISMISS_KEYGUARD: { return "DISMISS_KEYGUARD"; } case InputWindowInfo::FLAG_SPLIT_TOUCH: { return "SPLIT_TOUCH"; } case InputWindowInfo::FLAG_HARDWARE_ACCELERATED: { return "HARDWARE_ACCELERATED"; } case InputWindowInfo::FLAG_LAYOUT_IN_OVERSCAN: { return "LAYOUT_IN_OVERSCAN"; } case InputWindowInfo::FLAG_TRANSLUCENT_STATUS: { return "TRANSLUCENT_STATUS"; } case InputWindowInfo::FLAG_TRANSLUCENT_NAVIGATION: { return "TRANSLUCENT_NAVIGATION"; } case InputWindowInfo::FLAG_LOCAL_FOCUS_MODE: { return "LOCAL_FOCUS_MODE"; } case InputWindowInfo::FLAG_SLIPPERY: { return "SLIPPERY"; } case InputWindowInfo::FLAG_LAYOUT_ATTACHED_IN_DECOR: { return "LAYOUT_ATTACHED_IN_DECOR"; } case InputWindowInfo::FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: { return "DRAWS_SYSTEM_BAR_BACKGROUNDS"; } } return "UNKNOWN"; } std::string inputWindowFlagsToString(uint32_t flags) { std::string result; for (BitSet32 bits(flags); !bits.isEmpty();) { uint32_t bit = bits.clearLastMarkedBit(); // counts from left const uint32_t flag = 1 << (32 - bit - 1); result += android::base::StringPrintf("%s | ", inputWindowFlagToString(flag)); } return result; } // --- InputWindowInfo --- void InputWindowInfo::addTouchableRegion(const Rect& region) { touchableRegion.orSelf(region); Loading
services/inputflinger/dispatcher/InputDispatcher.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -4101,6 +4101,9 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) { dump += StringPrintf(", ownerPid=%d, ownerUid=%d, dispatchingTimeout=%0.3fms\n", windowInfo->ownerPid, windowInfo->ownerUid, windowInfo->dispatchingTimeout / 1000000.0); dump += StringPrintf(INDENT4 " flags: %s\n", inputWindowFlagsToString(windowInfo->layoutParamsFlags) .c_str()); } } else { dump += INDENT2 "Windows: <none>\n"; Loading