Added onGesture(AccessibilityGestureInfo) for mulit-display
We added a new API to help App developers know the gesture information
performed on specific display.
Bug: 133290787
Test: atest AccessibilityGestureDetectorTest
Change-Id: Ic98847691ba9f608f418408e9bef1c3116388f3c
diff --git a/api/current.txt b/api/current.txt
index 25801ca..1ed8789 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -2810,6 +2810,14 @@
method public void onClicked(android.accessibilityservice.AccessibilityButtonController);
}
+ public final class AccessibilityGestureInfo implements android.os.Parcelable {
+ method public int describeContents();
+ method public int getDisplayId();
+ method public int getGestureId();
+ method public void writeToParcel(android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.accessibilityservice.AccessibilityGestureInfo> CREATOR;
+ }
+
public abstract class AccessibilityService extends android.app.Service {
ctor public AccessibilityService();
method public final void disableSelf();
@@ -2824,7 +2832,8 @@
method public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
method public abstract void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
method public final android.os.IBinder onBind(android.content.Intent);
- method protected boolean onGesture(int);
+ method @Deprecated protected boolean onGesture(int);
+ method public boolean onGesture(@NonNull android.accessibilityservice.AccessibilityGestureInfo);
method public abstract void onInterrupt();
method protected boolean onKeyEvent(android.view.KeyEvent);
method protected void onServiceConnected();
diff --git a/api/test-current.txt b/api/test-current.txt
index 050ec52..50d1f53 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -32,6 +32,14 @@
}
+package android.accessibilityservice {
+
+ public final class AccessibilityGestureInfo implements android.os.Parcelable {
+ ctor public AccessibilityGestureInfo(int, int);
+ }
+
+}
+
package android.animation {
public class ValueAnimator extends android.animation.Animator {
diff --git a/core/java/android/accessibilityservice/AccessibilityGestureInfo.aidl b/core/java/android/accessibilityservice/AccessibilityGestureInfo.aidl
new file mode 100644
index 0000000..2539051
--- /dev/null
+++ b/core/java/android/accessibilityservice/AccessibilityGestureInfo.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.accessibilityservice;
+
+parcelable AccessibilityGestureInfo;
diff --git a/core/java/android/accessibilityservice/AccessibilityGestureInfo.java b/core/java/android/accessibilityservice/AccessibilityGestureInfo.java
new file mode 100644
index 0000000..dc50a4c
--- /dev/null
+++ b/core/java/android/accessibilityservice/AccessibilityGestureInfo.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.accessibilityservice;
+
+
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN_AND_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN_AND_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN_AND_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_LEFT_AND_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_LEFT_AND_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_LEFT_AND_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_RIGHT_AND_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_RIGHT_AND_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_RIGHT_AND_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_UP_AND_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_UP_AND_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_UP_AND_RIGHT;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.TestApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * This class describes the gesture information including gesture id and which display it happens
+ * on.
+ * <p>
+ * <strong>Note:</strong> Accessibility services setting the
+ * {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_REQUEST_TOUCH_EXPLORATION_MODE}
+ * flag can receive gestures.
+ *
+ * @see AccessibilityService#onGesture(AccessibilityGestureInfo)
+ */
+
+public final class AccessibilityGestureInfo implements Parcelable {
+
+ /** @hide */
+ @IntDef(prefix = { "GESTURE_" }, value = {
+ GESTURE_SWIPE_UP,
+ GESTURE_SWIPE_UP_AND_LEFT,
+ GESTURE_SWIPE_UP_AND_DOWN,
+ GESTURE_SWIPE_UP_AND_RIGHT,
+ GESTURE_SWIPE_DOWN,
+ GESTURE_SWIPE_DOWN_AND_LEFT,
+ GESTURE_SWIPE_DOWN_AND_UP,
+ GESTURE_SWIPE_DOWN_AND_RIGHT,
+ GESTURE_SWIPE_LEFT,
+ GESTURE_SWIPE_LEFT_AND_UP,
+ GESTURE_SWIPE_LEFT_AND_RIGHT,
+ GESTURE_SWIPE_LEFT_AND_DOWN,
+ GESTURE_SWIPE_RIGHT,
+ GESTURE_SWIPE_RIGHT_AND_UP,
+ GESTURE_SWIPE_RIGHT_AND_LEFT,
+ GESTURE_SWIPE_RIGHT_AND_DOWN
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface GestureType {}
+
+ @GestureType
+ private final int mGestureId;
+ private final int mDisplayId;
+
+ /** @hide */
+ @TestApi
+ public AccessibilityGestureInfo(int gestureId, int displayId) {
+ mGestureId = gestureId;
+ mDisplayId = displayId;
+ }
+
+ private AccessibilityGestureInfo(@NonNull Parcel parcel) {
+ mGestureId = parcel.readInt();
+ mDisplayId = parcel.readInt();
+ }
+
+ /**
+ * Returns the display id of the received-gesture display, for use with
+ * {@link android.hardware.display.DisplayManager#getDisplay(int)}.
+ *
+ * @return the display id.
+ */
+ public int getDisplayId() {
+ return mDisplayId;
+ }
+
+ /**
+ * Returns performed gesture id.
+ *
+ * @return the performed gesture id.
+ *
+ */
+ @GestureType public int getGestureId() {
+ return mGestureId;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder("AccessibilityGestureInfo[");
+ stringBuilder.append("gestureId: ").append(mGestureId);
+ stringBuilder.append(", ");
+ stringBuilder.append("displayId: ").append(mDisplayId);
+ stringBuilder.append(']');
+ return stringBuilder.toString();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel parcel, int flags) {
+ parcel.writeInt(mGestureId);
+ parcel.writeInt(mDisplayId);
+ }
+
+ /**
+ * @see Parcelable.Creator
+ */
+ public static final @NonNull Parcelable.Creator<AccessibilityGestureInfo> CREATOR =
+ new Parcelable.Creator<AccessibilityGestureInfo>() {
+ public AccessibilityGestureInfo createFromParcel(Parcel parcel) {
+ return new AccessibilityGestureInfo(parcel);
+ }
+
+ public AccessibilityGestureInfo[] newArray(int size) {
+ return new AccessibilityGestureInfo[size];
+ }
+ };
+
+}
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index cebe6e12..4a02644 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -381,7 +381,8 @@
void onInterrupt();
void onServiceConnected();
void init(int connectionId, IBinder windowToken);
- boolean onGesture(int gestureId);
+ /** The detected gesture information for different displays */
+ boolean onGesture(AccessibilityGestureInfo gestureInfo);
boolean onKeyEvent(KeyEvent event);
/** Magnification changed callbacks for different displays */
void onMagnificationChanged(int displayId, @NonNull Region region,
@@ -514,17 +515,18 @@
}
/**
- * Called by the system when the user performs a specific gesture on the
- * touch screen.
+ * Called by {@link #onGesture(AccessibilityGestureInfo)} when the user performs a specific
+ * gesture on the default display.
*
* <strong>Note:</strong> To receive gestures an accessibility service must
* request that the device is in touch exploration mode by setting the
- * {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_REQUEST_TOUCH_EXPLORATION_MODE}
+ * {@link AccessibilityServiceInfo#FLAG_REQUEST_TOUCH_EXPLORATION_MODE}
* flag.
*
* @param gestureId The unique id of the performed gesture.
*
* @return Whether the gesture was handled.
+ * @deprecated Override {@link #onGesture(AccessibilityGestureInfo)} instead.
*
* @see #GESTURE_SWIPE_UP
* @see #GESTURE_SWIPE_UP_AND_LEFT
@@ -543,11 +545,36 @@
* @see #GESTURE_SWIPE_RIGHT_AND_LEFT
* @see #GESTURE_SWIPE_RIGHT_AND_DOWN
*/
+ @Deprecated
protected boolean onGesture(int gestureId) {
return false;
}
/**
+ * Called by the system when the user performs a specific gesture on the
+ * specific touch screen.
+ *<p>
+ * <strong>Note:</strong> To receive gestures an accessibility service must
+ * request that the device is in touch exploration mode by setting the
+ * {@link AccessibilityServiceInfo#FLAG_REQUEST_TOUCH_EXPLORATION_MODE}
+ * flag.
+ *<p>
+ * <strong>Note:</strong> The default implementation calls {@link #onGesture(int)} when the
+ * touch screen is default display.
+ *
+ * @param gestureInfo The information of gesture.
+ *
+ * @return Whether the gesture was handled.
+ *
+ */
+ public boolean onGesture(@NonNull AccessibilityGestureInfo gestureInfo) {
+ if (gestureInfo.getDisplayId() == Display.DEFAULT_DISPLAY) {
+ onGesture(gestureInfo.getGestureId());
+ }
+ return false;
+ }
+
+ /**
* Callback that allows an accessibility service to observe the key events
* before they are passed to the rest of the system. This means that the events
* are first delivered here before they are passed to the device policy, the
@@ -1647,8 +1674,8 @@
}
@Override
- public boolean onGesture(int gestureId) {
- return AccessibilityService.this.onGesture(gestureId);
+ public boolean onGesture(AccessibilityGestureInfo gestureInfo) {
+ return AccessibilityService.this.onGesture(gestureInfo);
}
@Override
@@ -1747,8 +1774,9 @@
mCaller.sendMessage(message);
}
- public void onGesture(int gestureId) {
- Message message = mCaller.obtainMessageI(DO_ON_GESTURE, gestureId);
+ @Override
+ public void onGesture(AccessibilityGestureInfo gestureInfo) {
+ Message message = mCaller.obtainMessageO(DO_ON_GESTURE, gestureInfo);
mCaller.sendMessage(message);
}
@@ -1861,8 +1889,7 @@
case DO_ON_GESTURE: {
if (mConnectionId != AccessibilityInteractionClient.NO_ID) {
- final int gestureId = message.arg1;
- mCallback.onGesture(gestureId);
+ mCallback.onGesture((AccessibilityGestureInfo) message.obj);
}
} return;
diff --git a/core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl b/core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl
index 1dae4fc..407ba59 100644
--- a/core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl
+++ b/core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl
@@ -20,6 +20,7 @@
import android.graphics.Region;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityWindowInfo;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.view.KeyEvent;
/**
@@ -35,7 +36,7 @@
void onInterrupt();
- void onGesture(int gesture);
+ void onGesture(in AccessibilityGestureInfo gestureInfo);
void clearAccessibilityCache();
diff --git a/core/java/android/app/UiAutomation.java b/core/java/android/app/UiAutomation.java
index 3935628..2b74b99 100644
--- a/core/java/android/app/UiAutomation.java
+++ b/core/java/android/app/UiAutomation.java
@@ -16,6 +16,7 @@
package android.app;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.accessibilityservice.AccessibilityService.Callbacks;
import android.accessibilityservice.AccessibilityService.IAccessibilityServiceClientWrapper;
import android.accessibilityservice.AccessibilityServiceInfo;
@@ -1232,7 +1233,7 @@
}
@Override
- public boolean onGesture(int gestureId) {
+ public boolean onGesture(AccessibilityGestureInfo gestureInfo) {
/* do nothing */
return false;
}
diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
index 1873de5..3bdfc33 100644
--- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
@@ -24,6 +24,7 @@
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.IAccessibilityServiceClient;
import android.accessibilityservice.IAccessibilityServiceConnection;
@@ -1107,9 +1108,9 @@
}
}
- public void notifyGesture(int gestureId) {
+ public void notifyGesture(AccessibilityGestureInfo gestureInfo) {
mInvocationHandler.obtainMessage(InvocationHandler.MSG_ON_GESTURE,
- gestureId, 0).sendToTarget();
+ gestureInfo).sendToTarget();
}
public void notifyClearAccessibilityNodeInfoCache() {
@@ -1198,13 +1199,13 @@
}
}
- private void notifyGestureInternal(int gestureId) {
+ private void notifyGestureInternal(AccessibilityGestureInfo gestureInfo) {
final IAccessibilityServiceClient listener = getServiceInterfaceSafely();
if (listener != null) {
try {
- listener.onGesture(gestureId);
+ listener.onGesture(gestureInfo);
} catch (RemoteException re) {
- Slog.e(LOG_TAG, "Error during sending gesture " + gestureId
+ Slog.e(LOG_TAG, "Error during sending gesture " + gestureInfo
+ " to " + mService, re);
}
}
@@ -1399,8 +1400,7 @@
final int type = message.what;
switch (type) {
case MSG_ON_GESTURE: {
- final int gestureId = message.arg1;
- notifyGestureInternal(gestureId);
+ notifyGestureInternal((AccessibilityGestureInfo) message.obj);
} break;
case MSG_CLEAR_ACCESSIBILITY_CACHE: {
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityGestureDetector.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityGestureDetector.java
index d767011..b4ac92f 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityGestureDetector.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityGestureDetector.java
@@ -16,21 +16,15 @@
package com.android.server.accessibility;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.accessibilityservice.AccessibilityService;
import android.content.Context;
-import android.gesture.Gesture;
import android.gesture.GesturePoint;
-import android.gesture.GestureStore;
-import android.gesture.GestureStroke;
-import android.gesture.Prediction;
import android.graphics.PointF;
import android.util.Slog;
import android.util.TypedValue;
import android.view.GestureDetector;
import android.view.MotionEvent;
-import android.view.ViewConfiguration;
-
-import com.android.internal.R;
import java.util.ArrayList;
@@ -125,11 +119,11 @@
/**
* Called when an event stream is recognized as a gesture.
*
- * @param gestureId ID of the gesture that was recognized.
+ * @param gestureInfo Information about the gesture.
*
* @return true if the event is consumed, else false
*/
- boolean onGestureCompleted(int gestureId);
+ boolean onGestureCompleted(AccessibilityGestureInfo gestureInfo);
/**
* Called when the system has decided an event stream doesn't match any
@@ -562,6 +556,7 @@
private boolean recognizeGesturePath(MotionEvent event, int policyFlags,
ArrayList<PointF> path) {
+ final int displayId = event.getDisplayId();
if (path.size() == 2) {
PointF start = path.get(0);
PointF end = path.get(1);
@@ -571,13 +566,21 @@
int direction = toDirection(dX, dY);
switch (direction) {
case LEFT:
- return mListener.onGestureCompleted(AccessibilityService.GESTURE_SWIPE_LEFT);
+ return mListener.onGestureCompleted(
+ new AccessibilityGestureInfo(AccessibilityService.GESTURE_SWIPE_LEFT,
+ displayId));
case RIGHT:
- return mListener.onGestureCompleted(AccessibilityService.GESTURE_SWIPE_RIGHT);
+ return mListener.onGestureCompleted(
+ new AccessibilityGestureInfo(AccessibilityService.GESTURE_SWIPE_RIGHT,
+ displayId));
case UP:
- return mListener.onGestureCompleted(AccessibilityService.GESTURE_SWIPE_UP);
+ return mListener.onGestureCompleted(
+ new AccessibilityGestureInfo(AccessibilityService.GESTURE_SWIPE_UP,
+ displayId));
case DOWN:
- return mListener.onGestureCompleted(AccessibilityService.GESTURE_SWIPE_DOWN);
+ return mListener.onGestureCompleted(
+ new AccessibilityGestureInfo(AccessibilityService.GESTURE_SWIPE_DOWN,
+ displayId));
default:
// Do nothing.
}
@@ -596,7 +599,8 @@
int segmentDirection0 = toDirection(dX0, dY0);
int segmentDirection1 = toDirection(dX1, dY1);
int gestureId = DIRECTIONS_TO_GESTURE_ID[segmentDirection0][segmentDirection1];
- return mListener.onGestureCompleted(gestureId);
+ return mListener.onGestureCompleted(
+ new AccessibilityGestureInfo(gestureId, displayId));
}
// else if (path.size() < 2 || 3 < path.size()) then no gesture recognized.
return mListener.onGestureCancelled(event, policyFlags);
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 47f137c..7c0702a 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -27,6 +27,7 @@
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
import android.Manifest;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.IAccessibilityServiceClient;
@@ -814,11 +815,11 @@
}
- boolean onGesture(int gestureId) {
+ boolean onGesture(AccessibilityGestureInfo gestureInfo) {
synchronized (mLock) {
- boolean handled = notifyGestureLocked(gestureId, false);
+ boolean handled = notifyGestureLocked(gestureInfo, false);
if (!handled) {
- handled = notifyGestureLocked(gestureId, true);
+ handled = notifyGestureLocked(gestureInfo, true);
}
return handled;
}
@@ -1009,7 +1010,7 @@
}
}
- private boolean notifyGestureLocked(int gestureId, boolean isDefault) {
+ private boolean notifyGestureLocked(AccessibilityGestureInfo gestureInfo, boolean isDefault) {
// TODO: Now we are giving the gestures to the last enabled
// service that can handle them which is the last one
// in our list since we write the last enabled as the
@@ -1023,7 +1024,7 @@
for (int i = state.mBoundServices.size() - 1; i >= 0; i--) {
AccessibilityServiceConnection service = state.mBoundServices.get(i);
if (service.mRequestTouchExplorationMode && service.mIsDefault == isDefault) {
- service.notifyGesture(gestureId);
+ service.notifyGesture(gestureInfo);
return true;
}
}
diff --git a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
index 7920bbb..380e853 100644
--- a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
+++ b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
@@ -20,6 +20,7 @@
import static com.android.server.accessibility.TouchState.ALL_POINTER_ID_BITS;
+import android.accessibilityservice.AccessibilityGestureInfo;
import android.content.Context;
import android.graphics.Point;
import android.os.Handler;
@@ -356,14 +357,14 @@
}
@Override
- public boolean onGestureCompleted(int gestureId) {
+ public boolean onGestureCompleted(AccessibilityGestureInfo gestureInfo) {
if (!mState.isGestureDetecting()) {
return false;
}
endGestureDetection(true);
- mAms.onGesture(gestureId);
+ mAms.onGesture(gestureInfo);
return true;
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityGestureDetectorTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityGestureDetectorTest.java
index aad7230..cdcc338 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityGestureDetectorTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityGestureDetectorTest.java
@@ -16,6 +16,7 @@
package com.android.server.accessibility;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
@@ -174,6 +175,7 @@
}
// Check that correct gesture was recognized.
- verify(mResultListener).onGestureCompleted(gestureId);
+ verify(mResultListener).onGestureCompleted(
+ argThat(gestureInfo -> gestureInfo.getGestureId() == gestureId));
}
}