[android] Added place page view renderer interface to separate view data filling from the bottom sheet behavior logic

This commit is contained in:
Александр Зацепин 2020-02-26 18:39:51 +03:00 committed by yoksnod
parent 0380e2ba0a
commit 0226b0b931
4 changed files with 48 additions and 3 deletions

View file

@ -0,0 +1,28 @@
package com.mapswithme.maps.widget.placepage;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.mapswithme.maps.bookmarks.data.MapObject;
public class ElevationProfileViewRenderer implements PlacePageViewRenderer<MapObject>
{
@Override
public void render(@NonNull MapObject object)
{
// TODO: coming soon
}
@Override
public void initialize(@Nullable View view)
{
// TODO: coming soon
}
@Override
public void destroy()
{
// TODO: coming soon
}
}

View file

@ -188,6 +188,6 @@ class PlacePageControllerComposite implements PlacePageController<MapObject>
private static PlacePageController<MapObject> createSimplePlacePageController(
@NonNull PlacePageController.SlideListener listener)
{
return new SimplePlacePageController(listener);
return new SimplePlacePageController(listener, new ElevationProfileViewRenderer());
}
}

View file

@ -0,0 +1,11 @@
package com.mapswithme.maps.widget.placepage;
import android.view.View;
import androidx.annotation.NonNull;
import com.mapswithme.maps.base.Initializable;
public interface PlacePageViewRenderer<Data> extends Initializable<View>
{
void render(@NonNull Data data);
}

View file

@ -31,6 +31,8 @@ public class SimplePlacePageController implements PlacePageController<MapObject>
@Nullable
private MapObject mMapObject;
@NonNull
private final PlacePageViewRenderer<MapObject> mViewRenderer;
@NonNull
private final BottomSheetChangedListener mBottomSheetChangedListener = new BottomSheetChangedListener()
{
@Override
@ -86,15 +88,18 @@ public class SimplePlacePageController implements PlacePageController<MapObject>
private boolean mDeactivateMapSelection = true;
SimplePlacePageController(@NonNull SlideListener slideListener)
SimplePlacePageController(@NonNull SlideListener slideListener,
@NonNull PlacePageViewRenderer<MapObject> renderer)
{
mSlideListener = slideListener;
mViewRenderer = renderer;
}
@Override
public void openFor(@NonNull MapObject object)
{
mMapObject = object;
mViewRenderer.render(mMapObject);
if (mSheetBehavior.getSkipCollapsed())
mSheetBehavior.setState(AnchorBottomSheetBehavior.STATE_EXPANDED);
else
@ -167,12 +172,13 @@ public class SimplePlacePageController implements PlacePageController<MapObject>
mViewPortMinWidth = mSheet.getResources().getDimensionPixelSize(R.dimen.viewport_min_width);
mSheetBehavior = AnchorBottomSheetBehavior.from(mSheet);
mSheetBehavior.addBottomSheetCallback(mSheetCallback);
mViewRenderer.initialize(mSheet);
}
@Override
public void destroy()
{
// Do nothing by default.
mViewRenderer.destroy();
}
@Override