From abb5eade24a1b2ca52b8f6f42bd936a839fa39a5 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 3 Jan 2023 10:37:35 -0800 Subject: [PATCH] add properties to LinkedItem model to match ios model --- .../omnivore/networking/LinkedItemQuery.kt | 10 ++-- .../omnivore/networking/SearchQuery.kt | 10 ++-- .../persistence/entities/LinkedItem.kt | 51 ++++++++++++++++--- 3 files changed, 53 insertions(+), 18 deletions(-) diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/LinkedItemQuery.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/LinkedItemQuery.kt index 917b5785f..970e49c2a 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/LinkedItemQuery.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/LinkedItemQuery.kt @@ -62,10 +62,10 @@ suspend fun Networker.linkedItem(slug: String): LinkedItemQueryResponse { val linkedItem = LinkedItem( id = article.articleFields.id, title = article.articleFields.title, - createdAt = article.articleFields.createdAt, - savedAt = article.articleFields.savedAt, - readAt = article.articleFields.readAt, - updatedAt = article.articleFields.updatedAt, + createdAt = article.articleFields.createdAt as String, + savedAt = article.articleFields.savedAt as String, + readAt = article.articleFields.readAt as String?, + updatedAt = article.articleFields.updatedAt as String?, readingProgress = article.articleFields.readingProgressPercent, readingProgressAnchor = article.articleFields.readingProgressAnchorIndex, imageURLString = article.articleFields.image, @@ -74,7 +74,7 @@ suspend fun Networker.linkedItem(slug: String): LinkedItemQueryResponse { publisherURLString = article.articleFields.originalArticleUrl, siteName = article.articleFields.siteName, author = article.articleFields.author, - publishDate = article.articleFields.publishedAt, + publishDate = article.articleFields.publishedAt as String?, slug = article.articleFields.slug, isArchived = article.articleFields.isArchived, contentReader = article.articleFields.contentReader.rawValue, diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SearchQuery.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SearchQuery.kt index 417b2eab2..c45ade9ed 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SearchQuery.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SearchQuery.kt @@ -72,10 +72,10 @@ suspend fun Networker.search( LinkedItem( id = it.node.id, title = it.node.title, - createdAt = it.node.createdAt, - savedAt = it.node.savedAt, - readAt = it.node.readAt, - updatedAt = it.node.updatedAt, + createdAt = it.node.createdAt as String, + savedAt = it.node.savedAt as String, + readAt = it.node.readAt as String?, + updatedAt = it.node.updatedAt as String?, readingProgress = it.node.readingProgressPercent, readingProgressAnchor = it.node.readingProgressAnchorIndex, imageURLString = it.node.image, @@ -84,7 +84,7 @@ suspend fun Networker.search( publisherURLString = it.node.originalArticleUrl, siteName = it.node.siteName, author = it.node.author, - publishDate = it.node.publishedAt, + publishDate = it.node.publishedAt as String?, slug = it.node.slug, isArchived = it.node.isArchived, contentReader = it.node.contentReader.rawValue, diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/LinkedItem.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/LinkedItem.kt index af81f95d3..a5e0f3613 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/LinkedItem.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/LinkedItem.kt @@ -1,14 +1,18 @@ package app.omnivore.omnivore.persistence.entities import androidx.core.net.toUri +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +@Entity data class LinkedItem( - val id: String, + @PrimaryKey val id: String, val title: String, - val createdAt: Any, - val savedAt: Any, - val readAt: Any?, - val updatedAt: Any?, + val createdAt: String, + val savedAt: String, + val readAt: String?, + val updatedAt: String?, val readingProgress: Double, val readingProgressAnchor: Int, val imageURLString: String?, @@ -17,11 +21,27 @@ data class LinkedItem( val publisherURLString: String?, val siteName: String?, val author: String?, - val publishDate: Any?, + val publishDate: String?, val slug: String, val isArchived: Boolean, - val contentReader: String?, - val content: String? + val contentReader: String? = null, + val content: String? = null, + val createdId: String? = null, + val htmlContent: String? = null, + val language: String? = null, + val listenPositionIndex: Int? = null, + val listenPositionOffset: Double? = null, + val listenPositionTime: Double? = null, + val localPDF: String? = null, + val onDeviceImageURLString: String? = null, + val originalHtml: String? = null, + @ColumnInfo(typeAffinity = ColumnInfo.BLOB) val pdfData: ByteArray? = null, + val serverSyncStatus: Int = 0, // TODO: implement, + val tempPDFURL: String? = null + +// hasMany highlights +// hasMany labels +// has Many recommendations ) { fun publisherDisplayName(): String? { return publisherURLString?.toUri()?.host @@ -31,4 +51,19 @@ data class LinkedItem( val hasPDFSuffix = pageURLString.endsWith("pdf") return contentReader == "PDF" || hasPDFSuffix } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as LinkedItem + + if (id != other.id) return false + + return true + } + + override fun hashCode(): Int { + return id.hashCode() + } }