Loading api/current.txt +10 −1 Original line number Diff line number Diff line Loading @@ -2810,6 +2810,14 @@ package android.accessibilityservice { 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(); Loading @@ -2824,7 +2832,8 @@ package android.accessibilityservice { 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(); api/test-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,14 @@ package android { } 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 { Loading core/java/android/accessibilityservice/AccessibilityGestureInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * 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; core/java/android/accessibilityservice/AccessibilityGestureInfo.java 0 → 100644 +155 −0 Original line number Diff line number Diff line /* * 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]; } }; } core/java/android/accessibilityservice/AccessibilityService.java +37 −10 Original line number Diff line number Diff line Loading @@ -381,7 +381,8 @@ public abstract class AccessibilityService extends Service { 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, Loading Loading @@ -514,17 +515,18 @@ public abstract class AccessibilityService extends Service { } /** * 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 Loading @@ -543,10 +545,35 @@ public abstract class AccessibilityService extends Service { * @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 Loading Loading @@ -1673,8 +1700,8 @@ public abstract class AccessibilityService extends Service { } @Override public boolean onGesture(int gestureId) { return AccessibilityService.this.onGesture(gestureId); public boolean onGesture(AccessibilityGestureInfo gestureInfo) { return AccessibilityService.this.onGesture(gestureInfo); } @Override Loading Loading @@ -1773,8 +1800,9 @@ public abstract class AccessibilityService extends Service { 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); } Loading Loading @@ -1887,8 +1915,7 @@ public abstract class AccessibilityService extends Service { case DO_ON_GESTURE: { if (mConnectionId != AccessibilityInteractionClient.NO_ID) { final int gestureId = message.arg1; mCallback.onGesture(gestureId); mCallback.onGesture((AccessibilityGestureInfo) message.obj); } } return; Loading Loading
api/current.txt +10 −1 Original line number Diff line number Diff line Loading @@ -2810,6 +2810,14 @@ package android.accessibilityservice { 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(); Loading @@ -2824,7 +2832,8 @@ package android.accessibilityservice { 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();
api/test-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,14 @@ package android { } 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 { Loading
core/java/android/accessibilityservice/AccessibilityGestureInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * 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;
core/java/android/accessibilityservice/AccessibilityGestureInfo.java 0 → 100644 +155 −0 Original line number Diff line number Diff line /* * 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]; } }; }
core/java/android/accessibilityservice/AccessibilityService.java +37 −10 Original line number Diff line number Diff line Loading @@ -381,7 +381,8 @@ public abstract class AccessibilityService extends Service { 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, Loading Loading @@ -514,17 +515,18 @@ public abstract class AccessibilityService extends Service { } /** * 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 Loading @@ -543,10 +545,35 @@ public abstract class AccessibilityService extends Service { * @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 Loading Loading @@ -1673,8 +1700,8 @@ public abstract class AccessibilityService extends Service { } @Override public boolean onGesture(int gestureId) { return AccessibilityService.this.onGesture(gestureId); public boolean onGesture(AccessibilityGestureInfo gestureInfo) { return AccessibilityService.this.onGesture(gestureInfo); } @Override Loading Loading @@ -1773,8 +1800,9 @@ public abstract class AccessibilityService extends Service { 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); } Loading Loading @@ -1887,8 +1915,7 @@ public abstract class AccessibilityService extends Service { case DO_ON_GESTURE: { if (mConnectionId != AccessibilityInteractionClient.NO_ID) { final int gestureId = message.arg1; mCallback.onGesture(gestureId); mCallback.onGesture((AccessibilityGestureInfo) message.obj); } } return; Loading