Clearing accessibility focus of a view did not update the global state.

1. The code in clear accessibility focus was not updaing the global
   accessibility focus reference in view root if the view not a
   descendant has accessibility focus.

bug:6382856

Change-Id: I0c99578b5afd1f1f5d0df5bba05b0a03b5951a43
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 832d575..a74a0ef 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6196,23 +6196,23 @@
      * @hide
      */
     public void clearAccessibilityFocus() {
-        ViewRootImpl viewRootImpl = getViewRootImpl();
-        if (viewRootImpl != null) {
-            View focusHost = viewRootImpl.getAccessibilityFocusedHost();
-            if (focusHost != null && focusHost != this
-                    && ViewRootImpl.isViewDescendantOf(focusHost, this)) {
-                viewRootImpl.setAccessibilityFocusedHost(null);
-            }
-        }
         if ((mPrivateFlags2 & ACCESSIBILITY_FOCUSED) != 0) {
             mPrivateFlags2 &= ~ACCESSIBILITY_FOCUSED;
             invalidate();
             sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
             notifyAccessibilityStateChanged();
-
             // Clear the text navigation state.
             setAccessibilityCursorPosition(-1);
         }
+        // Clear the global reference of accessibility focus if this
+        // view or any of its descendants had accessibility focus.
+        ViewRootImpl viewRootImpl = getViewRootImpl();
+        if (viewRootImpl != null) {
+            View focusHost = viewRootImpl.getAccessibilityFocusedHost();
+            if (focusHost != null && ViewRootImpl.isViewDescendantOf(focusHost, this)) {
+                viewRootImpl.setAccessibilityFocusedHost(null);
+            }
+        }
     }
 
     private void requestAccessibilityFocusFromHover() {