@Override public synchronized void initialize() { astroSources.clear(); Log.d("RLP", "RLP this is initialization in Abstract source layer"); initializeAstroSources(astroSources); for (AstronomicalSource astroSource : astroSources) { Sources sources = astroSource.initialize(); textSources.addAll(sources.getLabels()); imageSources.addAll(sources.getImages()); pointSources.addAll(sources.getPoints()); lineSources.addAll(sources.getLines()); List<String> names = astroSource.getNames(); if (!names.isEmpty()) { GeocentricCoordinates searchLoc = astroSource.getSearchLocation(); for (String name : names) { searchIndex.put(name.toLowerCase(), new SearchResult(name, searchLoc)); prefixStore.add(name.toLowerCase()); } } } // update the renderer updateLayerForControllerChange(); }
/** * Redraws the sources on this layer, after first refreshing them based on the current state of * the {@link com.google.android.stardroid.control.AstronomerModel}. */ protected synchronized void refreshSources(EnumSet<UpdateType> updateTypes) { for (AstronomicalSource astroSource : astroSources) { updateTypes.addAll(astroSource.update()); } if (!updateTypes.isEmpty()) { redraw(updateTypes); } }