MultiUploader constructor
MultiUploader(
- List<
UploadFile> fileInfos, - Map<
String, dynamic> ? config
Implementation
MultiUploader(List<UploadFile> fileInfos, Map<String,dynamic>? config) {
for (var i = 0; i < fileInfos.length; i++) {
var fileObj = {
'url': fileInfos[i].url,
'file': fileInfos[i].file,
'contentType': fileInfos[i].contentType,
'fileName': fileInfos[i].fileName,
'fileSize': fileInfos[i].fileSize,
'status': FileStatus_NotUploaded,
'loadedSize': 0,
'lastLoadedSize': 0,
'retryCount': 0
};
Log(fileObj.toString());
// sort this.files in the decreasing order of fileSize
// insertion sort algorithm
//
var inserted = false;
for (var j = 0; j < this.files.length; j++) {
if (this.files[j]['fileSize'] < fileObj['fileSize']) {
this.files.insert(j, fileObj);
inserted = true;
break;
}
}
if (!inserted) {
this.files.add(fileObj);
}
}
if (config != null) {
if (config['maxConcurrency'] != null) this.config['maxConcurrency'] = config['maxConcurrency'];
if (config['maxRetry'] != null) this.config['maxRetry'] = config['maxRetry'];
if (config['monitorInterval'] != null) this.config['monitorInterval'] = config['monitorInterval'];
if (config['cancelThreshold'] != null) this.config['cancelThreshold'] = config['cancelThreshold'];
}
}