From 4dc35c6bfa46391d4ac7421baf9642763b9d08e2 Mon Sep 17 00:00:00 2001 From: Benjamin Vadon Date: Mon, 13 Apr 2026 11:46:40 +0200 Subject: [PATCH 1/3] feat: Add method to update db and local instance --- .../infomaniak/drive/data/models/UploadFile.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt index 97bc26bcd3..f55eba332d 100644 --- a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt +++ b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt @@ -169,6 +169,23 @@ open class UploadFile( } } + private fun update(transaction: (UploadFile) -> Unit) { + updateDbInstance(transaction) + updateCurrentInstance(transaction) + } + + private fun updateDbInstance(transactionBlock: (UploadFile) -> Unit) { + getRealmInstance().use { realm -> + uploadFileByUriQuery(realm, uri).findFirst()?.apply { + realm.executeTransaction { transactionBlock(this) } + } + } + } + + private fun updateCurrentInstance(transactionBlock: (UploadFile) -> Unit) { + transactionBlock(this) + } + enum class Type { SYNC, UPLOAD, SHARED_FILE, SYNC_OFFLINE, CLOUD_STORAGE } From ba20073f306ba363118d3a3d7d2df7d3873ca95b Mon Sep 17 00:00:00 2001 From: Benjamin Vadon Date: Mon, 13 Apr 2026 11:47:29 +0200 Subject: [PATCH 2/3] feat: Apply on existing update method --- .../drive/data/models/UploadFile.kt | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt index f55eba332d..eccbf093f9 100644 --- a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt +++ b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt @@ -105,13 +105,9 @@ open class UploadFile( fun uploadConflictOption() = if (replaceOnConflict()) ConflictOption.VERSION else ConflictOption.RENAME fun resetUploadToken() { - getRealmInstance().use { realm -> - uploadFileByUriQuery(realm, uri).findFirst()?.apply { - realm.executeTransaction { - uploadToken = null - uploadHost = null - } - } + updateDbInstance { + it.uploadToken = null + it.uploadHost = null } } @@ -127,24 +123,19 @@ open class UploadFile( } fun updateFileSize(newFileSize: Long) { - getRealmInstance().use { realm -> - uploadFileByUriQuery(realm, uri).findFirst()?.let { uploadFile -> - realm.executeTransaction { uploadFile.fileSize = newFileSize } - } + update { + it.fileSize = newFileSize } - fileSize = newFileSize } fun updateUploadToken(newUploadToken: String, uploadHost: String) { - getRealmInstance().use { realm -> - uploadFileByUriQuery(realm, uri).findFirst()?.let { uploadFile -> - realm.executeTransaction { - uploadFile.uploadToken = newUploadToken - uploadFile.uploadHost = uploadHost - } - } + updateDbInstance { + it.uploadToken = newUploadToken + it.uploadHost = uploadHost + } + updateCurrentInstance { + it.uploadToken = newUploadToken } - uploadToken = newUploadToken } fun deleteIfExists(keepFile: Boolean = false, customRealm: Realm? = null) { From f7945f1dc814a8ee586fb8c582e1c8e50dd63b9f Mon Sep 17 00:00:00 2001 From: Benjamin Vadon Date: Wed, 22 Apr 2026 07:35:45 +0200 Subject: [PATCH 3/3] chore: Apply feedback to remove disambiguity --- .../java/com/infomaniak/drive/data/models/UploadFile.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt index eccbf093f9..7ce32a27cd 100644 --- a/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt +++ b/app/src/main/java/com/infomaniak/drive/data/models/UploadFile.kt @@ -167,9 +167,9 @@ open class UploadFile( private fun updateDbInstance(transactionBlock: (UploadFile) -> Unit) { getRealmInstance().use { realm -> - uploadFileByUriQuery(realm, uri).findFirst()?.apply { - realm.executeTransaction { transactionBlock(this) } - } + uploadFileByUriQuery(realm, uri) + .findFirst() + ?.let { uploadFile -> realm.executeTransaction { transactionBlock(uploadFile) } } } }