|
@@ -1,5 +1,4 @@
|
|
|
import 'dart:io';
|
|
import 'dart:io';
|
|
|
-
|
|
|
|
|
import 'package:injectable/injectable.dart';
|
|
import 'package:injectable/injectable.dart';
|
|
|
import 'package:keyboard/utils/atmob_log.dart';
|
|
import 'package:keyboard/utils/atmob_log.dart';
|
|
|
import 'package:keyboard/utils/upload/upload_scene_type.dart';
|
|
import 'package:keyboard/utils/upload/upload_scene_type.dart';
|
|
@@ -14,6 +13,9 @@ import '../file_util.dart';
|
|
|
/// 上传信息更新回调
|
|
/// 上传信息更新回调
|
|
|
typedef OnUploadInfoUpdateCallback = void Function(UploadInfo uploadInfo);
|
|
typedef OnUploadInfoUpdateCallback = void Function(UploadInfo uploadInfo);
|
|
|
|
|
|
|
|
|
|
+/// 上传失败时回调
|
|
|
|
|
+typedef OnUploadFailCallback = void Function(dynamic error);
|
|
|
|
|
+
|
|
|
/// 文件上传管理器
|
|
/// 文件上传管理器
|
|
|
@lazySingleton
|
|
@lazySingleton
|
|
|
class UploadFileManager {
|
|
class UploadFileManager {
|
|
@@ -32,6 +34,7 @@ class UploadFileManager {
|
|
|
required UploadSceneType sceneType,
|
|
required UploadSceneType sceneType,
|
|
|
required File file,
|
|
required File file,
|
|
|
OnUploadInfoUpdateCallback? onUploadInfoUpdateCallback,
|
|
OnUploadInfoUpdateCallback? onUploadInfoUpdateCallback,
|
|
|
|
|
+ OnUploadFailCallback? onUploadFailCallback,
|
|
|
}) {
|
|
}) {
|
|
|
// 创建一个上传记录,添加到队列中
|
|
// 创建一个上传记录,添加到队列中
|
|
|
UploadInfo uploadInfo = UploadInfo(
|
|
UploadInfo uploadInfo = UploadInfo(
|
|
@@ -49,7 +52,11 @@ class UploadFileManager {
|
|
|
_uploadInfoQueue.add(uploadInfo);
|
|
_uploadInfoQueue.add(uploadInfo);
|
|
|
|
|
|
|
|
// 执行上传任务
|
|
// 执行上传任务
|
|
|
- _doUploadFile(uploadInfo, onUploadInfoUpdateCallback);
|
|
|
|
|
|
|
+ _doUploadFile(
|
|
|
|
|
+ uploadInfo,
|
|
|
|
|
+ onUploadInfoUpdateCallback: onUploadInfoUpdateCallback,
|
|
|
|
|
+ onUploadFailCallback: onUploadFailCallback,
|
|
|
|
|
+ );
|
|
|
|
|
|
|
|
return uploadInfo;
|
|
return uploadInfo;
|
|
|
}
|
|
}
|
|
@@ -85,9 +92,10 @@ class UploadFileManager {
|
|
|
|
|
|
|
|
/// 执行,上传文件
|
|
/// 执行,上传文件
|
|
|
void _doUploadFile(
|
|
void _doUploadFile(
|
|
|
- UploadInfo uploadInfo,
|
|
|
|
|
|
|
+ UploadInfo uploadInfo, {
|
|
|
OnUploadInfoUpdateCallback? onUploadInfoUpdateCallback,
|
|
OnUploadInfoUpdateCallback? onUploadInfoUpdateCallback,
|
|
|
- ) {
|
|
|
|
|
|
|
+ OnUploadFailCallback? onUploadFailCallback,
|
|
|
|
|
+ }) {
|
|
|
File file = File(uploadInfo.filePath ?? "");
|
|
File file = File(uploadInfo.filePath ?? "");
|
|
|
fileUploadRepository
|
|
fileUploadRepository
|
|
|
.uploadImage(file: file)
|
|
.uploadImage(file: file)
|
|
@@ -114,6 +122,9 @@ class UploadFileManager {
|
|
|
if (onUploadInfoUpdateCallback != null) {
|
|
if (onUploadInfoUpdateCallback != null) {
|
|
|
onUploadInfoUpdateCallback(uploadInfo);
|
|
onUploadInfoUpdateCallback(uploadInfo);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (onUploadFailCallback != null) {
|
|
|
|
|
+ onUploadFailCallback(error);
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|