diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2021-05-08 11:40:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-08 11:40:10 +0200 |
commit | 3c808c13930cade8079ef3aa1c83d8321035bfd2 (patch) | |
tree | 4a73e9d1a35d095861a36998c5079f9328fa2027 /core/src | |
parent | b4bb7f4e5968185bb9c77f8edea2a1332e9caf90 (diff) | |
parent | 27d86cfb267f4e70b1075b837b46630f65735200 (diff) | |
download | AntennaPod-3c808c13930cade8079ef3aa1c83d8321035bfd2.zip |
Merge pull request #5146 from ByteHamster/future-date
Refuse to show future dates
Diffstat (limited to 'core/src')
4 files changed, 20 insertions, 4 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSDublinCore.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSDublinCore.java index 14286d850..0394b754a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSDublinCore.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSDublinCore.java @@ -29,7 +29,7 @@ public class NSDublinCore extends Namespace { String second = state.getSecondTag().getName(); if (DATE.equals(top) && ITEM.equals(second)) { String content = state.getContentBuf().toString(); - currentItem.setPubDate(DateUtils.parse(content)); + currentItem.setPubDate(DateUtils.parseOrNullIfFuture(content)); } } } 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 87423b6b1..50c2dc118 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 @@ -124,7 +124,7 @@ public class NSRSS20 extends Namespace { state.getCurrentItem().setLink(content); } } else if (PUBDATE.equals(top) && ITEM.equals(second) && state.getCurrentItem() != null) { - state.getCurrentItem().setPubDate(DateUtils.parse(content)); + state.getCurrentItem().setPubDate(DateUtils.parseOrNullIfFuture(content)); } else if (URL.equals(top) && IMAGE.equals(second) && CHANNEL.equals(third)) { // prefer itunes:image if (state.getFeed() != null && state.getFeed().getImageUrl() == null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java index 7c5ed2d30..6d459075a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java @@ -205,9 +205,9 @@ public class NSAtom extends Namespace { state.getCurrentItem().setDescriptionIfLonger(textElement.getProcessedContent()); } else if (UPDATED.equals(top) && ENTRY.equals(second) && state.getCurrentItem() != null && state.getCurrentItem().getPubDate() == null) { - state.getCurrentItem().setPubDate(DateUtils.parse(content)); + state.getCurrentItem().setPubDate(DateUtils.parseOrNullIfFuture(content)); } else if (PUBLISHED.equals(top) && ENTRY.equals(second) && state.getCurrentItem() != null) { - state.getCurrentItem().setPubDate(DateUtils.parse(content)); + state.getCurrentItem().setPubDate(DateUtils.parseOrNullIfFuture(content)); } else if (IMAGE_LOGO.equals(top) && state.getFeed() != null && state.getFeed().getImageUrl() == null) { state.getFeed().setImageUrl(content); } else if (IMAGE_ICON.equals(top) && state.getFeed() != null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java index 196583bcd..a0b9fbef9 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java @@ -3,6 +3,7 @@ package de.danoeh.antennapod.core.util; import android.content.Context; import android.util.Log; +import androidx.annotation.Nullable; import org.apache.commons.lang3.StringUtils; import java.text.DateFormat; @@ -122,6 +123,21 @@ public class DateUtils { return null; } + /** + * Parses the date but if the date is in the future, returns null. + */ + @Nullable + public static Date parseOrNullIfFuture(final String input) { + Date date = parse(input); + if (date == null) { + return null; + } + Date now = new Date(); + if (date.after(now)) { + return null; + } + return date; + } /** * Takes a string of the form [HH:]MM:SS[.mmm] and converts it to |