123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- //
- // 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
|