From d1f74a9b837f627acebb5e61850e01729dbed798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B0=D1=86=D0=B5=D0=BF=D0=B8=D0=BD?= Date: Tue, 21 Apr 2020 16:40:02 +0300 Subject: [PATCH] [android] Added scroll reset for main menu bottom sheet when it's closed --- android/src/com/mapswithme/maps/MwmActivity.java | 1 - .../maps/widget/menu/BottomSheetMenuController.java | 3 +-- .../maps/widget/menu/MainMenuRenderer.java | 13 ++++++++++++- .../mapswithme/maps/widget/menu/MenuRenderer.java | 3 ++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index c3cd00c296..ea51c47d8e 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -2670,7 +2670,6 @@ public class MwmActivity extends BaseMwmFragmentActivity if (getActivity().closeSidePanel()) return; - Toast.makeText(getActivity(), "Open bottom sheet menu!", Toast.LENGTH_SHORT).show(); getActivity().mMainMenuController.open(); } } diff --git a/android/src/com/mapswithme/maps/widget/menu/BottomSheetMenuController.java b/android/src/com/mapswithme/maps/widget/menu/BottomSheetMenuController.java index 48e0a3b8e7..5ecf72ffef 100644 --- a/android/src/com/mapswithme/maps/widget/menu/BottomSheetMenuController.java +++ b/android/src/com/mapswithme/maps/widget/menu/BottomSheetMenuController.java @@ -41,6 +41,7 @@ public class BottomSheetMenuController implements MenuController if (BottomSheetMenuUtils.isHiddenState(state)) { + mMenuRenderer.onHide(); mStateObserver.onMenuClosed(); return; } @@ -90,8 +91,6 @@ public class BottomSheetMenuController implements MenuController View sheet = view.findViewById(mSheetResId); Objects.requireNonNull(sheet); mSheetBehavior = BottomSheetBehavior.from(sheet); - // FIXME: bottom sheet should be hidden by default without this call. - mSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); mSheetBehavior.setBottomSheetCallback(mSheetCallback); GestureDetectorCompat gestureDetector = new GestureDetectorCompat( view.getContext(), new BottomSheetMenuGestureListener(mSheetBehavior)); diff --git a/android/src/com/mapswithme/maps/widget/menu/MainMenuRenderer.java b/android/src/com/mapswithme/maps/widget/menu/MainMenuRenderer.java index 4816fcba17..ceb43b6667 100644 --- a/android/src/com/mapswithme/maps/widget/menu/MainMenuRenderer.java +++ b/android/src/com/mapswithme/maps/widget/menu/MainMenuRenderer.java @@ -5,6 +5,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.widget.NestedScrollView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.mapswithme.maps.R; @@ -30,6 +31,9 @@ public class MainMenuRenderer implements MenuRenderer @SuppressWarnings("NullableProblems") @NonNull private TextView mDownloadMapsCounter; + @SuppressWarnings("NullableProblems") + @NonNull + private NestedScrollView mScrollView; MainMenuRenderer(@NonNull MainMenuOptionListener listener) { @@ -55,6 +59,7 @@ public class MainMenuRenderer implements MenuRenderer public void initialize(@Nullable View view) { Objects.requireNonNull(view); + mScrollView = (NestedScrollView) view; initLayersRecycler(view); TextView addPlace = view.findViewById(R.id.add_place); addPlace.setOnClickListener(v -> mListener.onAddPlaceOptionSelected()); @@ -95,7 +100,13 @@ public class MainMenuRenderer implements MenuRenderer @Override public void destroy() { - // TODO: Implement. + // Do nothing by default. + } + + @Override + public void onHide() + { + mScrollView.scrollTo(0, 0); } private abstract class DefaultClickListener implements OnItemClickListener diff --git a/android/src/com/mapswithme/maps/widget/menu/MenuRenderer.java b/android/src/com/mapswithme/maps/widget/menu/MenuRenderer.java index 0bd321bba0..16f27f6488 100644 --- a/android/src/com/mapswithme/maps/widget/menu/MenuRenderer.java +++ b/android/src/com/mapswithme/maps/widget/menu/MenuRenderer.java @@ -2,9 +2,10 @@ package com.mapswithme.maps.widget.menu; import android.view.View; +import com.mapswithme.maps.base.Hideable; import com.mapswithme.maps.base.Initializable; -public interface MenuRenderer extends Initializable +public interface MenuRenderer extends Initializable, Hideable { void render(); }