diff --git a/app/src/main/java/me/ash/reader/infrastructure/rss/RssHelper.kt b/app/src/main/java/me/ash/reader/infrastructure/rss/RssHelper.kt index a465698b6..b057e97ee 100644 --- a/app/src/main/java/me/ash/reader/infrastructure/rss/RssHelper.kt +++ b/app/src/main/java/me/ash/reader/infrastructure/rss/RssHelper.kt @@ -25,6 +25,7 @@ import me.ash.reader.ui.ext.currentAccountId import me.ash.reader.ui.ext.decodeHTML import me.ash.reader.ui.ext.extractDomain import me.ash.reader.ui.ext.isFuture +import me.ash.reader.ui.ext.isTooOld import me.ash.reader.ui.ext.spacerDollar import okhttp3.OkHttpClient import okhttp3.Request @@ -176,7 +177,8 @@ constructor( accountId = accountId, feedId = feed.id, date = - (syndEntry.publishedDate ?: syndEntry.updatedDate)?.takeIf { !it.isFuture(preDate) } + syndEntry.publishedDate?.takeIf { !it.isFuture(preDate) && !it.isTooOld() } + ?: syndEntry.updatedDate?.takeIf { !it.isFuture(preDate) && !it.isTooOld() } ?: preDate, title = syndEntry.title.decodeHTML() ?: feed.name, author = syndEntry.author, diff --git a/app/src/main/java/me/ash/reader/ui/ext/DateExt.kt b/app/src/main/java/me/ash/reader/ui/ext/DateExt.kt index 00126b363..ebd4ab853 100644 --- a/app/src/main/java/me/ash/reader/ui/ext/DateExt.kt +++ b/app/src/main/java/me/ash/reader/ui/ext/DateExt.kt @@ -88,3 +88,8 @@ private fun String.parseToDate( } fun Date.isFuture(staticDate: Date = Date()): Boolean = this.time > staticDate.time + +fun Date.isTooOld(minYear: Int = 1970): Boolean { + val cal = Calendar.getInstance().apply { time = this@isTooOld } + return cal.get(Calendar.YEAR) < minYear +}