outbox sync

This commit is contained in:
m
2026-09-13 10:09:21 +02:00
parent bad04b3219
commit 0b12f45b6c
5 changed files with 31 additions and 3 deletions
+12
View File
@@ -40,6 +40,11 @@ android {
compose = true
buildConfig = true
}
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
}
dependencies {
@@ -81,4 +86,11 @@ dependencies {
implementation(libs.coil.compose)
debugImplementation(libs.androidx.compose.ui.tooling)
testImplementation(libs.junit)
testImplementation(libs.robolectric)
testImplementation(libs.androidx.test.core)
testImplementation(libs.androidx.arch.core.testing)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.androidx.room.testing)
}
@@ -8,6 +8,7 @@ import com.vaultdrop.mobile.data.local.entity.FileStatus
import com.vaultdrop.mobile.data.remote.ApiClient
import com.vaultdrop.mobile.data.remote.dto.FileDto
import com.vaultdrop.mobile.domain.GenerateId
import com.vaultdrop.mobile.domain.SyncPlacement
import com.vaultdrop.mobile.domain.computeCategory
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
@@ -173,7 +174,7 @@ class FileRepository @Inject constructor(
// Le snapshot serveur confirme la présence cloud : si une copie
// physique existe aussi, placement local-cloud (jamais d'écrasement
// de l'uri / de régression du placement).
syncStatus = if (existing?.uri != null) FileStatus.LOCAL_CLOUD else FileStatus.CLOUD,
syncStatus = SyncPlacement.confirmed(existing?.uri != null),
processed = existing?.processed ?: false,
addedAt = existing?.addedAt ?: now,
updatedAt = now,
@@ -9,6 +9,7 @@ import com.vaultdrop.mobile.data.remote.ApiClient
import com.vaultdrop.mobile.data.remote.dto.FolderDto
import com.vaultdrop.mobile.domain.DeviceIdentity
import com.vaultdrop.mobile.domain.GenerateId
import com.vaultdrop.mobile.domain.SyncPlacement
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
import javax.inject.Singleton
@@ -77,7 +78,7 @@ class FolderRepository @Inject constructor(
// Le snapshot serveur confirme la présence cloud : si une copie
// physique existe aussi, placement local-cloud (jamais d'écrasement
// de l'uri / de régression du placement).
syncStatus = if (existing?.uri != null) FolderStatus.LOCAL_CLOUD else FolderStatus.CLOUD,
syncStatus = SyncPlacement.confirmed(existing?.uri != null),
addedAt = existing?.addedAt ?: now,
updatedAt = now,
)