Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(768)

Unified Diff: remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java

Issue 2066683003: [Chromoting] Add InputInjector and InputInjectorWrapper for easy unittesting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve review comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
}

Powered by Google App Engine
This is Rietveld 408576698