Pull on html content when syncing on Android

This commit is contained in:
Jackson Harper
2024-05-02 13:05:07 +08:00
parent 9555a7b951
commit 4744c37dcd
4 changed files with 64 additions and 83 deletions

View File

@ -47,6 +47,7 @@ query UpdatesSince(
updatedAt
language
wordsCount
content
}
}
pageInfo {

View File

@ -66,7 +66,8 @@ suspend fun DataService.sync(since: String, cursor: String?, limit: Int = 20): S
slug = it.slug,
isArchived = it.isArchived,
contentReader = it.contentReader.rawValue,
wordsCount = it.wordsCount
wordsCount = it.wordsCount,
content = it.content
)
val labels = it.labels?.map { label ->
SavedItemLabel(

View File

@ -255,19 +255,9 @@ class FollowingViewModel @Inject constructor(
since: String,
count: Int,
startTime: String,
isInitialBatch: Boolean = true
) {
libraryRepository.syncOfflineItemsWithServerIfNeeded()
val result = libraryRepository.sync(since = since, cursor = cursor, limit = 20)
// Fetch content for the initial batch only
if (isInitialBatch) {
for (slug in result.savedItemSlugs) {
delay(250)
contentRequestChannel.send(slug)
}
}
val totalCount = count + result.count
if (!result.hasError && result.hasMoreItems && result.cursor != null) {
@ -276,7 +266,6 @@ class FollowingViewModel @Inject constructor(
since = since,
count = totalCount,
startTime = startTime,
isInitialBatch = false
)
} else {
datastoreRepo.putString(libraryLastSyncTimestamp, startTime)

View File

@ -273,20 +273,11 @@ class LibraryViewModel @Inject constructor(
cursor: String?,
since: String,
count: Int,
startTime: String,
isInitialBatch: Boolean = true
startTime: String
) {
libraryRepository.syncOfflineItemsWithServerIfNeeded()
val result = libraryRepository.sync(since = since, cursor = cursor, limit = 20)
// Fetch content for the initial batch only
if (isInitialBatch) {
for (slug in result.savedItemSlugs) {
delay(250)
contentRequestChannel.send(slug)
}
}
val totalCount = count + result.count
if (!result.hasError && result.hasMoreItems && result.cursor != null) {
@ -295,7 +286,6 @@ class LibraryViewModel @Inject constructor(
since = since,
count = totalCount,
startTime = startTime,
isInitialBatch = false
)
} else {
datastoreRepository.putString(libraryLastSyncTimestamp, startTime)