diff options
author | Jeff Brown <jeffbrown@google.com> | 2010-09-01 17:01:00 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2010-09-08 11:50:55 -0700 |
commit | 85a3176704b5bfbeece9bd928369fbb76eec7dc6 (patch) | |
tree | 1a84f21c037b514c5b6717b106f5a9a2c4fd6c99 /native | |
parent | c0b4f6d30d962d75125628317b5f5ea622531dfe (diff) | |
download | frameworks_base-85a3176704b5bfbeece9bd928369fbb76eec7dc6.zip frameworks_base-85a3176704b5bfbeece9bd928369fbb76eec7dc6.tar.gz frameworks_base-85a3176704b5bfbeece9bd928369fbb76eec7dc6.tar.bz2 |
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
Diffstat (limited to 'native')
-rw-r--r-- | native/android/input.cpp | 4 | ||||
-rw-r--r-- | native/include/android/input.h | 19 |
2 files changed, 23 insertions, 0 deletions
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<const MotionEvent*>(motion_event)->getAction(); } +int32_t AMotionEvent_getFlags(const AInputEvent* motion_event) { + return static_cast<const MotionEvent*>(motion_event)->getFlags(); +} + int32_t AMotionEvent_getMetaState(const AInputEvent* motion_event) { return static_cast<const MotionEvent*>(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); |