From 85a3176704b5bfbeece9bd928369fbb76eec7dc6 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Wed, 1 Sep 2010 17:01:00 -0700 Subject: Add support for secure views. Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the input manager whenever another visible window is partly or wholly obscured the target of a touch event so that applications can filter touches accordingly. Added a "filterTouchesWhenObscured" attribute to View which can be used to enable filtering of touches when the view's window is obscured. Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2 --- native/android/input.cpp | 4 ++++ native/include/android/input.h | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'native') diff --git a/native/android/input.cpp b/native/android/input.cpp index c79f913..57f0072 100644 --- a/native/android/input.cpp +++ b/native/android/input.cpp @@ -84,6 +84,10 @@ int32_t AMotionEvent_getAction(const AInputEvent* motion_event) { return static_cast(motion_event)->getAction(); } +int32_t AMotionEvent_getFlags(const AInputEvent* motion_event) { + return static_cast(motion_event)->getFlags(); +} + int32_t AMotionEvent_getMetaState(const AInputEvent* motion_event) { return static_cast(motion_event)->getMetaState(); } diff --git a/native/include/android/input.h b/native/include/android/input.h index 5b62da4..9da122b 100644 --- a/native/include/android/input.h +++ b/native/include/android/input.h @@ -247,6 +247,22 @@ enum { }; /* + * Motion event flags. + */ +enum { + /* This flag indicates that the window that received this motion event is partly + * or wholly obscured by another visible window above it. This flag is set to true + * even if the event did not directly pass through the obscured area. + * A security sensitive application can check this flag to identify situations in which + * a malicious application may have covered up part of its content for the purpose + * of misleading the user or hijacking touches. An appropriate response might be + * to drop the suspect touches or to take additional precautions to confirm the user's + * actual intent. + */ + AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED = 0x1, +}; + +/* * Motion event edge touch flags. */ enum { @@ -395,6 +411,9 @@ int64_t AKeyEvent_getEventTime(const AInputEvent* key_event); /* Get the combined motion event action code and pointer index. */ int32_t AMotionEvent_getAction(const AInputEvent* motion_event); +/* Get the motion event flags. */ +int32_t AMotionEvent_getFlags(const AInputEvent* motion_event); + /* Get the state of any meta / modifier keys that were in effect when the * event was generated. */ int32_t AMotionEvent_getMetaState(const AInputEvent* motion_event); -- cgit v1.1