diff options
author | ByteHamster <info@bytehamster.com> | 2020-05-14 21:56:45 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-05-16 19:30:44 +0200 |
commit | bb15f25832e345c156aafe33d382bb900cb6046c (patch) | |
tree | 324f4e9f53d062cc90743f7225b06aa924eda4d0 /core/src/main/java/de/danoeh/antennapod | |
parent | 92033f8373cd9dedbf2d961cf064e4878e225346 (diff) | |
download | AntennaPod-bb15f25832e345c156aafe33d382bb900cb6046c.zip |
Fixed feeds with newlines in their image tags
Diffstat (limited to 'core/src/main/java/de/danoeh/antennapod')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java | 13 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/syndication/util/SyndStringUtils.java | 14 |
2 files changed, 21 insertions, 6 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java index 3fc0a69d2..45c5d4884 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java @@ -3,6 +3,7 @@ package de.danoeh.antennapod.core.syndication.namespace; import android.text.TextUtils; import android.util.Log; +import de.danoeh.antennapod.core.syndication.util.SyndStringUtils; import org.xml.sax.Attributes; import de.danoeh.antennapod.core.feed.FeedItem; @@ -98,7 +99,8 @@ public class NSRSS20 extends Namespace { } state.setCurrentItem(null); } else if (state.getTagstack().size() >= 2 && state.getContentBuf() != null) { - String content = state.getContentBuf().toString(); + String contentRaw = state.getContentBuf().toString(); + String content = SyndStringUtils.trimAllWhitespace(contentRaw); SyndElement topElement = state.getTagstack().peek(); String top = topElement.getName(); SyndElement secondElement = state.getSecondTag(); @@ -110,15 +112,14 @@ public class NSRSS20 extends Namespace { if (GUID.equals(top) && ITEM.equals(second)) { // some feed creators include an empty or non-standard guid-element in their feed, // which should be ignored - if (!TextUtils.isEmpty(content) && state.getCurrentItem() != null) { - state.getCurrentItem().setItemIdentifier(content); + if (!TextUtils.isEmpty(contentRaw) && state.getCurrentItem() != null) { + state.getCurrentItem().setItemIdentifier(contentRaw); } } else if (TITLE.equals(top)) { - String title = content.trim(); if (ITEM.equals(second) && state.getCurrentItem() != null) { - state.getCurrentItem().setTitle(title); + state.getCurrentItem().setTitle(content); } else if (CHANNEL.equals(second) && state.getFeed() != null) { - state.getFeed().setTitle(title); + state.getFeed().setTitle(content); } } else if (LINK.equals(top)) { if (CHANNEL.equals(second) && state.getFeed() != null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/util/SyndStringUtils.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/util/SyndStringUtils.java new file mode 100644 index 000000000..addcdd4b7 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/util/SyndStringUtils.java @@ -0,0 +1,14 @@ +package de.danoeh.antennapod.core.syndication.util; + +public class SyndStringUtils { + private SyndStringUtils() { + + } + + /** + * Trims all whitespace from beginning and ending of a String. {{@link String#trim()}} only trims spaces. + */ + public static String trimAllWhitespace(String string) { + return string.replaceAll("(^\\s*)|(\\s*$)", ""); + } +} |