diff --git a/lib/services/trash_sync_service.dart b/lib/services/trash_sync_service.dart index aef48cd1a..3952ea71f 100644 --- a/lib/services/trash_sync_service.dart +++ b/lib/services/trash_sync_service.dart @@ -39,10 +39,9 @@ class TrashSyncService { _logger.fine("inserting ${diff.trashedFiles.length} items in trash"); await _trashDB.insertMultiple(diff.trashedFiles); } - if (diff.deletedFiles.isNotEmpty) { - _logger.fine("discard ${diff.deletedFiles.length} deleted items"); - await _trashDB - .delete(diff.deletedFiles.map((e) => e.uploadedFileID).toList()); + if (diff.deletedUploadIDs.isNotEmpty) { + _logger.fine("discard ${diff.deletedUploadIDs.length} deleted items"); + await _trashDB.delete(diff.deletedUploadIDs); } if (diff.restoredFiles.isNotEmpty) { _logger.fine("discard ${diff.restoredFiles.length} restored items"); @@ -68,12 +67,6 @@ class TrashSyncService { ignoredFiles.add(file); } } - for (TrashFile t in diff.deletedFiles) { - final file = IgnoredFile.fromTrashItem(t); - if (file != null) { - ignoredFiles.add(file); - } - } if (ignoredFiles.isNotEmpty) { _logger.fine('updating ${ignoredFiles.length} ignored files '); await IgnoredFilesService.instance.cacheAndInsert(ignoredFiles); diff --git a/lib/utils/trash_diff_fetcher.dart b/lib/utils/trash_diff_fetcher.dart index 49c8649f5..701a028db 100644 --- a/lib/utils/trash_diff_fetcher.dart +++ b/lib/utils/trash_diff_fetcher.dart @@ -18,7 +18,7 @@ class TrashDiffFetcher { Future getTrashFilesDiff(int sinceTime) async { try { final response = await _dio.get( - Configuration.instance.getHttpEndpoint() + "/trash/diff", + Configuration.instance.getHttpEndpoint() + "/trash/v2/diff", options: Options( headers: {"X-Auth-Token": Configuration.instance.getToken()}), queryParameters: { @@ -27,13 +27,17 @@ class TrashDiffFetcher { ); int latestUpdatedAtTime = 0; final trashedFiles = []; - final deletedFiles = []; + final deletedUploadIDs = []; final restoredFiles = []; if (response != null) { final diff = response.data["diff"] as List; final bool hasMore = response.data["hasMore"] as bool; final startTime = DateTime.now(); for (final item in diff) { + if (item["isDeleted"]) { + deletedUploadIDs.add(item["file"]["id"]); + continue; + } final trash = TrashFile(); trash.createdAt = item['createdAt']; trash.updateAt = item['updatedAt']; @@ -77,10 +81,6 @@ class TrashDiffFetcher { trash.pubMagicMetadata = PubMagicMetadata.fromEncodedJson(trash.pubMmdEncodedJson); } - if (item["isDeleted"]) { - deletedFiles.add(trash); - continue; - } if (item['isRestored']) { restoredFiles.add(trash); continue; @@ -97,10 +97,10 @@ class TrashDiffFetcher { startTime.microsecondsSinceEpoch)) .inMilliseconds .toString()); - return Diff(trashedFiles, restoredFiles, deletedFiles, hasMore, + return Diff(trashedFiles, restoredFiles, deletedUploadIDs, hasMore, latestUpdatedAtTime); } else { - return Diff([], [], [], false, 0); + return Diff([], [], [], false, 0); } } catch (e, s) { _logger.severe(e, s); @@ -112,10 +112,10 @@ class TrashDiffFetcher { class Diff { final List trashedFiles; final List restoredFiles; - final List deletedFiles; + final List deletedUploadIDs; final bool hasMore; final int lastSyncedTimeStamp; - Diff(this.trashedFiles, this.restoredFiles, this.deletedFiles, this.hasMore, - this.lastSyncedTimeStamp); + Diff(this.trashedFiles, this.restoredFiles, this.deletedUploadIDs, + this.hasMore, this.lastSyncedTimeStamp); }