diff options
author | Domingos Lopes <domingos86lopes+github@gmail.com> | 2016-03-27 12:30:17 -0400 |
---|---|---|
committer | Domingos Lopes <domingos86lopes+github@gmail.com> | 2016-04-23 21:39:55 -0400 |
commit | 65ddd5b0ea42981984653f2982c2579564a758fa (patch) | |
tree | 60fd02212bee9ffd6e09cdcad469fc23039fbadb | |
parent | 5a4fc28dcd737f8ccc4e97b13a9d714cf7fe1caa (diff) | |
download | AntennaPod-65ddd5b0ea42981984653f2982c2579564a758fa.zip |
add FeedMedia getter and equals method for RemoteMedia and FeedMedia
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/cast/RemoteMedia.java | 31 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java | 9 |
2 files changed, 40 insertions, 0 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/cast/RemoteMedia.java b/core/src/main/java/de/danoeh/antennapod/core/cast/RemoteMedia.java index ab09a8cbc..2248f34cd 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/cast/RemoteMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/cast/RemoteMedia.java @@ -16,7 +16,11 @@ import java.util.List; import java.util.concurrent.Callable; import de.danoeh.antennapod.core.feed.Chapter; +import de.danoeh.antennapod.core.feed.Feed; +import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; +import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.util.CastUtils; import de.danoeh.antennapod.core.util.ChapterUtils; import de.danoeh.antennapod.core.util.playback.Playable; @@ -116,6 +120,10 @@ public class RemoteMedia implements Playable { return builder.build(); } + public FeedMedia lookForFeedMedia() { + return DBReader.getFeedItem(feedUrl, itemIdentifier).getMedia(); + } + @Override public void writeToPreferences(SharedPreferences.Editor prefEditor) { //it seems pointless to do it, since the session should be kept by the remote device. @@ -313,4 +321,27 @@ public class RemoteMedia implements Playable { return new RemoteMedia[size]; } }; + + @Override + public boolean equals(Object other) { + if (other instanceof RemoteMedia) { + RemoteMedia rm = (RemoteMedia) other; + return TextUtils.equals(downloadUrl, rm.downloadUrl) && + TextUtils.equals(feedUrl, rm.feedUrl) && + TextUtils.equals(itemIdentifier, rm.itemIdentifier); + } + if (other instanceof FeedMedia) { + FeedMedia fm = (FeedMedia) other; + if (!TextUtils.equals(downloadUrl, fm.getStreamUrl())) { + return false; + } + FeedItem fi = fm.getItem(); + if (fi == null || !TextUtils.equals(itemIdentifier, fi.getItemIdentifier())) { + return false; + } + Feed feed = fi.getFeed(); + return feed != null && TextUtils.equals(feedUrl, feed.getDownload_url()); + } + return false; + } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java index 991499316..fa663f7da 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java @@ -13,6 +13,7 @@ import java.util.Date; import java.util.List; import java.util.concurrent.Callable; +import de.danoeh.antennapod.core.cast.RemoteMedia; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; @@ -579,4 +580,12 @@ public class FeedMedia extends FeedFile implements Playable { hasEmbeddedPicture = Boolean.FALSE; } } + + @Override + public boolean equals(Object o) { + if (o instanceof RemoteMedia) { + return o.equals(this); + } + return super.equals(o); + } } |