Merge "Keep changed focus data after service disable"
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 8e50184..1fa7fa2 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -2120,6 +2120,10 @@
 
     /**
      * Sets the strokeWidth and color of the accessibility focus rectangle.
+     * <p>
+     * <strong>Note:</strong> This setting persists until this or another active
+     * AccessibilityService changes it or the device reboots.
+     * </p>
      *
      * @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 5d67992..2626654 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 @@
         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 @@
                 } finally {
                     Binder.restoreCallingIdentity(identity);
                 }
-                userState.resetFocusAppearanceLocked();
                 mSystemSupport.onClientChangeLocked(false);
             }
         }
@@ -313,7 +310,6 @@
             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 90e2fdf..22efd37 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 @@
         mUserNonInteractiveUiTimeout = 0;
         mUserInteractiveUiTimeout = 0;
         mMagnificationMode = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
-        resetFocusAppearanceLocked();
+        mFocusStrokeWidth = mFocusStrokeWidthDefaultValue;
+        mFocusColor = mFocusColorDefaultValue;
     }
 
     void addServiceLocked(AccessibilityServiceConnection serviceConnection) {
@@ -924,13 +925,4 @@
         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;
-    }
 }