Fix TB focus on blocked wallpaper preview pager
- Add BottomSheetBehavior callback to check it's collapsed/expanded state, disable previewpager's a11y param when expended
- Remove unused code and logic (related with NEW_SCROLL_INTERACTION)
video: https://drive.google.com/file/d/1G-N_I9QZZRqfDY-2uLvopxTtcT3xTI9d/view?usp=sharing
Bug: 160284173
Test: manually
Change-Id: I9db1ce80623420e32bdb3a03e8446b83a0995073
diff --git a/src/com/android/wallpaper/picker/CategoryFragment.java b/src/com/android/wallpaper/picker/CategoryFragment.java
index 9881bec..564d939 100755
--- a/src/com/android/wallpaper/picker/CategoryFragment.java
+++ b/src/com/android/wallpaper/picker/CategoryFragment.java
@@ -17,9 +17,9 @@
import static android.view.View.MeasureSpec.EXACTLY;
import static android.view.View.MeasureSpec.makeMeasureSpec;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED;
+import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED;
import android.app.Activity;
import android.app.WallpaperColors;
@@ -131,9 +131,6 @@
private static final String PERMISSION_READ_WALLPAPER_INTERNAL =
"android.permission.READ_WALLPAPER_INTERNAL";
- private static final boolean NEW_SCROLL_INTERACTION =
- IndividualPickerFragment.NEW_SCROLL_INTERACTION;
-
private ImageView mHomePreview;
private SurfaceView mWorkspaceSurface;
private WorkspaceSurfaceHolderCallback mWorkspaceSurfaceCallback;
@@ -245,30 +242,19 @@
ViewGroup fragmentContainer = view.findViewById(R.id.category_fragment_container);
mBottomSheetBehavior = BottomSheetBehavior.from(fragmentContainer);
- if (!NEW_SCROLL_INTERACTION) {
- fragmentContainer.getLayoutParams().height = MATCH_PARENT;
- mBottomSheetBehavior.setBottomSheetCallback(
- new BottomSheetBehavior.BottomSheetCallback() {
- @Override
- public void onStateChanged(@NonNull View bottomSheet, int newState) {
- if (mIsCollapsingByUserSelecting) {
- mIsCollapsingByUserSelecting = newState != STATE_COLLAPSED;
- return;
- }
+ mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
+ @Override
+ public void onStateChanged(@NonNull View bottomSheet, int newState) {
+ // Update preview pager's accessibility param since it will be blocked by the
+ // bottom sheet when expanded.
+ mPreviewPager.setImportantForAccessibility(newState == STATE_EXPANDED
+ ? View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
+ : View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+ }
- if (mIndividualPickerFragment != null
- && mIndividualPickerFragment.isVisible()) {
- mIndividualPickerFragment.resizeLayout(newState == STATE_COLLAPSED
- ? mBottomSheetBehavior.getPeekHeight() : MATCH_PARENT);
- }
- }
-
- @Override
- public void onSlide(@NonNull View bottomSheet, float slideOffset) {
-
- }
- });
- }
+ @Override
+ public void onSlide(@NonNull View bottomSheet, float slideOffset) {}
+ });
mRootContainer = view.findViewById(R.id.root_container);
fragmentContainer.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
diff --git a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
index f4809ce..53617f5 100755
--- a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
+++ b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
@@ -112,8 +112,6 @@
SetWallpaperErrorDialogFragment.Listener, SetWallpaperDialogFragment.Listener,
StartRotationDialogFragment.Listener {
- public static final boolean NEW_SCROLL_INTERACTION = true;
-
/**
* Position of a special tile that doesn't belong to an individual wallpaper of the category,
* such as "my photos" or "daily rotation".
@@ -454,14 +452,6 @@
}
@Override
- public void onDestroyView() {
- if (!NEW_SCROLL_INTERACTION) {
- updateThumbnail(null);
- }
- super.onDestroyView();
- }
-
- @Override
public void onClickTryAgain(@Destination int unused) {
if (mPendingSetIndividualHolder != null) {
mPendingSetIndividualHolder.setWallpaper();
@@ -1270,10 +1260,6 @@
(isWallpaperApplied && !hasUserSelectedWallpaper) || isWallpaperSelected);
holder.itemView.findViewById(R.id.check_circle).setVisibility(
isWallpaperApplied ? View.VISIBLE : View.GONE);
- if (!NEW_SCROLL_INTERACTION) {
- holder.itemView.findViewById(R.id.tile).setOnClickListener(
- view -> onWallpaperSelected(wallpaper, position));
- }
}
}