import 'package:background_downloader/background_downloader.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/constants/constants.dart'; final uploadRepositoryProvider = Provider((ref) => UploadRepository()); class UploadRepository { void Function(TaskStatusUpdate)? onUploadStatus; void Function(TaskProgressUpdate)? onTaskProgress; UploadRepository() { FileDownloader().registerCallbacks( group: kBackupGroup, taskStatusCallback: (update) => onUploadStatus?.call(update), taskProgressCallback: (update) => onTaskProgress?.call(update), ); FileDownloader().registerCallbacks( group: kBackupLivePhotoGroup, taskStatusCallback: (update) => onUploadStatus?.call(update), taskProgressCallback: (update) => onTaskProgress?.call(update), ); FileDownloader().registerCallbacks( group: kManualUploadGroup, taskStatusCallback: (_) => {}, taskProgressCallback: (_) => {}, ); } void enqueueAll(List tasks) { FileDownloader().enqueueAll(tasks); } Future deleteAllTrackingRecords(String group) { return FileDownloader().database.deleteAllRecords(group: group); } Future cancelAll(String group) { return FileDownloader().cancelAll(group: group); } Future reset(String group) { return FileDownloader().reset(group: group); } }