aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Caffou <jean@briskula.si>2014-04-24 13:27:52 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-04-24 14:34:44 +0200
commitd48b4a67639202e6fdc8599740ad68619034a2b4 (patch)
tree082d5405b58b3b1c7e8bbde37799fe76d9d34a68
parent0cf889ca8762c9c134cee055005dcd85b8f075ba (diff)
downloadcgeo-d48b4a67639202e6fdc8599740ad68619034a2b4.zip
cgeo-d48b4a67639202e6fdc8599740ad68619034a2b4.tar.gz
cgeo-d48b4a67639202e6fdc8599740ad68619034a2b4.tar.bz2
close #3438: import external spoiler images
-rw-r--r--main/src/cgeo/geocaching/Geocache.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java
index 1ed699e..35855f1 100644
--- a/main/src/cgeo/geocaching/Geocache.java
+++ b/main/src/cgeo/geocaching/Geocache.java
@@ -53,11 +53,13 @@ import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.net.Uri;
+import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.text.Html;
import android.text.Html.ImageGetter;
+import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
@@ -779,10 +781,9 @@ public class Geocache implements ICache, IWaypoint {
@Override
public List<Image> getSpoilers() {
- if (spoilers == null) {
- return Collections.emptyList();
- }
- return Collections.unmodifiableList(spoilers);
+ final List<Image> allSpoilers = new LinkedList<Image>(CollectionUtils.emptyIfNull(spoilers));
+ addLocalSpoilersTo(allSpoilers);
+ return allSpoilers;
}
@Override
@@ -1749,6 +1750,23 @@ public class Geocache implements ICache, IWaypoint {
return result;
}
+ // add spoilers stored locally in /sdcard/GeocacheSpoilers
+ private void addLocalSpoilersTo(final List<Image> spoilers) {
+ if (StringUtils.length(geocode) >= 2) {
+ final String suffix = StringUtils.right(geocode, 2);
+ final File baseDir = new File(Environment.getExternalStorageDirectory().toString(), "GeocacheSpoilers");
+ final File lastCharDir = new File(baseDir, suffix.substring(1));
+ final File secondToLastCharDir = new File(lastCharDir, suffix.substring(0, 1));
+ final File finalDir = new File(secondToLastCharDir, getGeocode());
+ final File[] files = finalDir.listFiles();
+ if (files != null) {
+ for (final File image : files) {
+ spoilers.add(new Image("file://" + image.getAbsolutePath(), image.getName()));
+ }
+ }
+ }
+ }
+
public void setDetailedUpdatedNow() {
final long now = System.currentTimeMillis();
setUpdated(now);