From a0cedbcbed8b422188324dd2c1cabdfcf7a7dded Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Fri, 3 Aug 2012 15:11:55 +0200 Subject: Implemented miroguide thumbnail download in FeedImageLoader --- .../antennapod/asynctask/FeedImageLoader.java | 27 ++++++++++++++++++++++ .../asynctask/MiroGuideThumbnailDownloader.java | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'src/de/danoeh/antennapod/asynctask') diff --git a/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java b/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java index 8e25780d5..c7430f90f 100644 --- a/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java +++ b/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java @@ -133,6 +133,28 @@ public class FeedImageLoader { target.setImageResource(R.drawable.default_cover); } } + + public void loadMiroGuideThumbnail(MiroChannel channel, ImageView target) { + if (channel.getThumbnailUrl() != null) { + Bitmap bitmap = getBitmapFromThumbnailCache(channel.getThumbnailUrl()); + if (bitmap != null) { + boolean isInDiskCache = false; + try { + isInDiskCache = isInThumbnailDiskCache(channel.getThumbnailUrl()); + } catch (IOException e) { + e.printStackTrace(); + Log.e(TAG, "Error when trying to read disk cache"); + } + if (isInDiskCache) { + new MiroGuideDiskCacheLoader(target, channel, LENGTH_BASE_THUMBNAIL).executeAsync(); + } else { + new MiroGuideThumbnailDownloader(target, channel, LENGTH_BASE_THUMBNAIL).executeAsync(); + } + } + } else { + target.setImageResource(R.drawable.default_cover); + } + } public void wipeImageCache() { coverCache.evictAll(); @@ -162,6 +184,11 @@ public class FeedImageLoader { public void addBitmapToCoverCache(String key, Bitmap bitmap) { coverCache.put(key, bitmap); } + + public boolean isInThumbnailDiskCache(String key) throws IOException { + DiskLruCache cache = openThubmnailDiskCache(); + return cache.get(key) != null; + } class FeedImageDecodeWorkerTask extends BitmapDecodeWorkerTask { diff --git a/src/de/danoeh/antennapod/asynctask/MiroGuideThumbnailDownloader.java b/src/de/danoeh/antennapod/asynctask/MiroGuideThumbnailDownloader.java index 00776c4a2..98b7ba04c 100644 --- a/src/de/danoeh/antennapod/asynctask/MiroGuideThumbnailDownloader.java +++ b/src/de/danoeh/antennapod/asynctask/MiroGuideThumbnailDownloader.java @@ -73,7 +73,7 @@ public class MiroGuideThumbnailDownloader extends BitmapDecodeWorkerTask { output.write(inputBuffer, 0, count); } output.close(); - + if (AppConfig.DEBUG) Log.d(TAG, "MiroGuide thumbnail downloaded"); // Get a smaller version of the bitmap and store it inside the // LRU // Cache -- cgit v1.2.3