aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2012-05-09 22:20:38 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-05-09 22:26:26 +0200
commit0357b4309d8c2b8bcd6f5728f572396baafda419 (patch)
tree7af9c5c1ecad6cbeb0995387292c9f41c64035bb
parent4bff49b3ba2c3c678795b2e00afd381e72c1d31b (diff)
downloadcgeo-0357b4309d8c2b8bcd6f5728f572396baafda419.zip
cgeo-0357b4309d8c2b8bcd6f5728f572396baafda419.tar.gz
cgeo-0357b4309d8c2b8bcd6f5728f572396baafda419.tar.bz2
Fix #1395: use "shared" pseudo-geocode for smileys image
-rw-r--r--main/src/cgeo/geocaching/network/HtmlImage.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/main/src/cgeo/geocaching/network/HtmlImage.java b/main/src/cgeo/geocaching/network/HtmlImage.java
index e0bcce7..6c76eff 100644
--- a/main/src/cgeo/geocaching/network/HtmlImage.java
+++ b/main/src/cgeo/geocaching/network/HtmlImage.java
@@ -39,6 +39,7 @@ public class HtmlImage implements Html.ImageGetter {
"counter.digits.com",
"andyhoppe"
};
+
final private String geocode;
/**
* on error: return large error image, if <code>true</code>, otherwise empty 1x1 image
@@ -73,7 +74,10 @@ public class HtmlImage implements Html.ImageGetter {
return new BitmapDrawable(getTransparent1x1Image());
}
- Bitmap imagePre = loadImageFromStorage(url);
+ final boolean shared = url.contains("/images/icons/icon_");
+ final String pseudoGeocode = shared ? "shared" : geocode;
+
+ Bitmap imagePre = loadImageFromStorage(url, pseudoGeocode, shared);
// Download image and save it to the cache
if (imagePre == null) {
@@ -81,7 +85,7 @@ public class HtmlImage implements Html.ImageGetter {
if (absoluteURL != null) {
try {
- final File file = LocalStorage.getStorageFile(geocode, url, true, true);
+ final File file = LocalStorage.getStorageFile(pseudoGeocode, url, true, true);
final HttpResponse httpResponse = Network.getRequest(absoluteURL, null, file);
if (httpResponse != null) {
final int statusCode = httpResponse.getStatusLine().getStatusCode();
@@ -103,7 +107,7 @@ public class HtmlImage implements Html.ImageGetter {
// now load the newly downloaded image
if (imagePre == null) {
- imagePre = loadImageFromStorage(url);
+ imagePre = loadImageFromStorage(url, pseudoGeocode, shared);
}
// get image and return
@@ -149,15 +153,15 @@ public class HtmlImage implements Html.ImageGetter {
return BitmapFactory.decodeResource(resources, R.drawable.image_no_placement);
}
- private Bitmap loadImageFromStorage(final String url) {
+ private Bitmap loadImageFromStorage(final String url, final String pseudoGeocode, final boolean forceKeep) {
try {
- final File file = LocalStorage.getStorageFile(geocode, url, true, false);
- final Bitmap image = loadCachedImage(file);
+ final File file = LocalStorage.getStorageFile(pseudoGeocode, url, true, false);
+ final Bitmap image = loadCachedImage(file, forceKeep);
if (image != null) {
return image;
}
- final File fileSec = LocalStorage.getStorageSecFile(geocode, url, true);
- return loadCachedImage(fileSec);
+ final File fileSec = LocalStorage.getStorageSecFile(pseudoGeocode, url, true);
+ return loadCachedImage(fileSec, forceKeep);
} catch (Exception e) {
Log.w("HtmlImage.getDrawable (reading cache): " + e.toString());
}
@@ -187,9 +191,9 @@ public class HtmlImage implements Html.ImageGetter {
return null;
}
- private Bitmap loadCachedImage(final File file) {
+ private Bitmap loadCachedImage(final File file, final boolean forceKeep) {
if (file.exists()) {
- if (listId >= StoredList.STANDARD_LIST_ID || file.lastModified() > (new Date().getTime() - (24 * 60 * 60 * 1000))) {
+ if (listId >= StoredList.STANDARD_LIST_ID || file.lastModified() > (new Date().getTime() - (24 * 60 * 60 * 1000)) || forceKeep) {
setSampleSize(file);
return BitmapFactory.decodeFile(file.getPath(), bfOptions);
}