diff options
author | Andy Doan <andy.doan@linaro.org> | 2011-09-26 16:23:00 -0500 |
---|---|---|
committer | Andy Doan <doanac@gmail.com> | 2011-09-26 16:24:39 -0500 |
commit | d4d97c9b7ed328c4aa7cdaa0b2fdca43769c8a80 (patch) | |
tree | ba9b275b3ba70844941a69cd376e95c4f81e02b0 | |
parent | 0a0936fd7e2416b6629c0415be5ff4a361d9c69f (diff) | |
download | LinaroConnect-d4d97c9b7ed328c4aa7cdaa0b2fdca43769c8a80.tar.gz |
fix bug with null drawables
For some reason twitpic seems to give us bad images
from time to time. This adds the ability to reset the
input stream and try again
-rw-r--r-- | src/org/linaro/connect/JSONImageItem.java | 5 | ||||
-rw-r--r-- | src/org/linaro/connect/LRUCache.java | 18 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/org/linaro/connect/JSONImageItem.java b/src/org/linaro/connect/JSONImageItem.java index 0208640..77ab6fe 100644 --- a/src/org/linaro/connect/JSONImageItem.java +++ b/src/org/linaro/connect/JSONImageItem.java @@ -32,6 +32,11 @@ public class JSONImageItem extends JSONItem{ try { InputStream is = LinaroConnect.getUrlInputStream(url, true); d = Drawable.createFromStream(is, null); + if (d == null) { + Log.w(LinaroConnect.TAG, "got null drawable for " + url + ". trying again"); + is.reset(); + d = Drawable.createFromStream(is, null); + } is.close(); } catch (Exception e) { Log.e(LinaroConnect.TAG, "Error dowloading: " + url, e); diff --git a/src/org/linaro/connect/LRUCache.java b/src/org/linaro/connect/LRUCache.java index 3bfe75e..0623a7c 100644 --- a/src/org/linaro/connect/LRUCache.java +++ b/src/org/linaro/connect/LRUCache.java @@ -70,11 +70,7 @@ class LRUCache extends LinkedHashMap<String, File> { throws IOException { mUrl = url; mCacheFile = cache; - - URLConnection c = new URL(url).openConnection(); - - mIn = c.getInputStream(); - mOut = new FileOutputStream(cache); + reset(); } @Override @@ -96,6 +92,18 @@ class LRUCache extends LinkedHashMap<String, File> { } @Override + public synchronized void reset() throws IOException { + if( mIn != null ) + mIn.close(); + if( mOut != null ) + mOut.close(); + + URLConnection c = new URL(mUrl).openConnection(); + mIn = c.getInputStream(); + mOut = new FileOutputStream(mCacheFile); + } + + @Override public void close() throws IOException { mIn.close(); mOut.close(); |