sync_stream.service depend on repos

refactor assets restoration
update dependencies in tests
This commit is contained in:
Peter Ombodi 2025-10-07 14:18:45 +03:00
parent ca43c7907e
commit ebfab4b01b
9 changed files with 112 additions and 50 deletions

View file

@ -1,13 +1,16 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/services/local_files_manager.service.dart';
import 'package:logging/logging.dart';
final localFilesManagerRepositoryProvider = Provider(
(ref) => LocalFilesManagerRepository(ref.watch(localFileManagerServiceProvider)),
);
class LocalFilesManagerRepository {
const LocalFilesManagerRepository(this._service);
LocalFilesManagerRepository(this._service);
final Logger _logger = Logger('SyncStreamService');
final LocalFilesManagerService _service;
Future<bool> moveToTrash(List<String> mediaUrls) async {
@ -25,4 +28,18 @@ class LocalFilesManagerRepository {
Future<bool> requestManageMediaPermission() async {
return await _service.requestManageMediaPermission();
}
Future<List<String>> restoreAssetsFromTrash(Iterable<LocalAsset> assets) async {
final restoredIds = <String>[];
for (final asset in assets) {
_logger.info("Restoring from trash, localId: ${asset.id}, remoteId: ${asset.checksum}");
try {
await _service.restoreFromTrashById(asset.id, asset.type.index);
restoredIds.add(asset.id);
} catch (e) {
_logger.warning("Restoring failure: $e");
}
}
return restoredIds;
}
}