mirror of
https://github.com/immich-app/immich.git
synced 2025-02-04 01:09:14 -05:00
* setup ios * chore: succesfully sent media to the app * share from Android * wip: navigate to share screen * wip: UI for displaying upload candidate * wip: logic * wip: upload logic * wip: up up up we got it up * wip * wip * wip * upload state * feat: i18n * fix: release build ios' * feat: clear file cache * pr feedback * using const for checking download status --------- Co-authored-by: Alex <alex@pop-os.localdomain>
42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'package:background_downloader/background_downloader.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/interfaces/upload.interface.dart';
|
|
import 'package:immich_mobile/utils/upload.dart';
|
|
|
|
final uploadRepositoryProvider = Provider((ref) => UploadRepository());
|
|
|
|
class UploadRepository implements IUploadRepository {
|
|
@override
|
|
void Function(TaskStatusUpdate)? onUploadStatus;
|
|
|
|
@override
|
|
void Function(TaskProgressUpdate)? onTaskProgress;
|
|
|
|
UploadRepository() {
|
|
FileDownloader().registerCallbacks(
|
|
group: uploadGroup,
|
|
taskStatusCallback: (update) => onUploadStatus?.call(update),
|
|
taskProgressCallback: (update) => onTaskProgress?.call(update),
|
|
);
|
|
}
|
|
|
|
@override
|
|
Future<bool> upload(UploadTask task) {
|
|
return FileDownloader().enqueue(task);
|
|
}
|
|
|
|
@override
|
|
Future<void> deleteAllTrackingRecords() {
|
|
return FileDownloader().database.deleteAllRecords();
|
|
}
|
|
|
|
@override
|
|
Future<bool> cancel(String id) {
|
|
return FileDownloader().cancelTaskWithId(id);
|
|
}
|
|
|
|
@override
|
|
Future<void> deleteRecordsWithIds(List<String> ids) {
|
|
return FileDownloader().database.deleteRecordsWithIds(ids);
|
|
}
|
|
}
|