diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index d8859e3bc06ee..324ba77bde34b 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -451,14 +451,18 @@ public final class AccessibilityManager { final boolean touchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; synchronized (mHandler) { + final boolean wasEnabled = mIsEnabled; + final boolean wasTouchExplorationEnabled = mIsTouchExplorationEnabled; + + // Ensure listeners get current state from isZzzEnabled() calls. mIsEnabled = enabled; mIsTouchExplorationEnabled = touchExplorationEnabled; - if (enabled != mIsEnabled) { + if (wasEnabled != enabled) { notifyAccessibilityStateChangedLh(); } - if (touchExplorationEnabled != mIsTouchExplorationEnabled) { + if (wasTouchExplorationEnabled != touchExplorationEnabled) { notifyTouchExplorationStateChangedLh(); } }