Sync collections after uploads
This commit is contained in:
parent
3b138aa6f4
commit
ae924a52ee
1 changed files with 12 additions and 5 deletions
|
@ -40,7 +40,7 @@ class SyncService {
|
|||
SyncStatusUpdate _lastSyncStatusEvent;
|
||||
|
||||
static final _dbUpdationTimeKey = "db_updation_time";
|
||||
static final _diffLimit = 100;
|
||||
static final _diffLimit = 200;
|
||||
|
||||
SyncService._privateConstructor() {
|
||||
Bus.instance.on<UserAuthenticatedEvent>().listen((event) {
|
||||
|
@ -187,7 +187,13 @@ class SyncService {
|
|||
await _fetchEncryptedFilesDiff(collection.id);
|
||||
}
|
||||
await deleteFilesOnServer();
|
||||
await _uploadDiff();
|
||||
bool hasUploadedFiles = await _uploadDiff();
|
||||
if (hasUploadedFiles) {
|
||||
final updatedCollections = await _collectionsService.sync();
|
||||
for (final collection in updatedCollections) {
|
||||
await _fetchEncryptedFilesDiff(collection.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _fetchEncryptedFilesDiff(int collectionID) async {
|
||||
|
@ -207,7 +213,7 @@ class SyncService {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> _uploadDiff() async {
|
||||
Future<bool> _uploadDiff() async {
|
||||
final foldersToBackUp = Configuration.instance.getPathsToBackUp();
|
||||
final filesToBeUploaded =
|
||||
await _db.getFilesToBeUploadedWithinFolders(foldersToBackUp);
|
||||
|
@ -231,7 +237,7 @@ class SyncService {
|
|||
_syncStopRequested = false;
|
||||
Bus.instance
|
||||
.fire(SyncStatusUpdate(SyncStatus.completed, wasStopped: true));
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
final file = await _db.getUploadedFileInAnyCollection(uploadedFileID);
|
||||
final future = _uploader.upload(file, file.collectionID).then((value) {
|
||||
|
@ -249,7 +255,7 @@ class SyncService {
|
|||
_syncStopRequested = false;
|
||||
Bus.instance
|
||||
.fire(SyncStatusUpdate(SyncStatus.completed, wasStopped: true));
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
final collectionID = (await CollectionsService.instance
|
||||
.getOrCreateForPath(file.deviceFolder))
|
||||
|
@ -274,6 +280,7 @@ class SyncService {
|
|||
Bus.instance.fire(SyncStatusUpdate(SyncStatus.error));
|
||||
_logger.severe("Error in syncing files", e, s);
|
||||
}
|
||||
return uploadCounter > 0;
|
||||
}
|
||||
|
||||
Future _storeDiff(List<File> diff, int collectionID) async {
|
||||
|
|
Loading…
Add table
Reference in a new issue