mirror of
https://github.com/immich-app/immich.git
synced 2025-12-29 17:25:00 +03:00
chore: refactor upload service (#20130)
* chore: refactor upload service * fix: cancel upload queue on logout (#20131) * fix: cancel upload on logout * fix: test --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex <alex.tran1502@gmail.com> --------- Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:background_downloader/background_downloader.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:immich_mobile/constants/constants.dart';
|
||||
|
||||
@@ -6,7 +7,6 @@ final uploadRepositoryProvider = Provider((ref) => UploadRepository());
|
||||
|
||||
class UploadRepository {
|
||||
void Function(TaskStatusUpdate)? onUploadStatus;
|
||||
|
||||
void Function(TaskProgressUpdate)? onTaskProgress;
|
||||
|
||||
UploadRepository() {
|
||||
@@ -27,11 +27,11 @@ class UploadRepository {
|
||||
);
|
||||
}
|
||||
|
||||
void enqueueAll(List<UploadTask> tasks) {
|
||||
void enqueueBackgroundAll(List<UploadTask> tasks) {
|
||||
FileDownloader().enqueueAll(tasks);
|
||||
}
|
||||
|
||||
Future<void> deleteAllTrackingRecords(String group) {
|
||||
Future<void> deleteDatabaseRecords(String group) {
|
||||
return FileDownloader().database.deleteAllRecords(group: group);
|
||||
}
|
||||
|
||||
@@ -42,4 +42,47 @@ class UploadRepository {
|
||||
Future<int> reset(String group) {
|
||||
return FileDownloader().reset(group: group);
|
||||
}
|
||||
|
||||
/// Get a list of tasks that are ENQUEUED or RUNNING
|
||||
Future<List<Task>> getActiveTasks(String group) {
|
||||
return FileDownloader().allTasks(group: group);
|
||||
}
|
||||
|
||||
Future<void> start() {
|
||||
return FileDownloader().start();
|
||||
}
|
||||
|
||||
Future<void> getUploadInfo() async {
|
||||
final [enqueuedTasks, runningTasks, canceledTasks, waitingTasks, pausedTasks] = await Future.wait([
|
||||
FileDownloader().database.allRecordsWithStatus(
|
||||
TaskStatus.enqueued,
|
||||
group: kBackupGroup,
|
||||
),
|
||||
FileDownloader().database.allRecordsWithStatus(
|
||||
TaskStatus.running,
|
||||
group: kBackupGroup,
|
||||
),
|
||||
FileDownloader().database.allRecordsWithStatus(
|
||||
TaskStatus.canceled,
|
||||
group: kBackupGroup,
|
||||
),
|
||||
FileDownloader().database.allRecordsWithStatus(
|
||||
TaskStatus.waitingToRetry,
|
||||
group: kBackupGroup,
|
||||
),
|
||||
FileDownloader().database.allRecordsWithStatus(
|
||||
TaskStatus.paused,
|
||||
group: kBackupGroup,
|
||||
),
|
||||
]);
|
||||
|
||||
debugPrint("""
|
||||
Upload Info:
|
||||
Enqueued: ${enqueuedTasks.length}
|
||||
Running: ${runningTasks.length}
|
||||
Canceled: ${canceledTasks.length}
|
||||
Waiting: ${waitingTasks.length}
|
||||
Paused: ${pausedTasks.length}
|
||||
""");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user