summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/terst/feedreader/data/FeedParser.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/terst/feedreader/data/FeedParser.kt')
-rw-r--r--app/src/main/java/org/terst/feedreader/data/FeedParser.kt10
1 files changed, 8 insertions, 2 deletions
diff --git a/app/src/main/java/org/terst/feedreader/data/FeedParser.kt b/app/src/main/java/org/terst/feedreader/data/FeedParser.kt
index 629afe6..8b37e55 100644
--- a/app/src/main/java/org/terst/feedreader/data/FeedParser.kt
+++ b/app/src/main/java/org/terst/feedreader/data/FeedParser.kt
@@ -120,7 +120,12 @@ object FeedParser {
inItem = false
val content = itemContent ?: itemDescription
items += ParsedItem(
- guid = itemGuid ?: itemLink.ifBlank { null },
+ // .ifBlank, not just ?: -- a feed with a literal empty <guid></guid>
+ // (confirmed live: a Mother Jones entry) gives itemGuid = "" here,
+ // which is non-null and so passed straight through a plain `?:`,
+ // landing as the article's primary key. An empty-string id broke
+ // Navigation Compose's route matching and crashed on tap.
+ guid = itemGuid?.ifBlank { null } ?: itemLink.ifBlank { null },
title = itemTitle,
link = itemLink,
author = itemAuthor,
@@ -195,7 +200,8 @@ object FeedParser {
inEntry = false
val content = entryContent ?: entrySummary
items += ParsedItem(
- guid = entryId ?: entryLink.ifBlank { null },
+ // Same blank-vs-null fix as the RSS path above.
+ guid = entryId?.ifBlank { null } ?: entryLink.ifBlank { null },
title = entryTitle,
link = entryLink,
author = entryAuthor,