diff --git a/android/src/com/mapswithme/maps/widget/placepage/BottomSheetPlacePageController.java b/android/src/com/mapswithme/maps/widget/placepage/BottomSheetPlacePageController.java index a739e0221c..5110d46477 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/BottomSheetPlacePageController.java +++ b/android/src/com/mapswithme/maps/widget/placepage/BottomSheetPlacePageController.java @@ -32,7 +32,8 @@ import com.trafi.anchorbottomsheetbehavior.AnchorBottomSheetBehavior; public class BottomSheetPlacePageController implements PlacePageController, LocationListener, View.OnLayoutChangeListener, BannerController.BannerDetailsRequester, - BannerController.BannerStateListener + BannerController.BannerStateListener, + PlacePageButtonsListener { private static final float ANCHOR_RATIO = 0.3f; private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC); @@ -201,7 +202,7 @@ public class BottomSheetPlacePageController implements PlacePageController, Loca mButtonsLayout = mActivity.findViewById(R.id.pp_buttons_layout); ViewGroup buttons = mButtonsLayout.findViewById(R.id.container); - mPlacePage.initButtons(buttons); + mPlacePage.initButtons(buttons, this); UiUtils.bringViewToFrontOf(mButtonsLayout, mPlacePage); UiUtils.bringViewToFrontOf(mActivity.findViewById(R.id.app_bar), mPlacePage); mPlacePageTracker = new PlacePageTracker(mPlacePage, mButtonsLayout); @@ -550,4 +551,13 @@ public class BottomSheetPlacePageController implements PlacePageController, Loca { mPlacePageTracker.onBannerPreview(ad); } + + @Override + public void onBookmarkSet(boolean isSet) + { + if (isSet) + mPlacePageBehavior.setState(AnchorBottomSheetBehavior.STATE_ANCHORED); + else + mPlacePageBehavior.setState(AnchorBottomSheetBehavior.STATE_COLLAPSED); + } } diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtonsListener.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtonsListener.java new file mode 100644 index 0000000000..e1ebb3dfa0 --- /dev/null +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtonsListener.java @@ -0,0 +1,6 @@ +package com.mapswithme.maps.widget.placepage; + +public interface PlacePageButtonsListener +{ + void onBookmarkSet(boolean isSet); +} diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java index 1560eef25e..9e783d3749 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java @@ -306,6 +306,10 @@ public class PlacePageView extends NestedScrollView } }; + @SuppressWarnings("NullableProblems") + @NonNull + private PlacePageButtonsListener mPlacePageButtonsListener; + void setScrollable(boolean scrollable) { mScrollable = scrollable; @@ -459,8 +463,9 @@ public class PlacePageView extends NestedScrollView initPlaceDescriptionView(); } - public void initButtons(@NonNull ViewGroup buttons) + public void initButtons(@NonNull ViewGroup buttons, @NonNull PlacePageButtonsListener listener) { + mPlacePageButtonsListener = listener; mButtons = new PlacePageButtons(this, buttons, new PlacePageButtons.ItemListener() { public void onPrepareVisibleView(@NonNull PlacePageButtons.PlacePageButton item, @@ -526,6 +531,7 @@ public class PlacePageView extends NestedScrollView Statistics.INSTANCE.trackEvent(Statistics.EventName.PP_BOOKMARK); AlohaHelper.logClick(AlohaHelper.PP_BOOKMARK); toggleIsBookmark(mMapObject); + mPlacePageButtonsListener.onBookmarkSet(mBookmarkSet); break; case SHARE: