@Override public void dispatch(OverviewEvent event) { detachOverview(); overview.clear(); if (map == null) { pendingOverview = event; return; } for (HumProxy hum : event.hums) { PointProxy point = hum.getPoint(); HumProxy.Level level = hum.getLevel(); if (point == null || level == null) { continue; } MarkerOptions opts = new MarkerOptions.Builder(LatLng.newInstance(point.getLat(), point.getLng())) .icon(levelHelper.icon(level)) .shadow(shadowBuilder.getShadow()) .animation(Animation.DROP) .draggable(false) .clickable(false) .build(); Marker marker = Marker.newInstance(opts); overview.add(marker); } detachCurrentHum(); attachOverview(); }
private Marker buildMarkerForCurrentHum(PointProxy point) { MarkerOptions opts = new MarkerOptions.Builder(LatLng.newInstance(point.getLat(), point.getLng())) .icon(levelHelper.icon(HumProxy.Level.HIGH)) .shadow(shadowBuilder.getShadow()) // .shape(red.getShape()) .animation(Animation.DROP) .draggable(true) .build(); Marker marker = Marker.newInstance(opts); addDragendListener(marker, firePositionChange); return marker; }
private void putPin(PointProxy point) { if (point == null) { detachCurrentHum(); return; } if (currentHum == null) { currentHum = buildMarkerForCurrentHum(point); if (pendingLevel != null) { dispatch(pendingLevel); pendingLevel = null; } } else { currentHum.setPosition(LatLng.newInstance(point.getLat(), point.getLng())); } attachCurrentHum(); }