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

Side by Side Diff: remoting/android/javatests/src/org/chromium/chromoting/TouchEventBuilder.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, 5 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 package org.chromium.chromoting;
6
7 import org.chromium.chromoting.jni.TouchEventData;
8
9 import java.util.ArrayList;
10
11 /** A helper class to build a {@link MockInputStub.TouchEvent}. */
12 public final class TouchEventBuilder {
13 private final ArrayList<TouchEventData> mData;
14 private TouchEventData.EventType mEventType;
15
16 // Following fields are the of the pending TouchEventData. They will be adde d to {@link #data}
17 // by calling appendData().
18 private int mId;
19 private float mX;
20 private float mY;
21 private float mRadiusX;
22 private float mRadiusY;
23 private float mAngleInRadians;
24 private float mPressure;
25
26 public TouchEventBuilder() {
27 mData = new ArrayList<>();
28 clear();
29 }
30
31 public TouchEventBuilder withEventType(TouchEventData.EventType eventType) {
32 mEventType = eventType;
33 return this;
34 }
35
36 public TouchEventBuilder withId(int id) {
37 mId = id;
38 return this;
39 }
40
41 public TouchEventBuilder withX(float x) {
42 mX = x;
43 return this;
44 }
45
46 public TouchEventBuilder withY(float y) {
47 mY = y;
48 return this;
49 }
50
51 public TouchEventBuilder withRadiusX(float radiusX) {
52 mRadiusX = radiusX;
53 return this;
54 }
55
56 public TouchEventBuilder withRadiusY(float radiusY) {
57 mRadiusY = radiusY;
58 return this;
59 }
60
61 public TouchEventBuilder withAngleInRadians(float angleInRadians) {
62 mAngleInRadians = angleInRadians;
63 return this;
64 }
65
66 public TouchEventBuilder withPressure(float pressure) {
67 mPressure = pressure;
68 return this;
69 }
70
71 public TouchEventBuilder append() {
72 mData.add(new TouchEventData(mId, mX, mY, mRadiusX, mRadiusY, mAngleInRa dians, mPressure));
73 resetPending();
74 return this;
75 }
76
77 public MockInputStub.TouchEvent build() {
78 return new MockInputStub.TouchEvent(mEventType, mData.toArray(new TouchE ventData[] {}));
79 }
80
81 private void clear() {
82 mEventType = TouchEventData.EventType.TOUCH_EVENT_UNKNOWN;
83 mData.clear();
84 resetPending();
85 }
86
87 private void resetPending() {
88 mId = MockInputStub.TouchEvent.INVALID_ID;
89 mX = MockInputStub.TouchEvent.INVALID_POSITION;
90 mY = MockInputStub.TouchEvent.INVALID_POSITION;
91 mRadiusX = MockInputStub.TouchEvent.INVALID_POSITION;
92 mRadiusY = MockInputStub.TouchEvent.INVALID_POSITION;
93 mAngleInRadians = MockInputStub.TouchEvent.INVALID_RADIANS;
94 mPressure = MockInputStub.TouchEvent.INVALID_POSITION;
95 }
96 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698