From f564afa4cd17ba4b259e2b1ee01f061d12fd0fe2 Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Mon, 1 Feb 2016 17:01:44 -0800 Subject: [PATCH] Clean up UiAutomation working alongside a11y. Fix two bugs: one where Instrumentation did not properly handle destroyed UiAutomations, another where UiAutomation did not properly disable running accessibility services. Change-Id: I1773dbd373f4d5b0e7c9917ff18d8d9b1a0e07c7 (cherry picked from commit 846522cea043d3113b3b96daa8f3a1b70e3beb5e) --- core/java/android/app/Instrumentation.java | 9 +++------ .../accessibility/AccessibilityManagerService.java | 3 +-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java index 9a88f2c67697c..33fd1dbda63db 100644 --- a/core/java/android/app/Instrumentation.java +++ b/core/java/android/app/Instrumentation.java @@ -1842,13 +1842,10 @@ public class Instrumentation { * @see UiAutomation */ public UiAutomation getUiAutomation() { - if (mUiAutomationConnection != null) { - if (mUiAutomation == null) { - return getUiAutomation(0); - } - return mUiAutomation; + if ((mUiAutomation == null) || (mUiAutomation.isDestroyed())) { + return getUiAutomation(0); } - return null; + return mUiAutomation; } /** diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 53504cc2f6c64..e33e52ff1dda3 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -52,7 +52,6 @@ import android.net.Uri; import android.os.Binder; import android.os.Build; import android.os.Bundle; -import android.os.Debug; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -650,7 +649,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { userState.mUiAutomationFlags = flags; userState.mIsAccessibilityEnabled = true; userState.mInstalledServices.add(accessibilityServiceInfo); - if (userState.isUiAutomationSuppressingOtherServices()) { + if ((flags & UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES) == 0) { // Set the temporary state. userState.mIsTouchExplorationEnabled = false; userState.mIsEnhancedWebAccessibilityEnabled = false;