1 /* 2 * Copyright 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.view.accessibility; 18 19 import android.accessibilityservice.AccessibilityService; 20 import android.accessibilityservice.AccessibilityServiceInfo; 21 import android.accessibilityservice.IAccessibilityServiceConnection; 22 import android.accessibilityservice.IBrailleDisplayController; 23 import android.accessibilityservice.MagnificationConfig; 24 import android.annotation.EnforcePermission; 25 import android.annotation.NonNull; 26 import android.annotation.RequiresNoPermission; 27 import android.content.pm.ParceledListSlice; 28 import android.graphics.Region; 29 import android.hardware.usb.UsbDevice; 30 import android.os.Bundle; 31 import android.os.IBinder; 32 import android.os.RemoteCallback; 33 import android.os.RemoteException; 34 import android.view.SurfaceControl; 35 import android.window.ScreenCapture; 36 37 import java.util.Collections; 38 import java.util.List; 39 40 /** 41 * Stub implementation of IAccessibilityServiceConnection so each test doesn't need to implement 42 * all of the methods 43 */ 44 public class AccessibilityServiceConnectionImpl extends IAccessibilityServiceConnection.Stub { setServiceInfo(AccessibilityServiceInfo info)45 public void setServiceInfo(AccessibilityServiceInfo info) {} 46 setAttributionTag(String attributionTag)47 public void setAttributionTag(String attributionTag) {} 48 findAccessibilityNodeInfoByAccessibilityId(int accessibilityWindowId, long accessibilityNodeId, int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags, long threadId, Bundle arguments)49 public String[] findAccessibilityNodeInfoByAccessibilityId(int accessibilityWindowId, 50 long accessibilityNodeId, int interactionId, 51 IAccessibilityInteractionConnectionCallback callback, int flags, long threadId, 52 Bundle arguments) { 53 return null; 54 } 55 findAccessibilityNodeInfosByText(int accessibilityWindowId, long accessibilityNodeId, String text, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)56 public String[] findAccessibilityNodeInfosByText(int accessibilityWindowId, 57 long accessibilityNodeId, String text, int interactionId, 58 IAccessibilityInteractionConnectionCallback callback, long threadId) { 59 return null; 60 } 61 findAccessibilityNodeInfosByViewId(int accessibilityWindowId, long accessibilityNodeId, String viewId, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)62 public String[] findAccessibilityNodeInfosByViewId(int accessibilityWindowId, 63 long accessibilityNodeId, String viewId, int interactionId, 64 IAccessibilityInteractionConnectionCallback callback, long threadId) { 65 return null; 66 } 67 findFocus(int accessibilityWindowId, long accessibilityNodeId, int focusType, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)68 public String[] findFocus(int accessibilityWindowId, long accessibilityNodeId, int focusType, 69 int interactionId, IAccessibilityInteractionConnectionCallback callback, 70 long threadId) { 71 return null; 72 } 73 focusSearch(int accessibilityWindowId, long accessibilityNodeId, int direction, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)74 public String[] focusSearch(int accessibilityWindowId, long accessibilityNodeId, int direction, 75 int interactionId, IAccessibilityInteractionConnectionCallback callback, 76 long threadId) { 77 return null; 78 } 79 performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId, int action, Bundle arguments, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)80 public boolean performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId, 81 int action, Bundle arguments, int interactionId, 82 IAccessibilityInteractionConnectionCallback callback, long threadId) { 83 return false; 84 } 85 getWindow(int windowId)86 public AccessibilityWindowInfo getWindow(int windowId) { 87 return null; 88 } 89 getWindows()90 public AccessibilityWindowInfo.WindowListSparseArray getWindows() { 91 return null; 92 } 93 getServiceInfo()94 public AccessibilityServiceInfo getServiceInfo() { 95 return null; 96 } 97 performGlobalAction(int action)98 public boolean performGlobalAction(int action) { 99 return false; 100 } 101 getSystemActions()102 public List<AccessibilityNodeInfo.AccessibilityAction> getSystemActions() { 103 return Collections.emptyList(); 104 } 105 disableSelf()106 public void disableSelf() {} 107 setOnKeyEventResult(boolean handled, int sequence)108 public void setOnKeyEventResult(boolean handled, int sequence) {} 109 getMagnificationConfig(int displayId)110 public MagnificationConfig getMagnificationConfig(int displayId) { 111 return null; 112 } 113 getMagnificationScale(int displayId)114 public float getMagnificationScale(int displayId) { 115 return 0.0f; 116 } 117 getMagnificationCenterX(int displayId)118 public float getMagnificationCenterX(int displayId) { 119 return 0.0f; 120 } 121 getMagnificationCenterY(int displayId)122 public float getMagnificationCenterY(int displayId) { 123 return 0.0f; 124 } 125 getMagnificationRegion(int displayId)126 public Region getMagnificationRegion(int displayId) { 127 return null; 128 } 129 getCurrentMagnificationRegion(int displayId)130 public Region getCurrentMagnificationRegion(int displayId) { 131 return null; 132 } 133 resetMagnification(int displayId, boolean animate)134 public boolean resetMagnification(int displayId, boolean animate) { 135 return false; 136 } 137 resetCurrentMagnification(int displayId, boolean animate)138 public boolean resetCurrentMagnification(int displayId, boolean animate) { 139 return false; 140 } 141 setMagnificationConfig(int displayId, @NonNull MagnificationConfig config, boolean animate)142 public boolean setMagnificationConfig(int displayId, 143 @NonNull MagnificationConfig config, boolean animate) { 144 return false; 145 } 146 setMagnificationCallbackEnabled(int displayId, boolean enabled)147 public void setMagnificationCallbackEnabled(int displayId, boolean enabled) {} 148 setSoftKeyboardShowMode(int showMode)149 public boolean setSoftKeyboardShowMode(int showMode) { 150 return false; 151 } 152 getSoftKeyboardShowMode()153 public int getSoftKeyboardShowMode() { 154 return 0; 155 } 156 setSoftKeyboardCallbackEnabled(boolean enabled)157 public void setSoftKeyboardCallbackEnabled(boolean enabled) {} 158 switchToInputMethod(String imeId)159 public boolean switchToInputMethod(String imeId) { 160 return false; 161 } 162 setInputMethodEnabled(String imeId, boolean enabled)163 public int setInputMethodEnabled(String imeId, boolean enabled) { 164 return AccessibilityService.SoftKeyboardController.ENABLE_IME_FAIL_UNKNOWN; 165 } 166 isAccessibilityButtonAvailable()167 public boolean isAccessibilityButtonAvailable() { 168 return false; 169 } 170 sendGesture(int sequence, ParceledListSlice gestureSteps)171 public void sendGesture(int sequence, ParceledListSlice gestureSteps) {} 172 dispatchGesture(int sequence, ParceledListSlice gestureSteps, int displayId)173 public void dispatchGesture(int sequence, ParceledListSlice gestureSteps, int displayId) {} 174 isFingerprintGestureDetectionAvailable()175 public boolean isFingerprintGestureDetectionAvailable() { 176 return false; 177 } 178 getOverlayWindowToken(int displayId)179 public IBinder getOverlayWindowToken(int displayId) { 180 return null; 181 } 182 getWindowIdForLeashToken(IBinder token)183 public int getWindowIdForLeashToken(IBinder token) { 184 return -1; 185 } 186 takeScreenshot(int displayId, RemoteCallback callback)187 public void takeScreenshot(int displayId, RemoteCallback callback) {} 188 takeScreenshotOfWindow(int accessibilityWindowId, int interactionId, ScreenCapture.ScreenCaptureListener listener, IAccessibilityInteractionConnectionCallback callback)189 public void takeScreenshotOfWindow(int accessibilityWindowId, int interactionId, 190 ScreenCapture.ScreenCaptureListener listener, 191 IAccessibilityInteractionConnectionCallback callback) {} 192 setFocusAppearance(int strokeWidth, int color)193 public void setFocusAppearance(int strokeWidth, int color) {} 194 setCacheEnabled(boolean enabled)195 public void setCacheEnabled(boolean enabled) {} 196 logTrace(long timestamp, String where, String callingParams, int processId, long threadId, int callingUid, Bundle callingStack)197 public void logTrace(long timestamp, String where, String callingParams, int processId, 198 long threadId, int callingUid, Bundle callingStack) {} 199 setGestureDetectionPassthroughRegion(int displayId, Region region)200 public void setGestureDetectionPassthroughRegion(int displayId, Region region) {} 201 setTouchExplorationPassthroughRegion(int displayId, Region region)202 public void setTouchExplorationPassthroughRegion(int displayId, Region region) {} 203 setServiceDetectsGesturesEnabled(int displayId, boolean mode)204 public void setServiceDetectsGesturesEnabled(int displayId, boolean mode) {} 205 requestTouchExploration(int displayId)206 public void requestTouchExploration(int displayId) {} 207 requestDragging(int displayId, int pointerId)208 public void requestDragging(int displayId, int pointerId) {} 209 requestDelegating(int displayId)210 public void requestDelegating(int displayId) {} 211 onDoubleTap(int displayId)212 public void onDoubleTap(int displayId) {} 213 onDoubleTapAndHold(int displayId)214 public void onDoubleTapAndHold(int displayId) {} 215 logTrace(long timestamp, String where, long loggingTypes, String callingParams, int processId, long threadId, int callingUid, Bundle serializedCallingStackInBundle)216 public void logTrace(long timestamp, String where, long loggingTypes, String callingParams, 217 int processId, long threadId, int callingUid, Bundle serializedCallingStackInBundle) {} 218 setAnimationScale(float scale)219 public void setAnimationScale(float scale) {} 220 221 @RequiresNoPermission 222 @Override setInstalledAndEnabledServices(List<AccessibilityServiceInfo> infos)223 public void setInstalledAndEnabledServices(List<AccessibilityServiceInfo> infos) 224 throws RemoteException { 225 } 226 227 @RequiresNoPermission 228 @Override getInstalledAndEnabledServices()229 public List<AccessibilityServiceInfo> getInstalledAndEnabledServices() throws RemoteException { 230 return null; 231 } 232 233 @RequiresNoPermission 234 @Override attachAccessibilityOverlayToDisplay( int interactionId, int displayId, SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback)235 public void attachAccessibilityOverlayToDisplay( 236 int interactionId, 237 int displayId, 238 SurfaceControl sc, 239 IAccessibilityInteractionConnectionCallback callback) {} 240 241 @RequiresNoPermission 242 @Override attachAccessibilityOverlayToWindow( int interactionId, int accessibilityWindowId, SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback)243 public void attachAccessibilityOverlayToWindow( 244 int interactionId, 245 int accessibilityWindowId, 246 SurfaceControl sc, 247 IAccessibilityInteractionConnectionCallback callback) {} 248 249 @EnforcePermission(android.Manifest.permission.BLUETOOTH_CONNECT) 250 @Override connectBluetoothBrailleDisplay( String bluetoothAddress, IBrailleDisplayController controller)251 public void connectBluetoothBrailleDisplay( 252 String bluetoothAddress, IBrailleDisplayController controller) { 253 connectBluetoothBrailleDisplay_enforcePermission(); 254 } 255 256 @RequiresNoPermission 257 @Override connectUsbBrailleDisplay( UsbDevice usbDevice, IBrailleDisplayController controller)258 public void connectUsbBrailleDisplay( 259 UsbDevice usbDevice, IBrailleDisplayController controller) {} 260 261 @EnforcePermission(android.Manifest.permission.MANAGE_ACCESSIBILITY) 262 @Override setTestBrailleDisplayData(List<Bundle> brailleDisplays)263 public void setTestBrailleDisplayData(List<Bundle> brailleDisplays) { 264 setTestBrailleDisplayData_enforcePermission(); 265 } 266 } 267