From 7d6fd76b5f488ce0adb48312099f50aecef415b3 Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Tue, 20 Jun 2023 19:53:56 +0200 Subject: [PATCH] [android] prevent interaction with place page on closing Signed-off-by: Arnaud Vergnet --- .../widget/placepage/PlacePageController.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/android/src/app/organicmaps/widget/placepage/PlacePageController.java b/android/src/app/organicmaps/widget/placepage/PlacePageController.java index 965eb2b617..d452367a87 100644 --- a/android/src/app/organicmaps/widget/placepage/PlacePageController.java +++ b/android/src/app/organicmaps/widget/placepage/PlacePageController.java @@ -205,8 +205,18 @@ public class PlacePageController extends Fragment implements return items; } + private void setPlacePageInteractions(boolean enabled) + { + // Prevent place page scrolling when playing the close animation + mPlacePageBehavior.setDraggable(enabled); + mPlacePage.setNestedScrollingEnabled(enabled); + // Prevent user interaction with place page content when closing + mPlacePageContainer.setEnabled(enabled); + } + private void close() { + setPlacePageInteractions(false); mPlacePageBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); } @@ -577,6 +587,7 @@ public class PlacePageController extends Fragment implements mMapObject = mapObject; if (mapObject != null) { + setPlacePageInteractions(true); // Only collapse the place page if the data is different from the one already available mShouldCollapse = PlacePageUtils.isHiddenState(mPlacePageBehavior.getState()) || !MapObject.same(mPreviousMapObject, mMapObject); mPreviousMapObject = mMapObject; @@ -586,7 +597,8 @@ public class PlacePageController extends Fragment implements mapObject, MapObject.isOfType(MapObject.API_POINT, mMapObject), !MapObject.isOfType(MapObject.MY_POSITION, mMapObject)); - } else + } + else close(); }