Fix A11y tools focus on blocked component 2/2
- Add a callback to BottomActionBar, let the registrant receive BottomActionBar's state and disable the a11y param when expended
video: https://drive.google.com/file/d/1T1w1bnAoQYvgpdSa7eYsFPOspjWV4hEP/view?usp=sharing
Bug: 157871987
Test: manually
Change-Id: I59666dde616c86d176d10bee0d1081358bb18959
diff --git a/src/com/android/wallpaper/picker/ImagePreviewFragment.java b/src/com/android/wallpaper/picker/ImagePreviewFragment.java
index 566cbaa..84bc95b 100755
--- a/src/com/android/wallpaper/picker/ImagePreviewFragment.java
+++ b/src/com/android/wallpaper/picker/ImagePreviewFragment.java
@@ -59,6 +59,7 @@
import com.android.wallpaper.util.SizeCalculator;
import com.android.wallpaper.util.WallpaperCropUtils;
import com.android.wallpaper.widget.BottomActionBar;
+import com.android.wallpaper.widget.BottomActionBar.AccessibilityCallback;
import com.android.wallpaper.widget.LockScreenOverlayUpdater;
import com.android.wallpaper.widget.WallpaperColorsLoader;
import com.android.wallpaper.widget.WallpaperInfoView;
@@ -244,6 +245,22 @@
);
mBottomActionBar.setActionSelectedListener(EDIT, this::setEditingEnabled);
mBottomActionBar.setActionClickListener(APPLY, this::onSetWallpaperClicked);
+
+ // Update target view's accessibility param since it will be blocked by the bottom sheet
+ // when expanded.
+ mBottomActionBar.setAccessibilityCallback(new AccessibilityCallback() {
+ @Override
+ public void onBottomSheetCollapsed() {
+ mTabs.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+ }
+
+ @Override
+ public void onBottomSheetExpanded() {
+ mTabs.setImportantForAccessibility(
+ View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
+ }
+ });
+
// Will trigger onActionSelected callback to update the editing state.
mBottomActionBar.setDefaultSelectedButton(EDIT);
mBottomActionBar.show();