| Index: remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java
|
| diff --git a/remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java b/remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java
|
| index c9dcf4bdaf1745ccc1791fe2f11c3c565d4b1f36..16f7277d0423ea4a444eb359d2416c794147786c 100644
|
| --- a/remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java
|
| +++ b/remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java
|
| @@ -7,8 +7,6 @@ package org.chromium.chromoting;
|
| import android.graphics.Point;
|
| import android.view.MotionEvent;
|
|
|
| -import org.chromium.chromoting.jni.Client;
|
| -
|
| /**
|
| * Defines a set of behavior and methods to simulate trackpad behavior when responding to
|
| * local input event data. This class is also responsible for forwarding input event data
|
| @@ -16,14 +14,15 @@ import org.chromium.chromoting.jni.Client;
|
| */
|
| public class TrackpadInputStrategy implements InputStrategyInterface {
|
| private final RenderData mRenderData;
|
| - private final Client mClient;
|
| + private final InputEventSender mInjector;
|
|
|
| /** Mouse-button currently held down, or BUTTON_UNDEFINED otherwise. */
|
| - private int mHeldButton = TouchInputHandlerInterface.BUTTON_UNDEFINED;
|
| + private int mHeldButton = InputStub.BUTTON_UNDEFINED;
|
|
|
| - public TrackpadInputStrategy(RenderData renderData, Client client) {
|
| + public TrackpadInputStrategy(RenderData renderData, InputEventSender injector) {
|
| + Preconditions.notNull(injector);
|
| mRenderData = renderData;
|
| - mClient = client;
|
| + mInjector = injector;
|
|
|
| synchronized (mRenderData) {
|
| mRenderData.drawCursor = true;
|
| @@ -32,35 +31,34 @@ public class TrackpadInputStrategy implements InputStrategyInterface {
|
|
|
| @Override
|
| public boolean onTap(int button) {
|
| - injectMouseButtonEvent(button, true);
|
| - injectMouseButtonEvent(button, false);
|
| + mInjector.sendMouseClick(getCursorPosition(), button);
|
| return true;
|
| }
|
|
|
| @Override
|
| public boolean onPressAndHold(int button) {
|
| - injectMouseButtonEvent(button, true);
|
| + mInjector.sendMouseDown(getCursorPosition(), button);
|
| mHeldButton = button;
|
| return true;
|
| }
|
|
|
| @Override
|
| public void onScroll(float distanceX, float distanceY) {
|
| - mClient.sendMouseWheelEvent((int) -distanceX, (int) -distanceY);
|
| + mInjector.sendReverseMouseWheelEvent(distanceX, distanceY);
|
| }
|
|
|
| @Override
|
| public void onMotionEvent(MotionEvent event) {
|
| if (event.getActionMasked() == MotionEvent.ACTION_UP
|
| - && mHeldButton != TouchInputHandlerInterface.BUTTON_UNDEFINED) {
|
| - injectMouseButtonEvent(mHeldButton, false);
|
| - mHeldButton = TouchInputHandlerInterface.BUTTON_UNDEFINED;
|
| + && mHeldButton != InputStub.BUTTON_UNDEFINED) {
|
| + mInjector.sendMouseUp(getCursorPosition(), mHeldButton);
|
| + mHeldButton = InputStub.BUTTON_UNDEFINED;
|
| }
|
| }
|
|
|
| @Override
|
| public void injectCursorMoveEvent(int x, int y) {
|
| - mClient.sendMouseEvent(x, y, TouchInputHandlerInterface.BUTTON_UNDEFINED, false);
|
| + mInjector.sendCursorMove(x, y);
|
| }
|
|
|
| @Override
|
| @@ -78,11 +76,9 @@ public class TrackpadInputStrategy implements InputStrategyInterface {
|
| return true;
|
| }
|
|
|
| - private void injectMouseButtonEvent(int button, boolean pressed) {
|
| - Point cursorPosition;
|
| + private Point getCursorPosition() {
|
| synchronized (mRenderData) {
|
| - cursorPosition = mRenderData.getCursorPosition();
|
| + return mRenderData.getCursorPosition();
|
| }
|
| - mClient.sendMouseEvent(cursorPosition.x, cursorPosition.y, button, pressed);
|
| }
|
| }
|
|
|