Search in sources :

Example 1 with MapElement

use of io.jawg.osmcontributor.utils.core.MapElement in project osm-contributor by jawg.

the class MapFragmentPresenter method impacteLoadedNotes.

private void impacteLoadedNotes(List<Note> notes) {
    List<MapElement> mapElements = new ArrayList<>(notes.size());
    for (Note note : notes) {
        mapElements.add(note);
    }
    onLoaded(mapElements, LocationMarkerView.MarkerType.NOTE);
}
Also used : MapElement(io.jawg.osmcontributor.utils.core.MapElement) Note(io.jawg.osmcontributor.model.entities.Note) ArrayList(java.util.ArrayList)

Example 2 with MapElement

use of io.jawg.osmcontributor.utils.core.MapElement in project osm-contributor by jawg.

the class MapFragmentPresenter method impacteLoadedPoi.

private void impacteLoadedPoi(List<Poi> pois) {
    List<MapElement> mapElements = new ArrayList<>(pois.size());
    for (Poi poi : pois) {
        mapElements.add(poi);
    }
    onLoaded(mapElements, LocationMarkerView.MarkerType.POI);
}
Also used : MapElement(io.jawg.osmcontributor.utils.core.MapElement) ArrayList(java.util.ArrayList) Poi(io.jawg.osmcontributor.model.entities.Poi)

Example 3 with MapElement

use of io.jawg.osmcontributor.utils.core.MapElement in project osm-contributor by jawg.

the class MapFragmentPresenter method onLoaded.

private void onLoaded(List<MapElement> mapElements, LocationMarkerView.MarkerType markerType) {
    LocationMarkerView markerSelected = mapFragment.getMarkerSelected();
    for (MapElement mapElement : mapElements) {
        ids.add(mapElement.getId());
        LocationMarkerViewOptions markerOptions = mapFragment.getMarkerOptions(markerType, mapElement.getId());
        boolean selected = false;
        if (markerOptions == null) {
            markerOptions = new LocationMarkerViewOptions<>().relatedObject(mapElement).position(mapElement.getPosition());
            if (mapFragment.getSelectedMarkerType().equals(markerType) && mapElement.getId().equals(mapFragment.getMarkerSelectedId())) {
                selected = true;
                mapFragment.setMarkerSelected(markerOptions.getMarker());
            } else if (mapFragment.getSelectedMarkerType().equals(LocationMarkerView.MarkerType.POI) && markerSelected != null && mapElement.getId().equals(((Poi) markerSelected.getRelatedObject()).getId())) {
                selected = true;
            }
            // the poi in edition should be hidden
            if (!(markerSelected != null && mapFragment.getMapMode() == MapMode.POI_POSITION_EDITION && markerSelected.equals(markerOptions.getMarker())) && (mapElement instanceof Poi && !((Poi) mapElement).getToDelete())) {
                setIcon(markerOptions, mapElement, selected);
                mapFragment.addPoi(markerOptions);
            }
            if (markerType == LocationMarkerView.MarkerType.NOTE) {
                if (mapFragment.getSelectedMarkerType().equals(LocationMarkerView.MarkerType.NOTE) && mapElement.getId().equals(mapFragment.getMarkerSelectedId())) {
                    mapFragment.setMarkerSelected(markerOptions.getMarker());
                }
                setIcon(markerOptions, mapElement, false);
                mapFragment.addNote(markerOptions);
            }
        } else {
            if (markerType == LocationMarkerView.MarkerType.POI) {
                Poi poi = (Poi) mapElement;
                Poi oldPoi = (Poi) markerOptions.getMarker().getRelatedObject();
                oldPoi.setName(poi.getName());
                oldPoi.setUpdated(poi.getUpdated());
                selected = false;
                if (mapFragment.getSelectedMarkerType().equals(LocationMarkerView.MarkerType.POI) && (mapElement.getId().equals(mapFragment.getMarkerSelectedId()) || markerSelected != null && mapElement.getId().equals(((Poi) markerSelected.getRelatedObject()).getId()))) {
                    selected = true;
                }
                setIcon(markerOptions, oldPoi, selected);
            } else {
                if (mapFragment.getSelectedMarkerType().equals(LocationMarkerView.MarkerType.NOTE) && markerSelected != null && mapElement.getId().equals(((Note) markerSelected.getRelatedObject()).getId())) {
                    selected = true;
                }
                setIcon(markerOptions, mapElement, selected);
            }
            // update the detail banner data
            if (selected) {
                if (mapFragment.getMapMode() == MapMode.DETAIL_NOTE) {
                    eventBus.post(new PleaseChangeValuesDetailNoteFragmentEvent((Note) mapElement));
                } else {
                    Poi poi = (Poi) mapElement;
                    eventBus.post(new PleaseChangeValuesDetailPoiFragmentEvent(poi));
                }
            }
        }
    }
    if ((mapFragment.getMapMode() == MapMode.DEFAULT || mapFragment.getMapMode() == MapMode.POI_CREATION)) {
        mapFragment.reselectMarker();
    }
    if (mapFragment.getSelectedMarkerType().equals(markerType) && markerSelected == null) {
        mapFragment.setMarkerSelectedId(-1L);
    }
}
Also used : MapElement(io.jawg.osmcontributor.utils.core.MapElement) LocationMarkerViewOptions(io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerViewOptions) Note(io.jawg.osmcontributor.model.entities.Note) PleaseChangeValuesDetailPoiFragmentEvent(io.jawg.osmcontributor.ui.events.map.PleaseChangeValuesDetailPoiFragmentEvent) Poi(io.jawg.osmcontributor.model.entities.Poi) LocationMarkerView(io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerView) PleaseChangeValuesDetailNoteFragmentEvent(io.jawg.osmcontributor.ui.events.map.PleaseChangeValuesDetailNoteFragmentEvent)

Aggregations

MapElement (io.jawg.osmcontributor.utils.core.MapElement)3 Note (io.jawg.osmcontributor.model.entities.Note)2 Poi (io.jawg.osmcontributor.model.entities.Poi)2 ArrayList (java.util.ArrayList)2 PleaseChangeValuesDetailNoteFragmentEvent (io.jawg.osmcontributor.ui.events.map.PleaseChangeValuesDetailNoteFragmentEvent)1 PleaseChangeValuesDetailPoiFragmentEvent (io.jawg.osmcontributor.ui.events.map.PleaseChangeValuesDetailPoiFragmentEvent)1 LocationMarkerView (io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerView)1 LocationMarkerViewOptions (io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerViewOptions)1