Loading core/java/android/view/accessibility/AccessibilityInteractionClient.java +10 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.accessibilityservice.IAccessibilityServiceConnection; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresNoPermission; import android.annotation.SuppressLint; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; Loading Loading @@ -1190,6 +1191,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1231,6 +1234,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1260,6 +1265,7 @@ public final class AccessibilityInteractionClient * {@inheritDoc} */ @Override @RequiresNoPermission public void setPrefetchAccessibilityNodeInfoResult(@NonNull List<AccessibilityNodeInfo> infos, int interactionId) { int interactionIdWaitingForPrefetchResultCopy = -1; Loading Loading @@ -1324,6 +1330,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setPerformAccessibilityActionResult(boolean succeeded, int interactionId) { synchronized (mInstanceLock) { if (interactionId > mInteractionId) { Loading Loading @@ -1372,6 +1380,7 @@ public final class AccessibilityInteractionClient * @param interactionId The interaction id of the request. */ @Override @RequiresNoPermission public void sendTakeScreenshotOfWindowError( @AccessibilityService.ScreenshotErrorCode int errorCode, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1729,6 +1738,7 @@ public final class AccessibilityInteractionClient * @param interactionId The interaction id of the request. */ @Override @RequiresNoPermission public void sendAttachOverlayResult( @AccessibilityService.AttachOverlayResult int result, int interactionId) { if (!Flags.a11yOverlayCallbacks()) { Loading core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setFindAccessibilityNodeInfoResult(in AccessibilityNodeInfo info, int interactionId); /** Loading @@ -43,6 +44,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setFindAccessibilityNodeInfosResult(in List<AccessibilityNodeInfo> infos, int interactionId); Loading @@ -52,6 +54,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param root The {@link AccessibilityNodeInfo} for which the prefetching is based off of. * @param infos The result {@link AccessibilityNodeInfo}s. */ @RequiresNoPermission void setPrefetchAccessibilityNodeInfoResult( in List<AccessibilityNodeInfo> infos, int interactionId); Loading @@ -62,15 +65,18 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setPerformAccessibilityActionResult(boolean succeeded, int interactionId); /** * Sends an error code for a window screenshot request to the requesting client. */ @RequiresNoPermission void sendTakeScreenshotOfWindowError(int errorCode, int interactionId); /** * Sends an result code for an attach overlay request to the requesting client. */ @RequiresNoPermission void sendAttachOverlayResult(int result, int interactionId); } services/accessibility/java/com/android/server/accessibility/ActionReplacingCallback.java +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.accessibility; import android.accessibilityservice.AccessibilityService; import android.annotation.RequiresNoPermission; import android.os.Binder; import android.os.RemoteException; import android.util.Slog; Loading @@ -34,7 +35,6 @@ import java.util.List; * If we are stripping and/or replacing the actions from a window, we need to intercept the * nodes heading back to the service and swap out the actions. */ @SuppressWarnings("MissingPermissionAnnotation") public class ActionReplacingCallback extends IAccessibilityInteractionConnectionCallback.Stub { private static final boolean DEBUG = false; private static final String LOG_TAG = "ActionReplacingCallback"; Loading Loading @@ -97,6 +97,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info, int interactionId) { synchronized (mLock) { if (interactionId == mInteractionId) { Loading @@ -114,6 +115,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos, int interactionId) { synchronized (mLock) { Loading @@ -132,6 +134,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setPrefetchAccessibilityNodeInfoResult(List<AccessibilityNodeInfo> infos, int interactionId) throws RemoteException { Loading Loading @@ -163,6 +166,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setPerformAccessibilityActionResult(boolean succeeded, int interactionId) throws RemoteException { // There's no reason to use this class when performing actions. Do something reasonable. Loading @@ -170,6 +174,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void sendTakeScreenshotOfWindowError(int errorCode, int interactionId) throws RemoteException { mServiceCallback.sendTakeScreenshotOfWindowError(errorCode, interactionId); Loading Loading @@ -285,6 +290,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void sendAttachOverlayResult( @AccessibilityService.AttachOverlayResult int result, int interactionId) throws RemoteException { Loading Loading
core/java/android/view/accessibility/AccessibilityInteractionClient.java +10 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.accessibilityservice.IAccessibilityServiceConnection; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresNoPermission; import android.annotation.SuppressLint; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; Loading Loading @@ -1190,6 +1191,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1231,6 +1234,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1260,6 +1265,7 @@ public final class AccessibilityInteractionClient * {@inheritDoc} */ @Override @RequiresNoPermission public void setPrefetchAccessibilityNodeInfoResult(@NonNull List<AccessibilityNodeInfo> infos, int interactionId) { int interactionIdWaitingForPrefetchResultCopy = -1; Loading Loading @@ -1324,6 +1330,8 @@ public final class AccessibilityInteractionClient /** * {@inheritDoc} */ @Override @RequiresNoPermission public void setPerformAccessibilityActionResult(boolean succeeded, int interactionId) { synchronized (mInstanceLock) { if (interactionId > mInteractionId) { Loading Loading @@ -1372,6 +1380,7 @@ public final class AccessibilityInteractionClient * @param interactionId The interaction id of the request. */ @Override @RequiresNoPermission public void sendTakeScreenshotOfWindowError( @AccessibilityService.ScreenshotErrorCode int errorCode, int interactionId) { synchronized (mInstanceLock) { Loading Loading @@ -1729,6 +1738,7 @@ public final class AccessibilityInteractionClient * @param interactionId The interaction id of the request. */ @Override @RequiresNoPermission public void sendAttachOverlayResult( @AccessibilityService.AttachOverlayResult int result, int interactionId) { if (!Flags.a11yOverlayCallbacks()) { Loading
core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setFindAccessibilityNodeInfoResult(in AccessibilityNodeInfo info, int interactionId); /** Loading @@ -43,6 +44,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setFindAccessibilityNodeInfosResult(in List<AccessibilityNodeInfo> infos, int interactionId); Loading @@ -52,6 +54,7 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param root The {@link AccessibilityNodeInfo} for which the prefetching is based off of. * @param infos The result {@link AccessibilityNodeInfo}s. */ @RequiresNoPermission void setPrefetchAccessibilityNodeInfoResult( in List<AccessibilityNodeInfo> infos, int interactionId); Loading @@ -62,15 +65,18 @@ oneway interface IAccessibilityInteractionConnectionCallback { * @param interactionId The interaction id to match the result with the request. */ @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) @RequiresNoPermission void setPerformAccessibilityActionResult(boolean succeeded, int interactionId); /** * Sends an error code for a window screenshot request to the requesting client. */ @RequiresNoPermission void sendTakeScreenshotOfWindowError(int errorCode, int interactionId); /** * Sends an result code for an attach overlay request to the requesting client. */ @RequiresNoPermission void sendAttachOverlayResult(int result, int interactionId); }
services/accessibility/java/com/android/server/accessibility/ActionReplacingCallback.java +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.accessibility; import android.accessibilityservice.AccessibilityService; import android.annotation.RequiresNoPermission; import android.os.Binder; import android.os.RemoteException; import android.util.Slog; Loading @@ -34,7 +35,6 @@ import java.util.List; * If we are stripping and/or replacing the actions from a window, we need to intercept the * nodes heading back to the service and swap out the actions. */ @SuppressWarnings("MissingPermissionAnnotation") public class ActionReplacingCallback extends IAccessibilityInteractionConnectionCallback.Stub { private static final boolean DEBUG = false; private static final String LOG_TAG = "ActionReplacingCallback"; Loading Loading @@ -97,6 +97,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info, int interactionId) { synchronized (mLock) { if (interactionId == mInteractionId) { Loading @@ -114,6 +115,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos, int interactionId) { synchronized (mLock) { Loading @@ -132,6 +134,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setPrefetchAccessibilityNodeInfoResult(List<AccessibilityNodeInfo> infos, int interactionId) throws RemoteException { Loading Loading @@ -163,6 +166,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void setPerformAccessibilityActionResult(boolean succeeded, int interactionId) throws RemoteException { // There's no reason to use this class when performing actions. Do something reasonable. Loading @@ -170,6 +174,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void sendTakeScreenshotOfWindowError(int errorCode, int interactionId) throws RemoteException { mServiceCallback.sendTakeScreenshotOfWindowError(errorCode, interactionId); Loading Loading @@ -285,6 +290,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection } @Override @RequiresNoPermission public void sendAttachOverlayResult( @AccessibilityService.AttachOverlayResult int result, int interactionId) throws RemoteException { Loading