From 6a2ce94936c11e3851a619a3287a8916a7da1ff5 Mon Sep 17 00:00:00 2001 From: Byoungho Jung Date: Sat, 7 Oct 2023 16:19:19 +0900 Subject: Pointer icon refactor for mouse (base) When PointerChoreographer is enabled, CursorInputMapper no longer depends on the legacy PointerController. PointerChoreographer is responsible for accumulating movements, fading/unfading pointers, and deciding display/coordinates. Test: atest libinputservice_test Bug: 293587049 Change-Id: Ie35b385a99623bbcb2e47b394b7cf2c0f7c5bc0e --- libs/input/PointerController.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'libs/input/PointerController.cpp') diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index abd928486607..576ebc1579ef 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -34,6 +35,8 @@ #define INDENT2 " " #define INDENT3 " " +namespace input_flags = com::android::input::flags; + namespace android { namespace { @@ -63,10 +66,20 @@ void PointerController::DisplayInfoListener::onPointerControllerDestroyed() { std::shared_ptr PointerController::create( const sp& policy, const sp& looper, - SpriteController& spriteController, bool enabled) { + SpriteController& spriteController, bool enabled, ControllerType type) { // using 'new' to access non-public constructor - std::shared_ptr controller = std::shared_ptr( - new PointerController(policy, looper, spriteController, enabled)); + std::shared_ptr controller; + switch (type) { + case ControllerType::MOUSE: + controller = std::shared_ptr( + new MousePointerController(policy, looper, spriteController, enabled)); + break; + case ControllerType::LEGACY: + default: + controller = std::shared_ptr( + new PointerController(policy, looper, spriteController, enabled)); + break; + } /* * Now we need to hook up the constructed PointerController object to its callbacks. @@ -375,4 +388,13 @@ std::string PointerController::dump() { return dump; } +// --- MousePointerController --- + +MousePointerController::MousePointerController(const sp& policy, + const sp& looper, + SpriteController& spriteController, bool enabled) + : PointerController(policy, looper, spriteController, enabled) { + PointerController::setPresentation(Presentation::POINTER); +} + } // namespace android -- cgit v1.2.3-59-g8ed1b