diff options
Diffstat (limited to 'main/src/cgeo/geocaching/Geocache.java')
| -rw-r--r-- | main/src/cgeo/geocaching/Geocache.java | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index 8dde37d..f6e3f18 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -47,18 +47,23 @@ import rx.functions.Action1; import android.app.Activity; import android.content.Intent; import android.content.res.Resources; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Handler; import android.os.Message; import android.text.Html; +import android.text.Html.ImageGetter; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -1710,12 +1715,34 @@ public class Geocache implements ICache, IWaypoint { } }; - public List<Image> getImages() { - final List<Image> result = new ArrayList<Image>(); + private void addDescriptionImagesUrls(final Collection<Image> images) { + final Set<String> urls = new LinkedHashSet<String>(); + for (final Image image : images) { + urls.add(image.getUrl()); + } + Html.fromHtml(getDescription(), new ImageGetter() { + @Override + public Drawable getDrawable(final String source) { + if (!urls.contains(source)) { + images.add(new Image(source, geocode)); + urls.add(source); + } + return null; + } + }, null); + } + + public Collection<Image> getImages() { + final LinkedList<Image> result = new LinkedList<Image>(); result.addAll(getSpoilers()); for (final LogEntry log : getLogs()) { result.addAll(log.getLogImages()); } + final Set<String> urls = new HashSet<String>(result.size()); + for (final Image image : result) { + urls.add(image.getUrl()); + } + addDescriptionImagesUrls(result); return result; } |
