Browse Source

use constant variable for batch size

ashilkn 2 years ago
parent
commit
36fe2d46d4

+ 1 - 0
lib/core/constants.dart

@@ -14,6 +14,7 @@ const int android11SDKINT = 30;
 const int jan011981Time = 347155200000000;
 const int jan011981Time = 347155200000000;
 const int galleryLoadStartTime = -8000000000000000; // Wednesday, March 6, 1748
 const int galleryLoadStartTime = -8000000000000000; // Wednesday, March 6, 1748
 const int galleryLoadEndTime = 9223372036854775807; // 2^63 -1
 const int galleryLoadEndTime = 9223372036854775807; // 2^63 -1
+const int batchSize = 1000;
 
 
 // used to identify which ente file are available in app cache
 // used to identify which ente file are available in app cache
 // todo: 6Jun22: delete old media identifier after 3 months
 // todo: 6Jun22: delete old media identifier after 3 months

+ 7 - 5
lib/services/collections_service.dart

@@ -9,6 +9,7 @@ import 'package:flutter/foundation.dart';
 import 'package:flutter_sodium/flutter_sodium.dart';
 import 'package:flutter_sodium/flutter_sodium.dart';
 import 'package:logging/logging.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/core/configuration.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/errors.dart';
 import 'package:photos/core/errors.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/core/network.dart';
@@ -711,7 +712,7 @@ class CollectionsService {
     final params = <String, dynamic>{};
     final params = <String, dynamic>{};
     params["collectionID"] = collectionID;
     params["collectionID"] = collectionID;
     params["files"] = [];
     params["files"] = [];
-    final batchedFiles = files.chunks(1000);
+    final batchedFiles = files.chunks(batchSize);
     for (final batch in batchedFiles) {
     for (final batch in batchedFiles) {
       for (final file in batch) {
       for (final file in batch) {
         final key = decryptFileKey(file);
         final key = decryptFileKey(file);
@@ -793,7 +794,7 @@ class CollectionsService {
     params["collectionID"] = toCollectionID;
     params["collectionID"] = toCollectionID;
     params["files"] = [];
     params["files"] = [];
     final toCollectionKey = getCollectionKey(toCollectionID);
     final toCollectionKey = getCollectionKey(toCollectionID);
-    final batchedFiles = files.chunks(1000);
+    final batchedFiles = files.chunks(batchSize);
     for (final batch in batchedFiles) {
     for (final batch in batchedFiles) {
       for (final file in batch) {
       for (final file in batch) {
         final key = decryptFileKey(file);
         final key = decryptFileKey(file);
@@ -819,7 +820,6 @@ class CollectionsService {
         await _filesDB.insertMultiple(batch);
         await _filesDB.insertMultiple(batch);
         await TrashDB.instance
         await TrashDB.instance
             .delete(batch.map((e) => e.uploadedFileID).toList());
             .delete(batch.map((e) => e.uploadedFileID).toList());
-        params["files"] = [];
         Bus.instance.fire(
         Bus.instance.fire(
           CollectionUpdatedEvent(toCollectionID, batch, "restore"),
           CollectionUpdatedEvent(toCollectionID, batch, "restore"),
         );
         );
@@ -840,6 +840,8 @@ class CollectionsService {
       } catch (e, s) {
       } catch (e, s) {
         _logger.severe("failed to restore files", e, s);
         _logger.severe("failed to restore files", e, s);
         rethrow;
         rethrow;
+      } finally {
+        params["files"] = [];
       }
       }
     }
     }
   }
   }
@@ -859,7 +861,7 @@ class CollectionsService {
     params["toCollectionID"] = toCollectionID;
     params["toCollectionID"] = toCollectionID;
     params["fromCollectionID"] = fromCollectionID;
     params["fromCollectionID"] = fromCollectionID;
     params["files"] = [];
     params["files"] = [];
-    final batchedFiles = files.chunks(1000);
+    final batchedFiles = files.chunks(batchSize);
     for (final batch in batchedFiles) {
     for (final batch in batchedFiles) {
       for (final file in batch) {
       for (final file in batch) {
         final fileKey = decryptFileKey(file);
         final fileKey = decryptFileKey(file);
@@ -935,7 +937,7 @@ class CollectionsService {
     final params = <String, dynamic>{};
     final params = <String, dynamic>{};
     params["fileIDs"] = <int>[];
     params["fileIDs"] = <int>[];
     params["collectionID"] = collectionID;
     params["collectionID"] = collectionID;
-    final batchedFiles = files.chunks(1000);
+    final batchedFiles = files.chunks(batchSize);
     for (final batch in batchedFiles) {
     for (final batch in batchedFiles) {
       for (final file in batch) {
       for (final file in batch) {
         params["fileIDs"].add(file.uploadedFileID);
         params["fileIDs"].add(file.uploadedFileID);

+ 2 - 1
lib/services/file_magic_service.dart

@@ -6,6 +6,7 @@ import 'package:dio/dio.dart';
 import 'package:flutter_sodium/flutter_sodium.dart';
 import 'package:flutter_sodium/flutter_sodium.dart';
 import 'package:logging/logging.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/core/configuration.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/files_db.dart';
@@ -135,7 +136,7 @@ class FileMagicService {
     final params = <String, dynamic>{};
     final params = <String, dynamic>{};
     params['metadataList'] = [];
     params['metadataList'] = [];
     final int ownerID = Configuration.instance.getUserID();
     final int ownerID = Configuration.instance.getUserID();
-    final batchedFiles = files.chunks(1000);
+    final batchedFiles = files.chunks(batchSize);
     try {
     try {
       for (final batch in batchedFiles) {
       for (final batch in batchedFiles) {
         for (final file in batch) {
         for (final file in batch) {

+ 3 - 2
lib/services/trash_sync_service.dart

@@ -4,6 +4,7 @@ import 'dart:async';
 
 
 import 'package:dio/dio.dart';
 import 'package:dio/dio.dart';
 import 'package:logging/logging.dart';
 import 'package:logging/logging.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/db/trash_db.dart';
 import 'package:photos/db/trash_db.dart';
@@ -116,7 +117,7 @@ class TrashSyncService {
     }
     }
     final requestData = <String, dynamic>{};
     final requestData = <String, dynamic>{};
     requestData["items"] = [];
     requestData["items"] = [];
-    final batchedItems = uniqueItems.chunks(1000);
+    final batchedItems = uniqueItems.chunks(batchSize);
     for (final batch in batchedItems) {
     for (final batch in batchedItems) {
       for (final item in batch) {
       for (final item in batch) {
         requestData["items"].add(item.toJson());
         requestData["items"].add(item.toJson());
@@ -139,7 +140,7 @@ class TrashSyncService {
     final params = <String, dynamic>{};
     final params = <String, dynamic>{};
     final uniqueFileIds = files.map((e) => e.uploadedFileID).toSet().toList();
     final uniqueFileIds = files.map((e) => e.uploadedFileID).toSet().toList();
     params["fileIDs"] = [];
     params["fileIDs"] = [];
-    final batchedFileIDs = uniqueFileIds.chunks(1000);
+    final batchedFileIDs = uniqueFileIds.chunks(batchSize);
     for (final batch in batchedFileIDs) {
     for (final batch in batchedFileIDs) {
       for (final fileID in batch) {
       for (final fileID in batch) {
         params["fileIDs"].add(fileID);
         params["fileIDs"].add(fileID);