public static void loadRatings(final @NonNull ArrayList<Geocache> caches) { if (!Settings.isRatingWanted()) { return; } final ArrayList<String> geocodes = getVotableGeocodes(caches); if (geocodes.isEmpty()) { return; } try { final Map<String, GCVoteRating> ratings = GCVote.getRating(null, geocodes); // save found cache coordinates for (Geocache cache : caches) { if (ratings.containsKey(cache.getGeocode())) { GCVoteRating rating = ratings.get(cache.getGeocode()); cache.setRating(rating.getRating()); cache.setVotes(rating.getVotes()); cache.setMyVote(rating.getMyVote()); } } } catch (Exception e) { Log.e("GCvote.loadRatings", e); } }