summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorJacky Kao <jackykao@google.com>2020-03-06 13:41:39 +0800
committerJacky Kao <jackykao@google.com>2020-03-12 07:56:57 +0800
commit0ad1f827334afe2d1544c0886993b11fef16a973 (patch)
tree59e2bcb5112870e2451a1b89b2c4854d4ce55859 /core/java/android
parent9a967db5750d62581c02038126e84dceacd240e6 (diff)
Throw IllegalArgumentException for takeScreenshot()
Throw IllegalArgumentException for non default display since it’s unsupported Bug: 150865445 Test: a11y CTS & unit tests Change-Id: Iac0602e444d23b28ea05d29dd4605c7a821b641a
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/accessibilityservice/AccessibilityService.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 3a3eea966a86..e7036bb7f374 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -48,6 +48,7 @@ import android.util.Slog;
import android.util.SparseArray;
import android.view.Display;
import android.view.KeyEvent;
+import android.view.SurfaceControl;
import android.view.SurfaceView;
import android.view.WindowManager;
import android.view.WindowManagerImpl;
@@ -1937,8 +1938,8 @@ public abstract class AccessibilityService extends Service {
* to declare the capability to take screenshot by setting the
* {@link android.R.styleable#AccessibilityService_canTakeScreenshot}
* property in its meta-data. For details refer to {@link #SERVICE_META_DATA}.
- * Besides, This API is only supported for default display now
- * {@link Display#DEFAULT_DISPLAY}.
+ * This API only will support {@link Display#DEFAULT_DISPLAY} until {@link SurfaceControl}
+ * supports non-default displays.
* </p>
*
* @param displayId The logic display id, must be {@link Display#DEFAULT_DISPLAY} for
@@ -1948,11 +1949,17 @@ public abstract class AccessibilityService extends Service {
*
* @return {@code true} if the taking screenshot accepted, {@code false} if too little time
* has elapsed since the last screenshot, invalid display or internal errors.
+ * @throws IllegalArgumentException if displayId is not {@link Display#DEFAULT_DISPLAY}.
*/
public boolean takeScreenshot(int displayId, @NonNull @CallbackExecutor Executor executor,
@NonNull Consumer<ScreenshotResult> callback) {
Preconditions.checkNotNull(executor, "executor cannot be null");
Preconditions.checkNotNull(callback, "callback cannot be null");
+
+ if (displayId != Display.DEFAULT_DISPLAY) {
+ throw new IllegalArgumentException("DisplayId isn't the default display");
+ }
+
final IAccessibilityServiceConnection connection =
AccessibilityInteractionClient.getInstance().getConnection(
mConnectionId);