// // downloadThumbnailManager.m // 隐私保护 // // Created by xd h on 2024/1/8. // #import "downloadThumbnailManager.h" @interface downloadThumbnailManager () /**检测任务10s后 无反馈重新开始 */ @property (nonatomic, assign) NSInteger taskRenewTime; // @end @implementation downloadThumbnailManager static downloadThumbnailManager * cur_downloadFileShareInstance = nil; +(downloadThumbnailManager *)shareInstance; { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ cur_downloadFileShareInstance = [[downloadThumbnailManager alloc] init]; }); return cur_downloadFileShareInstance; } - (id)init { self = [super init]; if (self) { //[self initManager]; } return self; } - (void)handlToDownloadThumbnailWith:(NSArray*)Arr { _isPreViewTask = YES; [self handDataArrFun:Arr]; } - (void)handDataArrFun:(NSArray*)Arr{ if(Arr && Arr.count >0){ NSLock *lock = [NSLock new]; [lock lock]; if (!_downloadingTaskArr) { _downloadingTaskArr = [NSMutableArray arrayWithArray:Arr]; } else{ for (couldPhoneFileModel*model in Arr) { if(_downloadingTaskArr.count < 5){ [_downloadingTaskArr addObject:model]; } else{ [_downloadingTaskArr insertObject:model atIndex:3]; } } } [self planToDownloadThumbnailFun]; [lock unlock]; } } - (void)handlToDownloadThumbnailInDownTableViewWith:(NSArray*)Arr{ if(_isPreViewTask){ if (_downloadingTaskArr.count == 0 ) { [self handDataArrFun:Arr]; } else{ //不处理 } } else{ [self handDataArrFun:Arr]; } } - (void)planToDownloadThumbnailFun { if (!_downloadingTaskArr || _downloadingTaskArr.count == 0) { return; } [self beginDownloadThumbnailFun]; } //- (void)handlToDownloadOneThumbnailWith:(couldPhoneFileModel*)model //{ // [self beginDownloadThumbnailFun:model]; //} //- (void)beginDownloadThumbnailFun:(couldPhoneFileModel*)model //{ // self.curDownloadFileModel = model; - (void)beginDownloadThumbnailFun{ if (_downloadingTaskArr.count > 0) { couldPhoneFileModel*firstModel = _downloadingTaskArr.firstObject; if(firstModel == _curDownloadFileModel){ return; } else{ _curDownloadFileModel = _downloadingTaskArr.firstObject; } } else{ return; } //检测本地是否已经下载文件了 NSString *fileName = [self.curDownloadFileModel getFileNameFun]; NSString*pathStr = [cachesFileManager getFilePathWithName:fileName type:DownLoadThumbnail]; NSFileManager *manager0 = [NSFileManager defaultManager]; if([manager0 fileExistsAtPath:pathStr]) { //已经下载过了 [_downloadingTaskArr removeObject:_curDownloadFileModel]; _curDownloadFileModel = nil; [self beginDownloadThumbnailFun]; return; } self.taskRenewTime = [iTools getNowTimeStamp]; //[[webSocketManager shareInstance] begindownloadThumbnailImageFunBy:_curDownloadFileModel]; } - (void)DownloadFileDoneOneFileFun { [[NSNotificationCenter defaultCenter] postNotificationName:downloadThumbnailDoneOneNotification object:nil]; [_downloadingTaskArr removeObject:_curDownloadFileModel]; _curDownloadFileModel = nil; [self beginDownloadThumbnailFun]; self.taskRenewTime = [iTools getNowTimeStamp]; } - (void)checkReDownloadThumbnailFileFun { NSInteger curTime = [iTools getNowTimeStamp]; if(self.taskRenewTime == 0){ return; } if(curTime - self.taskRenewTime < 10){ return; } if(_downloadingTaskArr && _downloadingTaskArr.count >0){ [_downloadingTaskArr removeObject:_curDownloadFileModel]; [self beginDownloadThumbnailFun]; } } @end