diff --git a/.kotlin/sessions/kotlin-compiler-7270483765496797749.salive b/.kotlin/sessions/kotlin-compiler-10433629282235736384.salive
similarity index 100%
rename from .kotlin/sessions/kotlin-compiler-7270483765496797749.salive
rename to .kotlin/sessions/kotlin-compiler-10433629282235736384.salive
diff --git a/app/src/main/kotlin/com/syncflow/domain/sync/SyncEngine.kt b/app/src/main/kotlin/com/syncflow/domain/sync/SyncEngine.kt
index 3fb69bf..45ead7f 100644
--- a/app/src/main/kotlin/com/syncflow/domain/sync/SyncEngine.kt
+++ b/app/src/main/kotlin/com/syncflow/domain/sync/SyncEngine.kt
@@ -107,11 +107,10 @@ class SyncEngine @Inject constructor(
when (decision) {
SyncDecision.UPLOAD -> {
- var uploadedRemoteFile: RemoteFile? = null
val bytes = runCatching {
ensureRemoteDirs(provider, pair.remotePath, rel)
accessor.openInputStream(rel)?.use { stream ->
- uploadedRemoteFile = provider.uploadFile(stream, "${pair.remotePath}/$rel", local!!.sizeBytes) { }.getOrThrow()
+ provider.uploadFile(stream, "${pair.remotePath}/$rel", local!!.sizeBytes) { }.getOrThrow()
}
local!!.sizeBytes
}.getOrElse { e ->
@@ -120,8 +119,12 @@ class SyncEngine @Inject constructor(
return@withPermit FileOutcome(failed = 1)
}
logEvent(pair.id, SyncEventType.FILE_UPLOADED, rel, null, bytes)
+ // Don't store remote metadata from upload response — the server (Nextcloud etc.)
+ // may change mtime/etag during post-upload processing. Leaving remoteModifiedAt
+ // null forces the SKIP reconciliation on the next sync to fill it in from the
+ // directory listing, which is the same source all future syncs will use.
FileOutcome(uploaded = 1, bytesTransferred = bytes,
- newState = buildState(pair.id, rel, local!!, remoteAfterTransfer = uploadedRemoteFile))
+ newState = buildState(pair.id, rel, local!!, remoteAfterTransfer = null))
}
SyncDecision.DOWNLOAD -> {
val bytes = runCatching {
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index 32d1ce9..c6493f8 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -5,8 +5,41 @@
android:viewportWidth="108"
android:viewportHeight="108">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml
index 88e597b..19bae71 100644
--- a/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ b/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -6,77 +6,110 @@
android:viewportHeight="108">
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
-
+
-
+
-
+
-
+
diff --git a/version.properties b/version.properties
index 6da62ed..e313c7e 100644
--- a/version.properties
+++ b/version.properties
@@ -1,2 +1,2 @@
-VERSION_NAME=1.0.37
-VERSION_CODE=38
+VERSION_NAME=1.0.38
+VERSION_CODE=39