Skip to content

Commit ceacaa6

Browse files
paulfthomasafohrman
authored andcommittedSep 8, 2022
[BottomAppBar][Catalog][a11y] Improve focus handling
PiperOrigin-RevId: 471932710
1 parent bde2092 commit ceacaa6

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed
 

‎catalog/java/io/material/catalog/bottomappbar/BottomAppBarMainDemoFragment.java

+17-2
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@
2727
import android.view.MenuItem;
2828
import android.view.View;
2929
import android.view.ViewGroup;
30+
import android.view.accessibility.AccessibilityEvent;
3031
import androidx.annotation.LayoutRes;
3132
import androidx.annotation.NonNull;
3233
import androidx.annotation.Nullable;
3334
import androidx.coordinatorlayout.widget.CoordinatorLayout;
3435
import com.google.android.material.bottomappbar.BottomAppBar;
3536
import com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment;
3637
import com.google.android.material.bottomsheet.BottomSheetBehavior;
38+
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback;
3739
import com.google.android.material.button.MaterialButton;
3840
import com.google.android.material.button.MaterialButtonToggleGroup;
3941
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -53,6 +55,7 @@
5355
public class BottomAppBarMainDemoFragment extends DemoFragment implements OnBackPressedHandler {
5456

5557
protected BottomAppBar bar;
58+
protected View barNavView;
5659
protected CoordinatorLayout coordinatorLayout;
5760
protected FloatingActionButton fab;
5861

@@ -100,6 +103,7 @@ public View onCreateDemoView(
100103
coordinatorLayout = view.findViewById(R.id.coordinator_layout);
101104
bar = view.findViewById(R.id.bar);
102105
((AppCompatActivity) getActivity()).setSupportActionBar(bar);
106+
barNavView = bar.getChildAt(0);
103107

104108
setUpBottomDrawer(view);
105109

@@ -151,6 +155,18 @@ private void setUpDemoControls(@NonNull View view) {
151155
@Override
152156
public boolean onBackPressed() {
153157
if (bottomDrawerBehavior.getState() != BottomSheetBehavior.STATE_HIDDEN) {
158+
bottomDrawerBehavior.addBottomSheetCallback(
159+
new BottomSheetCallback() {
160+
@Override
161+
public void onStateChanged(@NonNull View bottomSheet, int newState) {
162+
if (newState == BottomSheetBehavior.STATE_HIDDEN) {
163+
barNavView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
164+
}
165+
}
166+
167+
@Override
168+
public void onSlide(@NonNull View bottomSheet, float slideOffset) {}
169+
});
154170
bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
155171
return true;
156172
}
@@ -187,12 +203,11 @@ private void setUpBottomAppBarShapeAppearance() {
187203
protected void setUpBottomDrawer(View view) {
188204
View bottomDrawer = coordinatorLayout.findViewById(R.id.bottom_drawer);
189205
bottomDrawerBehavior = BottomSheetBehavior.from(bottomDrawer);
206+
bottomDrawerBehavior.setUpdateImportantForAccessibilityOnSiblings(true);
190207
bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
191208

192209
bar.setNavigationOnClickListener(
193210
v -> bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HALF_EXPANDED));
194-
bar.setNavigationIcon(R.drawable.ic_drawer_menu_24px);
195-
bar.replaceMenu(R.menu.demo_primary);
196211
}
197212

198213
private void showSnackbar(CharSequence text) {

0 commit comments

Comments
 (0)
Please sign in to comment.