diff options
author | Cj Malone <Cj-Malone@users.noreply.github.com> | 2016-07-25 13:21:29 +0100 |
---|---|---|
committer | Cj Malone <Cj-Malone@users.noreply.github.com> | 2016-07-25 13:21:29 +0100 |
commit | 0dfa36953bc50768a5fa6a31ec8e47391e0eb6bf (patch) | |
tree | 9a00823468a0a108d15dd79d9fdfbf498027820c | |
parent | 9562f1922ae3279572cd192caea988958c9ff2d4 (diff) | |
download | AntennaPod-0dfa36953bc50768a5fa6a31ec8e47391e0eb6bf.zip |
Support mrss' description
Reusing AtomText but it works perfectly.
MRSS has "plain" and "html" types, fallsback to "plain" if null or invalid type
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java index 5b7f8f5c5..46452085f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java @@ -7,8 +7,10 @@ import org.xml.sax.Attributes; import java.util.concurrent.TimeUnit; +import de.danoeh.antennapod.core.feed.FeedImage; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.syndication.handler.HandlerState; +import de.danoeh.antennapod.core.syndication.namespace.atom.AtomText; import de.danoeh.antennapod.core.syndication.util.SyndTypeUtils; /** Processes tags from the http://search.yahoo.com/mrss/ namespace. */ @@ -28,6 +30,9 @@ public class NSMedia extends Namespace { private static final String IMAGE = "thumbnail"; private static final String IMAGE_URL = "url"; + private static final String DESCRIPTION = "description"; + private static final String DESCRIPTION_TYPE = "type"; + @Override public SyndElement handleElementStart(String localName, HandlerState state, Attributes attributes) { @@ -90,13 +95,22 @@ public class NSMedia extends Namespace { } } } + } else if (DESCRIPTION.equals(localName)) { + String type = attributes.getValue(DESCRIPTION_TYPE); + return new AtomText(localName, this, type); } return new SyndElement(localName, this); } @Override public void handleElementEnd(String localName, HandlerState state) { - + if (DESCRIPTION.equals(localName)) { + String content = state.getContentBuf().toString(); + if (state.getCurrentItem() != null && content != null && + state.getCurrentItem().getDescription() == null) { + state.getCurrentItem().setDescription(content); + } + } } } |