diff options
author | Daniel Norman <danielnorman@google.com> | 2020-08-31 12:05:49 -0700 |
---|---|---|
committer | Bill Peckham <bpeckham@google.com> | 2020-09-09 10:21:03 -0700 |
commit | 8abdf0e95a5d15a310b6df69d33a4510a0b44b4a (patch) | |
tree | f0c990be5370711e157b2e9e5ae746cb1af915b9 /native/android/input.cpp | |
parent | 93e6c963c3228074d0e0dd5f3f8d057d9bd11e05 (diff) | |
parent | 6997558ebbaa0c3e5708246807239f11e70ad35d (diff) |
Merge SP1A.200727.001
Change-Id: Ibb86a528ed692cde325705779c7fa57e4b4de682
Diffstat (limited to 'native/android/input.cpp')
-rw-r--r-- | native/android/input.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/native/android/input.cpp b/native/android/input.cpp index fc521386e6e1..8eeb9555c51c 100644 --- a/native/android/input.cpp +++ b/native/android/input.cpp @@ -26,6 +26,8 @@ #include <android_runtime/android_app_NativeActivity.h> #include <android_runtime/android_view_InputQueue.h> +#include <android_view_MotionEvent.h> +#include <android_view_KeyEvent.h> #include <poll.h> #include <errno.h> @@ -50,6 +52,10 @@ int32_t AInputEvent_getSource(const AInputEvent* event) { return static_cast<const InputEvent*>(event)->getSource(); } +void AInputEvent_release(const AInputEvent* event) { + delete event; +} + int32_t AKeyEvent_getAction(const AInputEvent* key_event) { return static_cast<const KeyEvent*>(key_event)->getAction(); } @@ -77,6 +83,14 @@ int64_t AKeyEvent_getDownTime(const AInputEvent* key_event) { return static_cast<const KeyEvent*>(key_event)->getDownTime(); } +const AInputEvent* AKeyEvent_fromJava(JNIEnv* env, jobject keyEvent) { + std::unique_ptr<KeyEvent> event = std::make_unique<KeyEvent>(); + android::status_t ret = android::android_view_KeyEvent_toNative(env, keyEvent, event.get()); + if (ret == android::OK) { + return event.release(); + } + return nullptr; +} int64_t AKeyEvent_getEventTime(const AInputEvent* key_event) { return static_cast<const KeyEvent*>(key_event)->getEventTime(); @@ -269,6 +283,15 @@ float AMotionEvent_getHistoricalAxisValue(const AInputEvent* motion_event, axis, pointer_index, history_index); } +const AInputEvent* AMotionEvent_fromJava(JNIEnv* env, jobject motionEvent) { + MotionEvent* eventSrc = android::android_view_MotionEvent_getNativePtr(env, motionEvent); + if (eventSrc == nullptr) { + return nullptr; + } + MotionEvent* event = new MotionEvent(); + event->copyFrom(eventSrc, true); + return event; +} void AInputQueue_attachLooper(AInputQueue* queue, ALooper* looper, int ident, ALooper_callbackFunc callback, void* data) { |