| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.compositor.layouts.eventfilter; | 5 package org.chromium.chrome.browser.compositor.layouts.eventfilter; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.view.GestureDetector; | 8 import android.view.GestureDetector; |
| 9 import android.view.MotionEvent; | 9 import android.view.MotionEvent; |
| 10 import android.view.ViewConfiguration; | 10 import android.view.ViewConfiguration; |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 | 103 |
| 104 /** The Y coordinate of the synthetic ACTION_DOWN MotionEvent. */ | 104 /** The Y coordinate of the synthetic ACTION_DOWN MotionEvent. */ |
| 105 private float mSyntheticActionDownY; | 105 private float mSyntheticActionDownY; |
| 106 | 106 |
| 107 /** The list of recorded events. */ | 107 /** The list of recorded events. */ |
| 108 private final ArrayList<MotionEvent> mRecordedEvents = new ArrayList<MotionE
vent>(); | 108 private final ArrayList<MotionEvent> mRecordedEvents = new ArrayList<MotionE
vent>(); |
| 109 | 109 |
| 110 /** The initial Y position of the current gesture. */ | 110 /** The initial Y position of the current gesture. */ |
| 111 private float mInitialEventY; | 111 private float mInitialEventY; |
| 112 | 112 |
| 113 /** Whether or not the superclass has seen a down event. */ |
| 114 private boolean mFilterHadDownEvent; |
| 115 |
| 113 private class SwipeRecognizerImpl extends SwipeRecognizer { | 116 private class SwipeRecognizerImpl extends SwipeRecognizer { |
| 114 public SwipeRecognizerImpl(Context context) { | 117 public SwipeRecognizerImpl(Context context) { |
| 115 super(context); | 118 super(context); |
| 116 setSwipeHandler(mPanel); | 119 setSwipeHandler(mPanel); |
| 117 } | 120 } |
| 118 | 121 |
| 119 @Override | 122 @Override |
| 120 public boolean onSingleTapUp(MotionEvent event) { | 123 public boolean onSingleTapUp(MotionEvent event) { |
| 121 mPanel.handleClick(event.getEventTime(), event.getX() * mPxToDp, | 124 mPanel.handleClick(event.getEventTime(), event.getX() * mPxToDp, |
| 122 event.getY() * mPxToDp); | 125 event.getY() * mPxToDp); |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 e.recycle(); | 324 e.recycle(); |
| 322 } | 325 } |
| 323 | 326 |
| 324 /** | 327 /** |
| 325 * Propagates the given {@link MotionEvent} to the given {@link EventTarget}
. | 328 * Propagates the given {@link MotionEvent} to the given {@link EventTarget}
. |
| 326 * @param e The {@link MotionEvent} to be propagated. | 329 * @param e The {@link MotionEvent} to be propagated. |
| 327 * @param target The {@link EventTarget} to propagate events to. | 330 * @param target The {@link EventTarget} to propagate events to. |
| 328 */ | 331 */ |
| 329 private void propagateEvent(MotionEvent e, EventTarget target) { | 332 private void propagateEvent(MotionEvent e, EventTarget target) { |
| 330 if (target == EventTarget.PANEL) { | 333 if (target == EventTarget.PANEL) { |
| 334 // Make sure the internal gesture detector has seen at least on down
event. |
| 335 if (e.getActionMasked() == MotionEvent.ACTION_DOWN) mFilterHadDownEv
ent = true; |
| 336 if (!mFilterHadDownEvent) { |
| 337 MotionEvent down = MotionEvent.obtain(e); |
| 338 down.setAction(MotionEvent.ACTION_DOWN); |
| 339 super.onTouchEventInternal(down); |
| 340 mFilterHadDownEvent = true; |
| 341 } |
| 331 super.onTouchEventInternal(e); | 342 super.onTouchEventInternal(e); |
| 332 } else if (target == EventTarget.CONTENT_VIEW) { | 343 } else if (target == EventTarget.CONTENT_VIEW) { |
| 333 propagateEventToContentViewCore(e); | 344 propagateEventToContentViewCore(e); |
| 334 } | 345 } |
| 335 } | 346 } |
| 336 | 347 |
| 337 /** | 348 /** |
| 338 * Propagates the given {@link MotionEvent} to the {@link ContentViewCore}. | 349 * Propagates the given {@link MotionEvent} to the {@link ContentViewCore}. |
| 339 * @param e The {@link MotionEvent} to be propagated. | 350 * @param e The {@link MotionEvent} to be propagated. |
| 340 */ | 351 */ |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 public boolean onSingleTapUp(MotionEvent e) { | 569 public boolean onSingleTapUp(MotionEvent e) { |
| 559 return handleSingleTapUp(e); | 570 return handleSingleTapUp(e); |
| 560 } | 571 } |
| 561 | 572 |
| 562 @Override | 573 @Override |
| 563 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) { | 574 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) { |
| 564 return handleScroll(e1, e2, distanceY); | 575 return handleScroll(e1, e2, distanceY); |
| 565 } | 576 } |
| 566 } | 577 } |
| 567 } | 578 } |
| OLD | NEW |