Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c09575bb authored by Ameer Armaly's avatar Ameer Armaly Committed by Android (Google) Code Review
Browse files

Merge "Permission-annotate IAccessibilityInteractionConnectionCallback" into main

parents f69a7bbe 774dc6d7
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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;
@@ -1190,6 +1191,8 @@ public final class AccessibilityInteractionClient
    /**
     * {@inheritDoc}
     */
    @Override
    @RequiresNoPermission
    public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info,
                int interactionId) {
        synchronized (mInstanceLock) {
@@ -1231,6 +1234,8 @@ public final class AccessibilityInteractionClient
    /**
     * {@inheritDoc}
     */
    @Override
    @RequiresNoPermission
    public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos,
                int interactionId) {
        synchronized (mInstanceLock) {
@@ -1260,6 +1265,7 @@ public final class AccessibilityInteractionClient
     * {@inheritDoc}
     */
    @Override
    @RequiresNoPermission
    public void setPrefetchAccessibilityNodeInfoResult(@NonNull List<AccessibilityNodeInfo> infos,
                                                       int interactionId) {
        int interactionIdWaitingForPrefetchResultCopy = -1;
@@ -1324,6 +1330,8 @@ public final class AccessibilityInteractionClient
    /**
     * {@inheritDoc}
     */
    @Override
    @RequiresNoPermission
    public void setPerformAccessibilityActionResult(boolean succeeded, int interactionId) {
        synchronized (mInstanceLock) {
            if (interactionId > mInteractionId) {
@@ -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) {
@@ -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()) {
+6 −0
Original line number Diff line number Diff line
@@ -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);

    /**
@@ -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);

@@ -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);

@@ -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);
}
+7 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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";
@@ -97,6 +97,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection
    }

    @Override
    @RequiresNoPermission
    public void setFindAccessibilityNodeInfoResult(AccessibilityNodeInfo info, int interactionId) {
        synchronized (mLock) {
            if (interactionId == mInteractionId) {
@@ -114,6 +115,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection
    }

    @Override
    @RequiresNoPermission
    public void setFindAccessibilityNodeInfosResult(List<AccessibilityNodeInfo> infos,
            int interactionId) {
        synchronized (mLock) {
@@ -132,6 +134,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection
    }

    @Override
    @RequiresNoPermission
    public void setPrefetchAccessibilityNodeInfoResult(List<AccessibilityNodeInfo> infos,
                                                       int interactionId)
            throws RemoteException {
@@ -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.
@@ -170,6 +174,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection
    }

    @Override
    @RequiresNoPermission
    public void sendTakeScreenshotOfWindowError(int errorCode, int interactionId)
            throws RemoteException {
        mServiceCallback.sendTakeScreenshotOfWindowError(errorCode, interactionId);
@@ -285,6 +290,7 @@ public class ActionReplacingCallback extends IAccessibilityInteractionConnection
    }

    @Override
    @RequiresNoPermission
    public void sendAttachOverlayResult(
            @AccessibilityService.AttachOverlayResult int result, int interactionId)
            throws RemoteException {