Refactor
This commit is contained in:
@@ -825,6 +825,7 @@ class FilesDB with SqlDbBase {
|
||||
return files;
|
||||
}
|
||||
|
||||
// todo:rewrite (upload related)
|
||||
Future<List<int>> getUploadedFileIDsToBeUpdated(int ownerID) async {
|
||||
final db = await instance.sqliteAsyncDB;
|
||||
final rows = await db.getAll(
|
||||
@@ -841,6 +842,7 @@ class FilesDB with SqlDbBase {
|
||||
return uploadedFileIDs;
|
||||
}
|
||||
|
||||
// todo:rewrite (upload related)
|
||||
Future<List<EnteFile>> getFilesInAllCollection(
|
||||
int uploadedFileID,
|
||||
int userID,
|
||||
@@ -1102,15 +1104,6 @@ class FilesDB with SqlDbBase {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> deleteMultipleUploadedFiles(List<int> uploadedFileIDs) async {
|
||||
final db = await instance.sqliteAsyncDB;
|
||||
final inParam = uploadedFileIDs.join(',');
|
||||
|
||||
await db.execute(
|
||||
'DELETE FROM $filesTable WHERE $columnUploadedFileID IN ($inParam)',
|
||||
);
|
||||
}
|
||||
|
||||
// todo: neeraj (rw, upload flow)
|
||||
Future<void> deleteMultipleByGeneratedIDs(List<int> generatedIDs) async {
|
||||
if (generatedIDs.isEmpty) {
|
||||
@@ -1145,7 +1138,7 @@ class FilesDB with SqlDbBase {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> deleteLocalFiles(List<String> localIDs) async {
|
||||
Future<void> markLocalIDAsNull(List<String> localIDs) async {
|
||||
final inParam = localIDs.map((id) => "'$id'").join(',');
|
||||
final db = await instance.sqliteAsyncDB;
|
||||
await db.execute(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import "package:flutter/foundation.dart";
|
||||
import "package:photos/db/remote/db.dart";
|
||||
import "package:photos/db/remote/schema.dart";
|
||||
import "package:photos/extensions/stop_watch.dart";
|
||||
@@ -105,6 +106,17 @@ extension CollectionFiles on RemoteDB {
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<void> deleteFiles(List<int> fileIDs) async {
|
||||
if (fileIDs.isEmpty) return;
|
||||
final stopwatch = Stopwatch()..start();
|
||||
await sqliteDB.execute(
|
||||
"DELETE FROM collection_files WHERE file_id IN (${fileIDs.join(",")})",
|
||||
);
|
||||
debugPrint(
|
||||
'$runtimeType deleteFiles complete in ${stopwatch.elapsed.inMilliseconds}ms for ${fileIDs.length}',
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<int, int>> getCollectionIDToMaxCreationTime() async {
|
||||
final enteWatch = EnteWatch("getCollectionIDToMaxCreationTime")..start();
|
||||
final rows = await sqliteDB.getAll(
|
||||
|
||||
@@ -7,6 +7,7 @@ import "package:ente_crypto/ente_crypto.dart";
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import "package:photos/db/remote/table/collection_files.dart";
|
||||
import 'package:photos/db/trash_db.dart';
|
||||
import 'package:photos/events/collection_updated_event.dart';
|
||||
import 'package:photos/events/force_reload_trash_page_event.dart';
|
||||
@@ -17,6 +18,7 @@ import 'package:photos/models/file/file.dart';
|
||||
import 'package:photos/models/file/trash_file.dart';
|
||||
import 'package:photos/models/ignored_file.dart';
|
||||
import "package:photos/models/metadata/file_magic.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import 'package:photos/services/ignored_files_service.dart';
|
||||
import "package:photos/utils/file_key.dart";
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
@@ -123,6 +125,7 @@ class TrashSyncService {
|
||||
}
|
||||
await _trashFiles(requestData);
|
||||
}
|
||||
await remoteDB.deleteFiles(includedFileIDs.toList());
|
||||
}
|
||||
|
||||
Future<TrashDiff> getTrashFilesDiff(int sinceTime) async {
|
||||
|
||||
@@ -99,10 +99,7 @@ Future<void> deleteFilesFromEverywhere(
|
||||
}
|
||||
if (uploadedFilesToBeTrashed.isNotEmpty) {
|
||||
try {
|
||||
final fileIDs =
|
||||
uploadedFilesToBeTrashed.map((item) => item.fileID).toList();
|
||||
await trashSyncService.trashFilesOnServer(uploadedFilesToBeTrashed);
|
||||
await FilesDB.instance.deleteMultipleUploadedFiles(fileIDs);
|
||||
} catch (e) {
|
||||
_logger.severe(e);
|
||||
await showGenericErrorDialog(context: context, error: e);
|
||||
@@ -164,7 +161,6 @@ Future<void> deleteFilesFromRemoteOnly(
|
||||
}
|
||||
try {
|
||||
await trashSyncService.trashFilesOnServer(trashRequests);
|
||||
await FilesDB.instance.deleteMultipleUploadedFiles(uploadedFileIDs);
|
||||
} catch (e, s) {
|
||||
_logger.severe("Failed to delete files from remote", e, s);
|
||||
await showGenericErrorDialog(context: context, error: e);
|
||||
@@ -367,7 +363,7 @@ Future<bool> deleteLocalFiles(
|
||||
|
||||
if (deletedIDs.isNotEmpty) {
|
||||
final deletedFiles = await FilesDB.instance.getLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.deleteLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.markLocalIDAsNull(deletedIDs);
|
||||
_logger.info(deletedFiles.length.toString() + " files deleted locally");
|
||||
Bus.instance.fire(
|
||||
LocalPhotosUpdatedEvent(deletedFiles, source: "deleteLocal"),
|
||||
@@ -445,7 +441,7 @@ Future<bool> deleteLocalFilesAfterRemovingAlreadyDeletedIDs(
|
||||
|
||||
if (deletedIDs.isNotEmpty) {
|
||||
final deletedFiles = await FilesDB.instance.getLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.deleteLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.markLocalIDAsNull(deletedIDs);
|
||||
_logger.info(deletedFiles.length.toString() + " files deleted locally");
|
||||
Bus.instance.fire(
|
||||
LocalPhotosUpdatedEvent(deletedFiles, source: "deleteLocal"),
|
||||
@@ -520,7 +516,7 @@ Future<bool> retryFreeUpSpaceAfterRemovingAssetsNonExistingInDisk(
|
||||
|
||||
if (deletedIDs.isNotEmpty) {
|
||||
final deletedFiles = await FilesDB.instance.getLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.deleteLocalFiles(deletedIDs);
|
||||
await FilesDB.instance.markLocalIDAsNull(deletedIDs);
|
||||
_logger.info(deletedFiles.length.toString() + " files deleted locally");
|
||||
Bus.instance.fire(
|
||||
LocalPhotosUpdatedEvent(deletedFiles, source: "deleteLocal"),
|
||||
|
||||
Reference in New Issue
Block a user