Quellcode durchsuchen

1.下载缩略图需求

huangxiaodong vor 1 Jahr
Ursprung
Commit
e15b1f43fe

+ 3 - 1
创维盒子/双子星云手机/Class/Set/uploadFile/downLoadFile/downLoadPreviewViewController.m

@@ -650,7 +650,9 @@
 
 - (void)didDownloadOneFileFun
 {
-    [self.tableView reloadData];
+    mainBlock(^{
+        [self.tableView reloadData];
+    });
 }
 
 @end

+ 5 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/downloadThumbnailManager.h

@@ -21,8 +21,13 @@ NS_ASSUME_NONNULL_BEGIN
 @property(nonatomic,strong)NSMutableArray *downloadingTaskArr;
 @property(nonatomic,strong)couldPhoneFileModel *curDownloadFileModel;
 
+@property(nonatomic,assign) BOOL  isPreViewTask;//预览进来的任务
+
 - (void)handlToDownloadThumbnailWith:(NSArray*)Arr;
+- (void)handlToDownloadThumbnailInDownTableViewWith:(NSArray*)Arr;
 - (void)DownloadFileDoneOneFileFun;
+
+- (void)checkReDownloadThumbnailFileFun;
 @end
 
 NS_ASSUME_NONNULL_END

+ 44 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/downloadThumbnailManager.m

@@ -7,6 +7,11 @@
 
 #import "downloadThumbnailManager.h"
 
+@interface downloadThumbnailManager ()
+/**检测任务10s后 无反馈重新开始 */
+@property (nonatomic, assign) NSInteger  taskRenewTime; //
+@end
+
 @implementation downloadThumbnailManager
 static downloadThumbnailManager * cur_downloadFileShareInstance = nil;
 +(downloadThumbnailManager *)shareInstance;
@@ -34,7 +39,14 @@ static downloadThumbnailManager * cur_downloadFileShareInstance = nil;
 
 - (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 (!_waitDownloadTaskArr) {
             _waitDownloadTaskArr = [NSMutableArray arrayWithArray:Arr];
         }
@@ -43,9 +55,23 @@ static downloadThumbnailManager * cur_downloadFileShareInstance = nil;
         }
         
         [self planToDownloadThumbnailFun];
+        [lock unlock];
     }
 }
 
+- (void)handlToDownloadThumbnailInDownTableViewWith:(NSArray*)Arr{
+    if(_isPreViewTask){
+        if (_downloadingTaskArr.count == 0 ) {
+            [self handDataArrFun:Arr];
+        }
+        else{
+            //不处理
+        }
+    }
+    else{
+        [self handDataArrFun:Arr];
+    }
+}
 
 - (void)planToDownloadThumbnailFun
 {
@@ -96,4 +122,22 @@ static downloadThumbnailManager * cur_downloadFileShareInstance = nil;
     
     [[NSNotificationCenter defaultCenter] postNotificationName:downloadThumbnailDoneOneNotification object:nil];
 }
+
+- (void)checkReDownloadThumbnailFileFun
+{
+    NSInteger curTime = [iTools getNowTimeStamp];
+    
+    if(self.taskRenewTime == 0){
+        return;
+    }
+    
+    if(curTime - self.taskRenewTime < 10){
+        return;
+    }
+    
+    if((_downloadingTaskArr && _downloadingTaskArr.count >0)
+       ||(_waitDownloadTaskArr && _waitDownloadTaskArr.count>0)){
+        [self beginDownloadThumbnailFun];
+    }
+}
 @end

+ 2 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileView/downloadFileRecordCell.h

@@ -8,6 +8,8 @@
 #import <UIKit/UIKit.h>
 //#import "couldPhoneFileModel.h"
 #import "couldPhoneFileListModel.h"
+#import "downloadThumbnailManager.h"
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface downloadFileRecordCell : UITableViewCell

+ 14 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileView/downloadFileRecordCell.m

@@ -43,6 +43,7 @@
 {
     _fileImageView = [[UIImageView alloc] init];
     //_fileImageView.backgroundColor = [UIColor greenColor];
+    [_fileImageView setContentMode:(UIViewContentModeScaleAspectFit)];
     [self.contentView addSubview:_fileImageView];
     
     [_fileImageView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -233,6 +234,19 @@
         _fileImageView.image = [UIImage imageNamed:@"uploadFile_image"];
     }
     
+    NSString *fileName = [_curCouldPhoneFileModel getFileNameFun];
+    NSString*pathStr = [cachesFileManager getFilePathWithName:fileName type:DownLoadThumbnail];
+    UIImage *curImage = [UIImage imageWithContentsOfFile:pathStr];
+    if(curImage){
+        _fileImageView.image = curImage;
+    }
+    else{
+        //下载任务延时执行 防止此次频繁添加任务
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            [[downloadThumbnailManager shareInstance] handlToDownloadThumbnailWith:@[self->_curCouldPhoneFileModel]];
+        });
+    }
+    
     _fileNamelabel.text = curCouldPhoneFileModel.name;
     
     //进度设置