add properties to LinkedItem model to match ios model

This commit is contained in:
Satindar Dhillon 2023-01-03 10:37:35 -08:00
parent 7a49b52921
commit abb5eade24
3 changed files with 53 additions and 18 deletions

View file

@ -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,

View file

@ -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,

View file

@ -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()
}
}