@@ -790,10 +790,23 @@ public TransitionState getCurrentTransitionState() {
790790 }
791791
792792 void setTransitionState (@ NonNull TransitionState state ) {
793+ setTransitionState (state , /* updateModalForAccessibility= */ true );
794+ }
795+
796+ private void setTransitionState (
797+ @ NonNull TransitionState state , boolean updateModalForAccessibility ) {
793798 if (currentTransitionState .equals (state )) {
794799 return ;
795800 }
796801
802+ if (updateModalForAccessibility ) {
803+ if (state == TransitionState .SHOWN ) {
804+ setModalForAccessibility (true );
805+ } else if (state == TransitionState .HIDDEN ) {
806+ setModalForAccessibility (false );
807+ }
808+ }
809+
797810 TransitionState previousState = currentTransitionState ;
798811 currentTransitionState = state ;
799812 Set <TransitionListener > listeners = new LinkedHashSet <>(transitionListeners );
@@ -830,7 +843,6 @@ public void show() {
830843 return ;
831844 }
832845 searchViewAnimationHelper .show ();
833- setModalForAccessibility (true );
834846 }
835847
836848 /**
@@ -845,18 +857,16 @@ public void hide() {
845857 return ;
846858 }
847859 searchViewAnimationHelper .hide ();
848- setModalForAccessibility (false );
849860 }
850861
851862 /** Updates the visibility of the {@link SearchView} without an animation. */
852863 public void setVisible (boolean visible ) {
853864 boolean wasVisible = rootView .getVisibility () == VISIBLE ;
854865 rootView .setVisibility (visible ? VISIBLE : GONE );
855866 updateNavigationIconProgressIfNeeded ();
856- if (wasVisible != visible ) {
857- setModalForAccessibility (visible );
858- }
859- setTransitionState (visible ? TransitionState .SHOWN : TransitionState .HIDDEN );
867+ setTransitionState (
868+ visible ? TransitionState .SHOWN : TransitionState .HIDDEN ,
869+ /* updateModalForAccessibility= */ wasVisible != visible );
860870 }
861871
862872 private void updateNavigationIconProgressIfNeeded () {
0 commit comments