private void setUpMap() { mMap.setOnMarkerClickListener( new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { // Log.e(tag, "clicked on marker"); String eventId = marker.getSnippet(); setEvent(eventId); refreshIfNeeded(); return false; } }); mMap.setMapType(Settings.getMapType()); computeMarkerColors(); showEvents(); selEventId = ((MapActivityInterface) getActivity()).getEventId(); if (selEventId != null) { Log.e(tag, "Setting up initial event"); setEvent(selEventId); Event e = MainModel.getEvent(selEventId); mMap.animateCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(e.getLat(), e.getLng()), 12.0f)); } // mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, // longitude), 12.0f)); }
private void updateSpouseLines() { clearSpouseLine(); if (!Settings.isSpouseLinesEnabled()) return; Event selEvent = MainModel.getEvent(selEventId); Person p = selEvent.getPerson(); Person spouse = MainModel.getPerson(p.getSpouseId()); if (spouse == null || selEvent == null) return; Event firstSpouseEvent = spouse.getEarliestEvent(); if (firstSpouseEvent == null) return; if (!MainModel.isEventVisible(selEvent.getId()) || !MainModel.isEventVisible(firstSpouseEvent.getId())) return; spouseLine = drawLine(selEvent, firstSpouseEvent, SPOUSE_LINE_WIDTH, Settings.getSpouseLineColor()); }
private void updateLifeStory() { // Log.e(tag, "updating life story"); ArrayList<Event> events = MainModel.getPerson(selPersonId).getSortedEvents(); ArrayList<Event> visibleEvents = new ArrayList<Event>(); for (int i = 0; i < events.size(); i++) { Event curr_event = events.get(i); if (MainModel.isEventVisible(curr_event.getId())) { visibleEvents.add(curr_event); // Log.e(tag, "visible event: "+curr_event.toString()); } } clearLifeStory(); if (!Settings.isLifeLinesEnabled()) return; for (int j = 1; j < visibleEvents.size(); j++) { Event event1 = visibleEvents.get(j - 1); Event event2 = visibleEvents.get(j); lifeStory.add(drawLine(event1, event2, LIFE_STORY_WIDTH, Settings.getLifeStoryColor())); } }
private void refreshIfNeeded() { Log.e(tag, "refreshing"); if (MainModel.isChanged()) { clearFamilyStoryLines(); clearLifeStory(); clearSpouseLine(); mMap.clear(); mMap.setMapType(Settings.getMapType()); showEvents(); } MainModel.setChanged(false); }
/** * If the source and target events are visible, draw a line between the source and target, and * save it in the map of lines. This is so that the lines can be removed when changing the * selected event. */ private void drawFamilyStoryLine(Event source, Event target, int width) { if (source == null || target == null) return; if (MainModel.isEventVisible(source.getId()) && MainModel.isEventVisible(target.getId())) { familyLines.add(drawLine(source, target, width, Settings.getFamilyStoryColor())); } }
private void updateFamilyStoryLines() { clearFamilyStoryLines(); if (!Settings.isFamilyLinesEnabled()) return; recDrawFamilyStoryLines(MainModel.getEvent(selEventId), Settings.START_FAMILY_LINE_WIDTH); }