forked from organicmaps/organicmaps
[android] Added place page view renderer interface to separate view data filling from the bottom sheet behavior logic
This commit is contained in:
parent
0380e2ba0a
commit
0226b0b931
4 changed files with 48 additions and 3 deletions
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue