summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2014-03-29 00:56:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-03-29 00:56:00 +0000
commitd020fd33d147c88a9cda4976d2fa559e55b4ab03 (patch)
treef1efcf211ac61ea9deab18c423185faa1216ec6c /core/java/android/view/ViewRootImpl.java
parent594c73fc57c99a0bceaa84ccd7524e5038a17ad8 (diff)
parent1b10869f39978a864cfcc4efc73aefc312d8ed79 (diff)
Merge changes Ib18c99b9,I9f42eeb9 into klp-modular-dev
* changes: Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE Adds API for determining confirm and cancel keys.
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 d779628571bf..1848a8f976af 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);
}