diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-08-06 22:04:55 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-08-06 22:04:55 +0200 |
commit | a8bf235017d5896c0691ad056727dafc72c63596 (patch) | |
tree | bfa2b3a02fc9704bc672b985351dc6e84dccd945 /src/de/danoeh/antennapod/feed | |
parent | 583b2adaae5769fb8bee4d63e4ef10846d7de1b6 (diff) | |
parent | 8dc740bb8f5b6149d6d0c70a00d4f4831f33a427 (diff) | |
download | AntennaPod-a8bf235017d5896c0691ad056727dafc72c63596.zip |
Merge branch 'develop'0.9.9.3
Diffstat (limited to 'src/de/danoeh/antennapod/feed')
-rw-r--r-- | src/de/danoeh/antennapod/feed/Feed.java | 14 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedImage.java | 42 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedItem.java | 57 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/feed/FeedMedia.java | 64 |
4 files changed, 55 insertions, 122 deletions
diff --git a/src/de/danoeh/antennapod/feed/Feed.java b/src/de/danoeh/antennapod/feed/Feed.java index f9da65e03..b5415c69c 100644 --- a/src/de/danoeh/antennapod/feed/Feed.java +++ b/src/de/danoeh/antennapod/feed/Feed.java @@ -1,6 +1,9 @@ package de.danoeh.antennapod.feed; import android.content.Context; +import android.net.Uri; + +import de.danoeh.antennapod.asynctask.PicassoImageResource; import de.danoeh.antennapod.preferences.UserPreferences; import de.danoeh.antennapod.storage.DBWriter; import de.danoeh.antennapod.util.EpisodeFilter; @@ -16,7 +19,7 @@ import java.util.List; * * @author daniel */ -public class Feed extends FeedFile implements FlattrThing { +public class Feed extends FeedFile implements FlattrThing, PicassoImageResource { public static final int FEEDFILETYPE_FEED = 0; public static final String TYPE_RSS2 = "rss"; public static final String TYPE_RSS091 = "rss"; @@ -430,4 +433,13 @@ public class Feed extends FeedFile implements FlattrThing { preferences.setFeedID(id); } } + + @Override + public Uri getImageUri() { + if (image != null) { + return image.getImageUri(); + } else { + return null; + } + } } diff --git a/src/de/danoeh/antennapod/feed/FeedImage.java b/src/de/danoeh/antennapod/feed/FeedImage.java index 9c9170294..c588f5e71 100644 --- a/src/de/danoeh/antennapod/feed/FeedImage.java +++ b/src/de/danoeh/antennapod/feed/FeedImage.java @@ -1,6 +1,9 @@ package de.danoeh.antennapod.feed; -import de.danoeh.antennapod.asynctask.ImageLoader; +import android.net.Uri; + +import de.danoeh.antennapod.asynctask.PicassoImageResource; + import org.apache.commons.io.IOUtils; import java.io.File; @@ -10,8 +13,7 @@ import java.io.InputStream; -public class FeedImage extends FeedFile implements - ImageLoader.ImageWorkerTaskResource { +public class FeedImage extends FeedFile implements PicassoImageResource { public static final int FEEDFILETYPE_FEEDIMAGE = 1; protected String title; @@ -64,30 +66,12 @@ public class FeedImage extends FeedFile implements this.owner = owner; } - @Override - public InputStream openImageInputStream() { - if (file_url != null) { - File file = new File(file_url); - if (file.exists()) { - try { - return new FileInputStream(file_url); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - } - return null; - } - - @Override - public String getImageLoaderCacheKey() { - return file_url; - } - - @Override - public InputStream reopenImageInputStream(InputStream input) { - IOUtils.closeQuietly(input); - return openImageInputStream(); - } - + @Override + public Uri getImageUri() { + if (file_url != null && downloaded) { + return Uri.fromFile(new File(file_url)); + } else { + return null; + } + } } diff --git a/src/de/danoeh/antennapod/feed/FeedItem.java b/src/de/danoeh/antennapod/feed/FeedItem.java index 956131ab2..78091ea33 100644 --- a/src/de/danoeh/antennapod/feed/FeedItem.java +++ b/src/de/danoeh/antennapod/feed/FeedItem.java @@ -1,7 +1,9 @@ package de.danoeh.antennapod.feed; +import android.net.Uri; + import de.danoeh.antennapod.PodcastApp; -import de.danoeh.antennapod.asynctask.ImageLoader; +import de.danoeh.antennapod.asynctask.PicassoImageResource; import de.danoeh.antennapod.storage.DBReader; import de.danoeh.antennapod.util.ShownotesProvider; import de.danoeh.antennapod.util.flattr.FlattrStatus; @@ -17,8 +19,7 @@ import java.util.concurrent.Callable; * * @author daniel */ -public class FeedItem extends FeedComponent implements - ImageLoader.ImageWorkerTaskResource, ShownotesProvider, FlattrThing { +public class FeedItem extends FeedComponent implements ShownotesProvider, FlattrThing, PicassoImageResource { /** * The id/guid that can be found in the rss/atom feed. Might not be set. @@ -261,6 +262,17 @@ public class FeedItem extends FeedComponent implements }; } + @Override + public Uri getImageUri() { + if (hasMedia()) { + return media.getImageUri(); + } else if (feed != null) { + return feed.getImageUri(); + } else { + return null; + } + } + public enum State { NEW, IN_PROGRESS, READ, PLAYING } @@ -277,45 +289,6 @@ public class FeedItem extends FeedComponent implements return (isRead() ? State.READ : State.NEW); } - @Override - public InputStream openImageInputStream() { - InputStream out = null; - if (hasItemImageDownloaded()) { - out = image.openImageInputStream(); - } else if (hasMedia()) { - out = media.openImageInputStream(); - } else if (feed.getImage() != null) { - out = feed.getImage().openImageInputStream(); - } - return out; - } - - @Override - public InputStream reopenImageInputStream(InputStream input) { - InputStream out = null; - if (hasItemImageDownloaded()) { - out = image.reopenImageInputStream(input); - } else if (hasMedia()) { - out = media.reopenImageInputStream(input); - } else if (feed.getImage() != null) { - out = feed.getImage().reopenImageInputStream(input); - } - return out; - } - - @Override - public String getImageLoaderCacheKey() { - String out = null; - if (hasItemImageDownloaded()) { - out = image.getImageLoaderCacheKey(); - } else if (hasMedia()) { - out = media.getImageLoaderCacheKey(); - } else if (feed.getImage() != null) { - out = feed.getImage().getImageLoaderCacheKey(); - } - return out; - } - public long getFeedId() { return feedId; } diff --git a/src/de/danoeh/antennapod/feed/FeedMedia.java b/src/de/danoeh/antennapod/feed/FeedMedia.java index dc941cb48..f555654d0 100644 --- a/src/de/danoeh/antennapod/feed/FeedMedia.java +++ b/src/de/danoeh/antennapod/feed/FeedMedia.java @@ -2,21 +2,24 @@ package de.danoeh.antennapod.feed; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; +import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; -import de.danoeh.antennapod.PodcastApp; -import de.danoeh.antennapod.preferences.PlaybackPreferences; -import de.danoeh.antennapod.storage.DBReader; -import de.danoeh.antennapod.storage.DBWriter; -import de.danoeh.antennapod.util.ChapterUtils; -import de.danoeh.antennapod.util.playback.Playable; +import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; +import de.danoeh.antennapod.PodcastApp; +import de.danoeh.antennapod.preferences.PlaybackPreferences; +import de.danoeh.antennapod.storage.DBReader; +import de.danoeh.antennapod.storage.DBWriter; +import de.danoeh.antennapod.util.ChapterUtils; +import de.danoeh.antennapod.util.playback.Playable; + public class FeedMedia extends FeedFile implements Playable { private static final String TAG = "FeedMedia"; @@ -382,52 +385,13 @@ public class FeedMedia extends FeedFile implements Playable { }; @Override - public InputStream openImageInputStream() { - InputStream out; - if (item.hasItemImageDownloaded()) { - out = item.openImageInputStream(); + public Uri getImageUri() { + if (localFileAvailable()) { + return new Uri.Builder().scheme(SCHEME_MEDIA).encodedPath(getLocalMediaUrl()).build(); + } else if (item != null && item.getFeed() != null) { + return item.getFeed().getImageUri(); } else { - out = new Playable.DefaultPlayableImageLoader(this) - .openImageInputStream(); - } - if (out == null) { - if (item.getFeed().getImage() != null) { - return item.getFeed().getImage().openImageInputStream(); - } - } - return out; - } - - @Override - public String getImageLoaderCacheKey() { - String out; - if (item == null) { return null; - } else if (item.hasItemImageDownloaded()) { - out = item.getImageLoaderCacheKey(); - } else { - out = new Playable.DefaultPlayableImageLoader(this) - .getImageLoaderCacheKey(); - } - if (out == null) { - if (item.getFeed().getImage() != null) { - return item.getFeed().getImage().getImageLoaderCacheKey(); - } - } - return out; - } - - @Override - public InputStream reopenImageInputStream(InputStream input) { - if (input instanceof FileInputStream) { - if (item.hasItemImageDownloaded()) { - return item.getImage().reopenImageInputStream(input); - } else { - return item.getFeed().getImage().reopenImageInputStream(input); - } - } else { - return new Playable.DefaultPlayableImageLoader(this) - .reopenImageInputStream(input); } } } |