[android] #3276 - View Marker click listener integration

This commit is contained in:
Tobrun
2016-05-09 10:03:45 +02:00
parent d8dfc921b4
commit 69ae499a88
2 changed files with 44 additions and 5 deletions

View File

@@ -71,6 +71,7 @@ public class MapboxMap {
private MapboxMap.InfoWindowAdapter mInfoWindowAdapter;
private MapboxMap.MarkerViewAdapter mMarkerViewAdapter;
private OnMarkerViewClickListener mOnMarkerViewClickListener;
private boolean mMyLocationEnabled;
private boolean mAllowConcurrentMultipleInfoWindows;
@@ -648,12 +649,23 @@ public class MapboxMap {
}
List<Marker> inBoundsMarkers = result.getInBounds();
for (Marker marker : inBoundsMarkers) {
for (final Marker marker : inBoundsMarkers) {
convertView = viewSimplePool.acquire();
View adaptedView = mMarkerViewAdapter.getView(marker, convertView, mMapView);
mMarkerViews.append(marker.getId(), adaptedView);
if (convertView == null) {
mMapView.addView(adaptedView);
if(adaptedView!=null) {
adaptedView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mOnMarkerViewClickListener!=null){
mOnMarkerViewClickListener.onMarkerClick(marker, v);
}
}
});
mMarkerViews.append(marker.getId(), adaptedView);
if (convertView == null) {
mMapView.addView(adaptedView);
}
}
}
}
@@ -1185,6 +1197,14 @@ public class MapboxMap {
return mMarkerViewAdapter;
}
public void setOnMarkerViewClickListener(@Nullable OnMarkerViewClickListener listener){
mOnMarkerViewClickListener = listener;
}
public OnMarkerViewClickListener getOnMarkerViewClickListener() {
return mOnMarkerViewClickListener;
}
//
// InfoWindow
//
@@ -1779,6 +1799,11 @@ public class MapboxMap {
View getView(@NonNull U marker, @Nullable View convertView, @NonNull ViewGroup parent);
}
public interface OnMarkerViewClickListener{
void onMarkerClick(@NonNull Marker marker, @NonNull View view);
}
/**
* Interface definition for a callback to be invoked when the the My Location view changes location.
*