summaryrefslogtreecommitdiff
path: root/libs/input/PointerController.cpp
diff options
context:
space:
mode:
author Byoungho Jung <bh.jung@samsung.corp-partner.google.com> 2023-10-07 16:19:19 +0900
committer Prabir Pradhan <prabirmsp@google.com> 2023-11-03 18:28:24 +0000
commit6a2ce94936c11e3851a619a3287a8916a7da1ff5 (patch)
treeb0e6f37b97daacbf7edc18ca6017b0f286be332d /libs/input/PointerController.cpp
parent3f3d325136be55350c94118572a535cfa08b3739 (diff)
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
Diffstat (limited to 'libs/input/PointerController.cpp')
-rw-r--r--libs/input/PointerController.cpp28
1 files changed, 25 insertions, 3 deletions
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 <SkColor.h>
#include <android-base/stringprintf.h>
#include <android-base/thread_annotations.h>
+#include <com_android_input_flags.h>
#include <ftl/enum.h>
#include <mutex>
@@ -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> PointerController::create(
const sp<PointerControllerPolicyInterface>& policy, const sp<Looper>& looper,
- SpriteController& spriteController, bool enabled) {
+ SpriteController& spriteController, bool enabled, ControllerType type) {
// using 'new' to access non-public constructor
- std::shared_ptr<PointerController> controller = std::shared_ptr<PointerController>(
- new PointerController(policy, looper, spriteController, enabled));
+ std::shared_ptr<PointerController> controller;
+ switch (type) {
+ case ControllerType::MOUSE:
+ controller = std::shared_ptr<PointerController>(
+ new MousePointerController(policy, looper, spriteController, enabled));
+ break;
+ case ControllerType::LEGACY:
+ default:
+ controller = std::shared_ptr<PointerController>(
+ 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<PointerControllerPolicyInterface>& policy,
+ const sp<Looper>& looper,
+ SpriteController& spriteController, bool enabled)
+ : PointerController(policy, looper, spriteController, enabled) {
+ PointerController::setPresentation(Presentation::POINTER);
+}
+
} // namespace android