|
@@ -1,13 +1,12 @@
|
|
|
//
|
|
|
// nasDownloadFileManager.m
|
|
|
-// 双子星云手机
|
|
|
//
|
|
|
-// Created by xd h on 2024/8/5.
|
|
|
+//
|
|
|
+// Created by David on 2024/8/5.
|
|
|
//
|
|
|
|
|
|
#import "nasDownloadFileManager.h"
|
|
|
@interface nasDownloadFileManager ()
|
|
|
-@property (nonatomic, strong)NSLock *lock;
|
|
|
|
|
|
@end
|
|
|
|
|
@@ -33,7 +32,6 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(downloadTaskFinishedNoti:) name:nasDownloadTaskExeEnd object:nil];
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(downloadTaskFinishedNoti:) name:nasDownloadTaskExeError object:nil];
|
|
|
|
|
|
- _lock = [[NSLock alloc] init];
|
|
|
[self initDownloadManagerFun];
|
|
|
}
|
|
|
|
|
@@ -154,8 +152,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
|
|
|
//KWeakSelf
|
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
|
|
|
-// NSLock *lock = [NSLock new];
|
|
|
-// [lock lock];
|
|
|
+
|
|
|
[couldPhoneFileModel bg_findAsync:nas_box_download_tableName limit:0 orderBy:nil desc:YES complete:^(NSArray * _Nullable array) {
|
|
|
NSMutableArray *failArr = [NSMutableArray new];
|
|
|
NSMutableArray *doneArr = [NSMutableArray new];
|
|
@@ -174,24 +171,22 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
-
|
|
|
- NSMutableArray *newArr = [NSMutableArray new];
|
|
|
- [newArr addObject:otherArr];
|
|
|
- [newArr addObject:doneArr];
|
|
|
- [newArr addObject:failArr];
|
|
|
- self->_databaseArr = newArr;
|
|
|
|
|
|
- [lock unlock];
|
|
|
-
|
|
|
- if(isReGet){
|
|
|
- [self checkDownloadTaskFun];
|
|
|
+ @synchronized (self) {
|
|
|
+
|
|
|
+ NSMutableArray *newArr = [NSMutableArray new];
|
|
|
+ [newArr addObject:otherArr];
|
|
|
+ [newArr addObject:doneArr];
|
|
|
+ [newArr addObject:failArr];
|
|
|
+ self->_databaseArr = newArr;
|
|
|
+
|
|
|
+ if(isReGet){
|
|
|
+ [self checkDownloadTaskFun];
|
|
|
+ }
|
|
|
+
|
|
|
+ complete(self->_databaseArr);
|
|
|
}
|
|
|
-
|
|
|
- complete(self->_databaseArr);
|
|
|
}];
|
|
|
- // [lock unlock];
|
|
|
});
|
|
|
|
|
|
}
|
|
@@ -408,10 +403,10 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
// HLog(@"正在遍历下载完成数组 并且添加 %@",dataModel.name)
|
|
|
// NSMutableArray *doneArr = _databaseArr[1];
|
|
|
// [doneArr insertObject:dataModel atIndex:0];
|
|
|
-//
|
|
|
+//
|
|
|
// //更新数据库
|
|
|
// [dataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
-//
|
|
|
+//
|
|
|
// }];
|
|
|
|
|
|
curDataModel = dataModel;
|
|
@@ -591,15 +586,15 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
}
|
|
|
|
|
|
// {
|
|
|
-//
|
|
|
+//
|
|
|
// couldPhoneFileModel* dataModel = nil;
|
|
|
// if(arr && arr.count > 0){
|
|
|
// dataModel = arr.firstObject;
|
|
|
-//
|
|
|
+//
|
|
|
// //修改数据库状态
|
|
|
// dataModel.curDownloadStateType = downloadStateUploading;
|
|
|
// [couldPhoneFileModel bg_saveOrUpdateArrayAsync:@[dataModel] complete:^(BOOL isSuccess) {
|
|
|
-//
|
|
|
+//
|
|
|
// }];
|
|
|
// }else{
|
|
|
// return;
|
|
@@ -607,9 +602,9 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
// NSString *urlString = dataModel.fileUrl;
|
|
|
// NSString *requestURLEncodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
|
// HLog(@"%@",urlString);
|
|
|
-//
|
|
|
+//
|
|
|
// [[nasDownloadManager shareManager] startDownLoadWithUrl:requestURLEncodedString];
|
|
|
-//
|
|
|
+//
|
|
|
// }
|
|
|
}
|
|
|
|
|
@@ -688,15 +683,13 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
}
|
|
|
|
|
|
BOOL flag = NO;
|
|
|
- [_lock lock];
|
|
|
+ @synchronized (self) {
|
|
|
NSString *key = url;
|
|
|
NSMutableDictionary *dictM = [self getDownloadDownList];
|
|
|
[dictM setObject:dict forKey:key];
|
|
|
flag = [dictM writeToFile:[self getDownloadDonePlistPath] atomically:YES];
|
|
|
- [_lock unlock];
|
|
|
-
|
|
|
- return flag;
|
|
|
-
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/** 删除配置信息 */
|
|
@@ -719,8 +712,10 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
|
|
|
{
|
|
|
HLog(@"deleteDownloadDonePlistInfoBy:%@",fullPath)
|
|
|
NSMutableDictionary *dictM = [self getDownloadDownList];
|
|
|
- for (NSString*key in dictM) {
|
|
|
- NSDictionary*dict = dictM[key];
|
|
|
+
|
|
|
+ NSDictionary * forDict = [NSDictionary dictionaryWithDictionary:dictM];
|
|
|
+ for (NSString*key in forDict) {
|
|
|
+ NSDictionary*dict = forDict[key];
|
|
|
|
|
|
if ([[dict allKeys] containsObject:@"fullPath"]) {
|
|
|
NSString * infofullPath = dict[@"fullPath"];
|