From 55107106661bc4673d4bd01a79c5ea9eb8a27a0b Mon Sep 17 00:00:00 2001 From: Dima Date: Thu, 20 Jun 2024 16:49:34 +0900 Subject: [PATCH] Fixing items added to a group sometimes not getting synced until an app restart. Doing a realm.refresh() to sync Realm Instances after certain database operations. Upping versionCode to 77 --- .../org/zotero/android/database/RealmDbStorage.kt | 11 +++-------- .../zotero/android/screens/filter/FilterViewModel.kt | 2 +- .../android/screens/share/ShareItemSubmitter.kt | 6 +++--- .../android/sync/AttachmentFileCleanupController.kt | 8 ++++---- .../sync/syncactions/RevertLibraryFilesSyncAction.kt | 2 +- .../syncactions/RevertLibraryUpdatesSyncAction.kt | 2 +- .../sync/syncactions/SubmitDeletionSyncAction.kt | 2 +- .../sync/syncactions/SyncVersionsSyncAction.kt | 2 +- buildSrc/src/main/kotlin/BuildConfig.kt | 2 +- 9 files changed, 16 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/zotero/android/database/RealmDbStorage.kt b/app/src/main/java/org/zotero/android/database/RealmDbStorage.kt index 695c0c82..040cec53 100644 --- a/app/src/main/java/org/zotero/android/database/RealmDbStorage.kt +++ b/app/src/main/java/org/zotero/android/database/RealmDbStorage.kt @@ -50,7 +50,7 @@ class RealmDbStorage(val config: RealmConfiguration) { val result = coordinator.perform(request = request) if (invalidateRealm) { - coordinator.invalidate() + coordinator.refresh() } return result @@ -59,13 +59,13 @@ class RealmDbStorage(val config: RealmConfiguration) { fun perform(request: DbRequest) { val coordinator = RealmDbCoordinator().init(config) coordinator.perform(request = request) - coordinator.invalidate() + coordinator.refresh() } fun perform(requests: List) { val coordinator = RealmDbCoordinator().init(config) coordinator.perform(requests) - coordinator.invalidate() + coordinator.refresh() } } @@ -138,9 +138,4 @@ class RealmDbCoordinator { realm.refresh() } - fun invalidate() { -// realm.invalidate() - } - - } diff --git a/app/src/main/java/org/zotero/android/screens/filter/FilterViewModel.kt b/app/src/main/java/org/zotero/android/screens/filter/FilterViewModel.kt index 2ed7e4fb..426e16df 100644 --- a/app/src/main/java/org/zotero/android/screens/filter/FilterViewModel.kt +++ b/app/src/main/java/org/zotero/android/screens/filter/FilterViewModel.kt @@ -328,7 +328,7 @@ internal class FilterViewModel @Inject constructor( // } } - coordinator.invalidate() + coordinator.refresh() if (!viewState.searchTerm.isEmpty()) { // Perform search filter if needed snapshot = sorted diff --git a/app/src/main/java/org/zotero/android/screens/share/ShareItemSubmitter.kt b/app/src/main/java/org/zotero/android/screens/share/ShareItemSubmitter.kt index 8e071fc1..8c7e12c7 100644 --- a/app/src/main/java/org/zotero/android/screens/share/ShareItemSubmitter.kt +++ b/app/src/main/java/org/zotero/android/screens/share/ShareItemSubmitter.kt @@ -73,7 +73,7 @@ class ShareItemSubmitter @Inject constructor( parameters = item.updateParameters?.toMutableMap() ?: mutableMapOf() changeUuids = mutableMapOf(item.key to item.changes.map { it.identifier }) - coordinator.invalidate() + coordinator.refresh() } return parameters to changeUuids @@ -118,7 +118,7 @@ class ShareItemSubmitter @Inject constructor( .findFirst()?.value?.toLongOrNull() md5 = attachment.fields.where().key(FieldKeys.Item.Attachment.md5).findFirst()?.value - coordinator.invalidate() + coordinator.refresh() } if (mtime == null) { throw AttachmentState.Error.mtimeMissing @@ -172,7 +172,7 @@ class ShareItemSubmitter @Inject constructor( .findFirst()?.value?.toLongOrNull() md5 = attachment.fields.where().key(FieldKeys.Item.Attachment.md5).findFirst()?.value - coordinator.invalidate() + coordinator.refresh() } mtime ?: throw AttachmentState.Error.mtimeMissing diff --git a/app/src/main/java/org/zotero/android/sync/AttachmentFileCleanupController.kt b/app/src/main/java/org/zotero/android/sync/AttachmentFileCleanupController.kt index d1701863..cdc5f196 100644 --- a/app/src/main/java/org/zotero/android/sync/AttachmentFileCleanupController.kt +++ b/app/src/main/java/org/zotero/android/sync/AttachmentFileCleanupController.kt @@ -138,7 +138,7 @@ class AttachmentFileCleanupController @Inject constructor( } coordinator.perform(request = MarkAllFilesAsNotDownloadedDbRequest()) - coordinator.invalidate() + coordinator.refresh() } val deletedIndividually = delete(libraryIds, forUpload = forUpload) @@ -203,7 +203,7 @@ class AttachmentFileCleanupController @Inject constructor( ) ) - coordinator.invalidate() + coordinator.refresh() } for (key in toDelete) { @@ -246,7 +246,7 @@ class AttachmentFileCleanupController @Inject constructor( downloaded = false ) ) - coordinator.invalidate() + coordinator.refresh() canDelete = true } if (canDelete) { @@ -270,7 +270,7 @@ class AttachmentFileCleanupController @Inject constructor( coordinator.perform(request = MarkLibraryFilesAsNotDownloadedDbRequest(libraryId = libraryId)) - coordinator.invalidate() + coordinator.refresh() } val deletedIndividually = diff --git a/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryFilesSyncAction.kt b/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryFilesSyncAction.kt index ab788c10..f6ca299e 100644 --- a/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryFilesSyncAction.kt +++ b/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryFilesSyncAction.kt @@ -72,7 +72,7 @@ class RevertLibraryFilesSyncAction( ) changedFilenames = coordinator.perform(request = request).changedFilenames.toMutableList() - coordinator.invalidate() + coordinator.refresh() } Timber.e("RevertLibraryFilesSyncAction: rename local files to match file names") diff --git a/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryUpdatesSyncAction.kt b/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryUpdatesSyncAction.kt index 0e59d89b..e40fe5ac 100644 --- a/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryUpdatesSyncAction.kt +++ b/app/src/main/java/org/zotero/android/sync/syncactions/RevertLibraryUpdatesSyncAction.kt @@ -120,7 +120,7 @@ class RevertLibraryUpdatesSyncAction( failedCollections = collections.second.toMutableList() failedSearches = searches.second.toMutableList() failedItems = items.second.toMutableList() - coordinator.invalidate() + coordinator.refresh() } renameExistingFiles(changes = changes, libraryId = this.libraryId) diff --git a/app/src/main/java/org/zotero/android/sync/syncactions/SubmitDeletionSyncAction.kt b/app/src/main/java/org/zotero/android/sync/syncactions/SubmitDeletionSyncAction.kt index 7690bbd9..c9668ca9 100644 --- a/app/src/main/java/org/zotero/android/sync/syncactions/SubmitDeletionSyncAction.kt +++ b/app/src/main/java/org/zotero/android/sync/syncactions/SubmitDeletionSyncAction.kt @@ -112,7 +112,7 @@ class SubmitDeletionSyncAction( } } coordinator.perform(requests) - coordinator.invalidate() + coordinator.refresh() } return didCreateDeletions } catch (error: Exception) { diff --git a/app/src/main/java/org/zotero/android/sync/syncactions/SyncVersionsSyncAction.kt b/app/src/main/java/org/zotero/android/sync/syncactions/SyncVersionsSyncAction.kt index 72b8294b..a8da9461 100644 --- a/app/src/main/java/org/zotero/android/sync/syncactions/SyncVersionsSyncAction.kt +++ b/app/src/main/java/org/zotero/android/sync/syncactions/SyncVersionsSyncAction.kt @@ -168,7 +168,7 @@ class SyncVersionsSyncAction( ) identifiers = coordinator.perform(request = request).toMutableList() - coordinator.invalidate() + coordinator.refresh() }) return Pair(newVersion, identifiers) } diff --git a/buildSrc/src/main/kotlin/BuildConfig.kt b/buildSrc/src/main/kotlin/BuildConfig.kt index 53153745..f382aae1 100644 --- a/buildSrc/src/main/kotlin/BuildConfig.kt +++ b/buildSrc/src/main/kotlin/BuildConfig.kt @@ -4,7 +4,7 @@ object BuildConfig { const val compileSdkVersion = 34 const val targetSdk = 33 - val versionCode = 76 // Must be updated on every build + val versionCode = 77 // Must be updated on every build val version = Version( major = 1, minor = 0,