From ad119d9a78f5c300818b4fe76453bf6bb2cc722c Mon Sep 17 00:00:00 2001 From: Jacky Kao Date: Thu, 17 Dec 2020 09:33:33 +0800 Subject: [PATCH] Keep changed focus data after service disable Since in reality only one service at a time (and maybe ever) will care about these focus data, letting services change these parameters and leaving it alone even that service is disable. Bug: 175732114 Test: a11y CTS & unit tests Change-Id: Ic1f9d29c35ebccbabb6b35b9f113920b992af0df --- .../accessibilityservice/AccessibilityService.java | 4 ++++ .../AccessibilityServiceConnection.java | 4 ---- .../server/accessibility/AccessibilityUserState.java | 12 ++---------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index 8e50184c96e0b..1fa7fa2b744f3 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -2120,6 +2120,10 @@ public abstract class AccessibilityService extends Service { /** * Sets the strokeWidth and color of the accessibility focus rectangle. + *

+ * Note: This setting persists until this or another active + * AccessibilityService changes it or the device reboots. + *

* * @param strokeWidth The stroke width of the rectangle in pixels. * Setting this value to zero results in no focus rectangle being drawn. diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java index 5d67992316a24..2626654aabf24 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java @@ -120,8 +120,6 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect AccessibilityUserState userState = mUserStateWeakReference.get(); if (userState == null) return; userState.removeServiceLocked(this); - userState.resetFocusAppearanceLocked(); - mSystemSupport.onClientChangeLocked(false); mSystemSupport.getFullScreenMagnificationController().resetAllIfNeeded(mId); mActivityTaskManagerService.setAllowAppSwitches(mComponentName.flattenToString(), -1, userState.mUserId); @@ -146,7 +144,6 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect } finally { Binder.restoreCallingIdentity(identity); } - userState.resetFocusAppearanceLocked(); mSystemSupport.onClientChangeLocked(false); } } @@ -313,7 +310,6 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect AccessibilityUserState userState = mUserStateWeakReference.get(); if (userState != null) { userState.serviceDisconnectedLocked(this); - userState.resetFocusAppearanceLocked(); } resetLocked(); mSystemSupport.getFullScreenMagnificationController().resetAllIfNeeded(mId); diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java index 90e2fdfa2f033..22efd3718d7a8 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java @@ -194,7 +194,8 @@ class AccessibilityUserState { mUserNonInteractiveUiTimeout = 0; mUserInteractiveUiTimeout = 0; mMagnificationMode = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; - resetFocusAppearanceLocked(); + mFocusStrokeWidth = mFocusStrokeWidthDefaultValue; + mFocusColor = mFocusColorDefaultValue; } void addServiceLocked(AccessibilityServiceConnection serviceConnection) { @@ -924,13 +925,4 @@ class AccessibilityUserState { mFocusStrokeWidth = strokeWidth; mFocusColor = color; } - - /** - * Resets the stroke width and color of the focus rectangle to the default value. - * - */ - public void resetFocusAppearanceLocked() { - mFocusStrokeWidth = mFocusStrokeWidthDefaultValue; - mFocusColor = mFocusColorDefaultValue; - } }