summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/feed
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-08-06 22:04:55 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-08-06 22:04:55 +0200
commita8bf235017d5896c0691ad056727dafc72c63596 (patch)
treebfa2b3a02fc9704bc672b985351dc6e84dccd945 /src/de/danoeh/antennapod/feed
parent583b2adaae5769fb8bee4d63e4ef10846d7de1b6 (diff)
parent8dc740bb8f5b6149d6d0c70a00d4f4831f33a427 (diff)
downloadAntennaPod-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.java14
-rw-r--r--src/de/danoeh/antennapod/feed/FeedImage.java42
-rw-r--r--src/de/danoeh/antennapod/feed/FeedItem.java57
-rw-r--r--src/de/danoeh/antennapod/feed/FeedMedia.java64
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);
}
}
}