private void detachOverview() { if (!overviewAttached) { return; } for (Marker m : overview) { m.setMap(null); } overviewAttached = false; }
private void attachOverview() { if (overviewAttached) { return; } if (map == null) { return; } for (Marker m : overview) { m.setMap(map); } overviewAttached = true; }
@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(); }
@Override public void dispatch(LevelEvent event) { HumProxy.Level level = event.level; if (map == null || currentHum == null) { pendingLevel = event; return; } currentHum.setIcon(levelHelper.icon(level == null ? HumProxy.Level.HIGH : level)); }
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(); }
private void attachCurrentHum() { if (currentHum == null || currentHum.getMap() != null) { return; } currentHum.setMap(map); }
private void detachCurrentHum() { if (currentHum == null || currentHum.getMap() == null) { return; } currentHum.setMap(null); }