|
@@ -69,46 +69,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
|
|
|
#pragma mark 删除多余的任务 比如数据删除了 但是任务还在
|
|
|
- (void)checkDownloadTaskFun{
|
|
|
-// NSArray *allDownItemArr = [YCDownloadManager downloadList];
|
|
|
-//
|
|
|
-// NSArray* downloadingArr = nil;
|
|
|
-// NSArray* downloadingFail = nil;
|
|
|
-// if(_databaseArr && _databaseArr.count == 3){
|
|
|
-// downloadingArr = _databaseArr[0];
|
|
|
-// downloadingFail = _databaseArr[2];
|
|
|
-// }
|
|
|
-//
|
|
|
-// for (YCDownloadItem *item in allDownItemArr) {
|
|
|
-//
|
|
|
-// BOOL isNeedStopType = YES;
|
|
|
-//
|
|
|
-// //解码
|
|
|
-// NSString * urlString = [item.downloadURL stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
|
-//
|
|
|
-// if(downloadingArr && downloadingArr.count > 0){
|
|
|
-// for (couldPhoneFileModel*dataModel in downloadingArr) {
|
|
|
-// if([urlString isEqualToString:dataModel.fileUrl]){
|
|
|
-// isNeedStopType = NO;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(downloadingFail && downloadingFail.count > 0){
|
|
|
-// for (couldPhoneFileModel*dataModel in downloadingFail) {
|
|
|
-// if([urlString isEqualToString:dataModel.fileUrl]){
|
|
|
-// if(item.downloadedSize >0){
|
|
|
-// isNeedStopType = NO;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(isNeedStopType){
|
|
|
-// HLog(@"停止多的下载任务:%@",item.downloadURL);
|
|
|
-// [YCDownloadManager stopDownloadWithItem:item];
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//添加保存记录
|
|
@@ -133,7 +94,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
|
|
|
for (couldPhoneFileModel*model in taskArr) {
|
|
|
BOOL canAdd = YES;
|
|
|
-
|
|
|
+ HLog(@"正在遍历下载数组 看是否有任务重复")
|
|
|
if(downloadingArr.count > 0){
|
|
|
for (couldPhoneFileModel*downloadingModel in downloadingArr) {
|
|
|
if([downloadingModel.fileUrl isEqualToString:model.fileUrl]){
|
|
@@ -246,12 +207,16 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
#pragma mark 处理删除内存数据
|
|
|
- (void)deteleModel:(couldPhoneFileModel*)delModel inArr:(NSMutableArray*)delArr{
|
|
|
|
|
|
- for (couldPhoneFileModel *dataModel in delArr) {
|
|
|
- if(delModel.bg_id.integerValue == dataModel.bg_id.integerValue){
|
|
|
- [delArr removeObject:dataModel];
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ HLog(@"删除某个指定的下载对象 %@",delModel.name)
|
|
|
+ [delArr removeObject:delModel];
|
|
|
+
|
|
|
+// for (couldPhoneFileModel *dataModel in delArr) {
|
|
|
+// if(delModel.bg_id.integerValue == dataModel.bg_id.integerValue){
|
|
|
+// HLog(@"正在遍历下载的 数组 并且删除某个数据")
|
|
|
+// [delArr removeObject:dataModel];
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -303,6 +268,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
NSMutableArray *ingArr = _databaseArr[0];
|
|
|
for (couldPhoneFileModel* model in failArr) {
|
|
|
if (dataModel.bg_id.integerValue == model.bg_id.integerValue) {
|
|
|
+ HLog(@"正在遍历下载失败数组 并且删除某个数据")
|
|
|
[failArr removeObject:model];
|
|
|
[ingArr addObject:dataModel];
|
|
|
break;
|
|
@@ -349,6 +315,8 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
#pragma mark 下载完成
|
|
|
- (void)downloadTaskFinishedNoti:(NSNotification *)notification
|
|
|
{
|
|
|
+ HLog(@"downloadTaskFinishedNoti")
|
|
|
+
|
|
|
customDownloadOperation *model = notification.userInfo.allValues.firstObject;
|
|
|
|
|
|
if(!model)return;
|
|
@@ -360,12 +328,14 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
[self saveFileInfoWithDict:dataDict with:model.url];
|
|
|
|
|
|
[self handldDownloadDoneDataBy:model];
|
|
|
+
|
|
|
+ HLog(@"handldDownloadDoneDataBy done")
|
|
|
}
|
|
|
else if (model.downloadState == customDownloadStateFailed){
|
|
|
[self handldDownloadFailDataBy:model];
|
|
|
}
|
|
|
|
|
|
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
|
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:nasDownloadTaskFinishedNotification object:model];
|
|
|
|
|
|
[[webRtcManager shareManager] NasDownloadTaskFinishedNoti:model];
|
|
@@ -381,26 +351,51 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
NSString * urlString = [model.url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
|
|
|
|
if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ HLog(@"正在遍历下载完成数组 开始 %@",model.fileName)
|
|
|
NSMutableArray *ingArr = _databaseArr[0];
|
|
|
+ couldPhoneFileModel*curDataModel = nil;
|
|
|
for (couldPhoneFileModel*dataModel in ingArr) {
|
|
|
- HLog(@"22222222 %@\n%@",urlString,dataModel.fileUrl);
|
|
|
+ //HLog(@"22222222 %@\n%@",urlString,dataModel.fileUrl);
|
|
|
if([urlString isEqualToString:dataModel.fileUrl]){
|
|
|
|
|
|
- dataModel.curDownloadStateType = downloadStateDone;
|
|
|
-
|
|
|
- NSMutableArray *doneArr = _databaseArr[1];
|
|
|
- [doneArr insertObject:dataModel atIndex:0];
|
|
|
-
|
|
|
- //更新数据库
|
|
|
- [dataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
-
|
|
|
- }];
|
|
|
+// dataModel.curDownloadStateType = downloadStateDone;
|
|
|
+// HLog(@"正在遍历下载完成数组 并且添加 %@",dataModel.name)
|
|
|
+// NSMutableArray *doneArr = _databaseArr[1];
|
|
|
+// [doneArr insertObject:dataModel atIndex:0];
|
|
|
+//
|
|
|
+// //更新数据库
|
|
|
+// [dataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
+//
|
|
|
+// }];
|
|
|
|
|
|
- [self deteleModel:dataModel inArr:ingArr];
|
|
|
+ curDataModel = dataModel;
|
|
|
+ //[self deteleModel:dataModel inArr:ingArr];
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ HLog(@"正在遍历下载完成数组 结束")
|
|
|
+ if(curDataModel){
|
|
|
+ curDataModel.curDownloadStateType = downloadStateDone;
|
|
|
+ HLog(@"正在遍历下载完成数组 并且添加 %@",curDataModel.name)
|
|
|
+ NSMutableArray *doneArr = _databaseArr[1];
|
|
|
+ [doneArr insertObject:curDataModel atIndex:0];
|
|
|
+
|
|
|
+ HLog(@"开始删除某个指定的下载对象 %@",curDataModel.name)
|
|
|
+ [ingArr removeObject:curDataModel];
|
|
|
+ HLog(@"完成删除某个指定的下载对象 %@",curDataModel.name)
|
|
|
+
|
|
|
+ //更新数据库
|
|
|
+// [curDataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
+// HLog(@"33333")
|
|
|
+// }];
|
|
|
+
|
|
|
+ [curDataModel bg_saveOrUpdate];
|
|
|
+
|
|
|
+ HLog(@"44444")
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -421,6 +416,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
|
|
|
dataModel.curDownloadStateType = downloadStateFail;
|
|
|
dataModel.failMsg = NSLocalizedString(@"File_download_error_404",nil);
|
|
|
+ HLog(@"正在遍历下载失败数组 并且删除某个数据")
|
|
|
|
|
|
//失败里面添加
|
|
|
NSMutableArray *failArr = _databaseArr[2];
|
|
@@ -489,9 +485,10 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
- (void)reDownloadFileFunBy:(NSMutableArray*)arr withAll:(BOOL)isAllType
|
|
|
{
|
|
|
|
|
|
+ HLog(@"reDownloadFileFunBy --- %ld",arr.count)
|
|
|
+ KWeakSelf
|
|
|
if(isAllType){
|
|
|
- //[[mixDownloadManager shareManager] startAllDownloadTask];
|
|
|
-
|
|
|
+
|
|
|
if (_databaseArr && _databaseArr.count == 3) {
|
|
|
|
|
|
NSMutableArray *downloadingArr = _databaseArr[0];
|
|
@@ -502,43 +499,61 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
model.curDownloadStateType = downloadStateUploading;
|
|
|
[ReverseOrderArr addObject:model];
|
|
|
}
|
|
|
-
|
|
|
-// for (couldPhoneFileModel*model in downloadingArr) {
|
|
|
-// model.downloadBoxStateType = downloadBoxStateDownloadloading;
|
|
|
-// }
|
|
|
-
|
|
|
+
|
|
|
//这里处理重新下载
|
|
|
- [self beginDownloadFilesByUrls:ReverseOrderArr];
|
|
|
-
|
|
|
+ [weakSelf beginDownloadFilesByUrls:ReverseOrderArr];
|
|
|
|
|
|
if(downloadingArr.count > 0){
|
|
|
- [couldPhoneFileModel bg_updateArrayAsync:downloadingArr complete:^(BOOL isSuccess) {
|
|
|
-
|
|
|
+ [couldPhoneFileModel bg_saveOrUpdateArrayAsync:downloadingArr complete:^(BOOL isSuccess) {
|
|
|
+
|
|
|
}];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else{
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ NSMutableArray *downloadingArr = arr;
|
|
|
+ NSMutableArray *ReverseOrderArr = [NSMutableArray new];
|
|
|
|
|
|
- couldPhoneFileModel* dataModel = nil;
|
|
|
- if(arr && arr.count > 0){
|
|
|
- dataModel = arr.firstObject;
|
|
|
-
|
|
|
- //修改数据库状态
|
|
|
- dataModel.curDownloadStateType = downloadStateUploading;
|
|
|
- [couldPhoneFileModel bg_saveOrUpdateArrayAsync:@[dataModel] complete:^(BOOL isSuccess) {
|
|
|
-
|
|
|
- }];
|
|
|
- }else{
|
|
|
- return;
|
|
|
+ for (NSInteger i = downloadingArr.count -1; i>=0; i--) {
|
|
|
+ couldPhoneFileModel*model = downloadingArr[i];
|
|
|
+ model.curDownloadStateType = downloadStateUploading;
|
|
|
+ [ReverseOrderArr addObject:model];
|
|
|
}
|
|
|
- NSString *urlString = dataModel.fileUrl;
|
|
|
- NSString *requestURLEncodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
|
- HLog(@"%@",urlString);
|
|
|
+
|
|
|
+ //这里处理重新下载
|
|
|
+ [self beginDownloadFilesByUrls:ReverseOrderArr];
|
|
|
|
|
|
- [[nasDownloadManager shareManager] startDownLoadWithUrl:requestURLEncodedString];
|
|
|
|
|
|
+ if(downloadingArr.count > 0){
|
|
|
+ [couldPhoneFileModel bg_saveOrUpdateArrayAsync:downloadingArr complete:^(BOOL isSuccess) {
|
|
|
+
|
|
|
+ }];
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+// {
|
|
|
+//
|
|
|
+// couldPhoneFileModel* dataModel = nil;
|
|
|
+// if(arr && arr.count > 0){
|
|
|
+// dataModel = arr.firstObject;
|
|
|
+//
|
|
|
+// //修改数据库状态
|
|
|
+// dataModel.curDownloadStateType = downloadStateUploading;
|
|
|
+// [couldPhoneFileModel bg_saveOrUpdateArrayAsync:@[dataModel] complete:^(BOOL isSuccess) {
|
|
|
+//
|
|
|
+// }];
|
|
|
+// }else{
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// NSString *urlString = dataModel.fileUrl;
|
|
|
+// NSString *requestURLEncodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
|
+// HLog(@"%@",urlString);
|
|
|
+//
|
|
|
+// [[nasDownloadManager shareManager] startDownLoadWithUrl:requestURLEncodedString];
|
|
|
+//
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
#pragma mark 重新开始下载 第一次进去传输列表是用
|