[android] Added scroll reset for main menu bottom sheet when it's closed

This commit is contained in:
Александр Зацепин 2020-04-21 16:40:02 +03:00 committed by yoksnod
parent 17577b105f
commit d1f74a9b83
4 changed files with 15 additions and 5 deletions

View file

@ -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();
}
}

View file

@ -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));

View file

@ -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<BottomSheetItem>

View file

@ -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<View>
public interface MenuRenderer extends Initializable<View>, Hideable
{
void render();
}