Skip to content

Commit 8b48ebd

Browse files
alperozturk96backportbot[bot]
authored andcommitted
fix: check deleted files for local behaviour delete
Signed-off-by: alperozturk <[email protected]>
1 parent cd7eee2 commit 8b48ebd

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,7 @@ class AutoUploadWorker(
325325
// if local file deleted, upload process cannot be started or retriable thus needs to be removed
326326
if (path.isEmpty() || !file.exists()) {
327327
Log_OC.w(TAG, "detected non-existing local file, removing entity")
328-
repository.deleteByLocalPathAndId(path, id)
329-
uploadsStorageManager.removeUpload(upload)
328+
deleteNonExistingFile(path, id, upload)
330329
continue
331330
}
332331

@@ -383,6 +382,11 @@ class AutoUploadWorker(
383382
}
384383
}
385384

385+
private suspend fun deleteNonExistingFile(path: String, id: Int, upload: OCUpload) {
386+
repository.deleteByLocalPathAndId(path, id)
387+
uploadsStorageManager.removeUpload(upload)
388+
}
389+
386390
private fun createEntityAndUpload(user: User, localPath: String, remotePath: String): Pair<UploadEntity, OCUpload> {
387391
val (needsCharging, needsWifi, uploadAction) = getUploadSettings(syncedFolder)
388392
Log_OC.d(TAG, "creating oc upload for ${user.accountName}")

app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,19 @@ public void handleLocalBehaviour() {
12831283
handleLocalBehaviour(temporalFile, expectedFile, originalFile, client);
12841284
}
12851285

1286+
private void deleteNonExistingFile(File file) {
1287+
if (file.exists()) {
1288+
return;
1289+
}
1290+
1291+
Log_OC.d(TAG, "deleting non-existing file from upload list and file list");
1292+
1293+
uploadsStorageManager.removeUpload(mOCUploadId);
1294+
1295+
// some chunks can be uploaded and can still exists in db thus we have to remove it as well
1296+
getStorageManager().removeFile(mFile, true, true);
1297+
}
1298+
12861299
private void handleLocalBehaviour(File temporalFile,
12871300
File expectedFile,
12881301
File originalFile,
@@ -1293,6 +1306,9 @@ private void handleLocalBehaviour(File temporalFile,
12931306
Files.delete(originalFile.toPath());
12941307
} catch (IOException e) {
12951308
Log_OC.e(TAG, "Could not delete original file: " + originalFile.getAbsolutePath(), e);
1309+
1310+
// if file is not exists we should only delete from our app
1311+
deleteNonExistingFile(originalFile);
12961312
}
12971313
mFile.setStoragePath("");
12981314
getStorageManager().deleteFileInMediaScan(originalFile.getAbsolutePath());

0 commit comments

Comments
 (0)