summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2014-03-19 11:51:26 -0700
committerMichael Wright <michaelwr@google.com>2014-03-26 14:56:07 -0700
commit1b10869f39978a864cfcc4efc73aefc312d8ed79 (patch)
tree2335d099d07547abf1c672bde9b51594bf4e8f1b /core/java/android/view/ViewRootImpl.java
parent1e3c93975ee9c88284449406d49df2569f03f498 (diff)
downloadframeworks_base-1b10869f39978a864cfcc4efc73aefc312d8ed79.zip
frameworks_base-1b10869f39978a864cfcc4efc73aefc312d8ed79.tar.gz
frameworks_base-1b10869f39978a864cfcc4efc73aefc312d8ed79.tar.bz2
Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE
Also change MotionEvent.PointerCoords bit packing and unpacking methods to be consistent with BitSets which are now used on the native PointerCoords object. Bug: 11480300 Change-Id: Ib18c99b94ac555104c69eac526860aa501e89e03
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index d779628..1848a8f 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -4319,6 +4319,7 @@ public final class ViewRootImpl implements ViewParent,
* Creates dpad events from unhandled joystick movements.
*/
final class SyntheticJoystickHandler extends Handler {
+ private final static String TAG = "SyntheticJoystickHandler";
private final static int MSG_ENQUEUE_X_AXIS_KEY_REPEAT = 1;
private final static int MSG_ENQUEUE_Y_AXIS_KEY_REPEAT = 2;
@@ -4351,10 +4352,21 @@ public final class ViewRootImpl implements ViewParent,
}
public void process(MotionEvent event) {
- update(event, true);
+ switch(event.getActionMasked()) {
+ case MotionEvent.ACTION_CANCEL:
+ cancel(event);
+ break;
+ case MotionEvent.ACTION_MOVE:
+ update(event, true);
+ break;
+ default:
+ Log.w(TAG, "Unexpected action: " + event.getActionMasked());
+ }
}
- public void cancel(MotionEvent event) {
+ private void cancel(MotionEvent event) {
+ removeMessages(MSG_ENQUEUE_X_AXIS_KEY_REPEAT);
+ removeMessages(MSG_ENQUEUE_Y_AXIS_KEY_REPEAT);
update(event, false);
}