add FeedMedia getter and equals method for RemoteMedia and FeedMedia

This commit is contained in:
Domingos Lopes 2016-03-27 12:30:17 -04:00
parent 5a4fc28dcd
commit 65ddd5b0ea
2 changed files with 40 additions and 0 deletions

View File

@ -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;
}
}

View File

@ -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);
}
}