| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770 |
- //
- // CSFilewDownUpCell.m
- // zhuxun
- //
- // Created by winsoft on 17/6/22.
- //
- //
- #import "CSFileDownUpCell.h"
- #import "CSFileDownLoadControllerView.h"
- #import "CloudStorageUploadCenter.h"
- #import "CloudStorageDownloadCenter.h"
- ///=============================================================================
- /// @name CSFileDownUpCell
- ///=============================================================================
- @interface CSFileDownUpCell()
- @property (nonatomic , weak) UIImageView *headerIconImageView;
- @property (nonatomic , weak) UILabel *fileNameLabel;
- @property (nonatomic , weak) UILabel *fileCreateTimeLabel;
- @property (nonatomic , weak) UILabel *fileProcessSizeLabel;
- @property (nonatomic , weak) UILabel *fileSizeLabel;
- @property (nonatomic , weak) UILabel *speedLabel;
- @property (nonatomic , weak) UIButton *fileExtensionSwitchImageView;
- @property (nonatomic , weak) CSFileDownLoadControllerView *csFileDownLoadControllerView;
- @property (nonatomic , weak) CSFileExtensionViewForCell *fileExtensionView;
- /**
- * 记录上一次已经进行的长度
- */
- @property (nonatomic , assign) NSInteger lastProcessedDataLength;
- @property (nonatomic , copy) NSDate *lastRecordTime;
- @end
- @implementation CSFileDownUpCell
- + (CSFileDownUpCell *)fileDownUpCellWithCSFileDownUpFrameModel:(CSFileDownUpFrameModel*)csFileDownUpFrameModel tableView:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath identifier:(NSString *)identifier opItems:(NSArray *)opItems
- {
- CSFileDownUpCell *csFileDownUpCell = [tableView dequeueReusableCellWithIdentifier:identifier];
-
- if (!csFileDownUpCell) {
- csFileDownUpCell = [[CSFileDownUpCell alloc]initFileCellWithTableView:tableView indexPath:indexPath identifier:identifier opItems:opItems];
- }
- //csFileCell.indexPath = indexPath
-
- return csFileDownUpCell;
- }
- - (instancetype)initFileCellWithTableView:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath identifier:(NSString *)identifier opItems:(NSArray *)opItems
- {
- if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]) {
-
- self.tableView = tableView;
-
- UIImageView *headerIconImageView = [[UIImageView alloc]init];
- [headerIconImageView setImage:[UIImage imageNamed:@"file_unknown_icon"]];
- [self.contentView addSubview:headerIconImageView];
- self.headerIconImageView = headerIconImageView;
-
- UILabel *fileNameLabel = [[UILabel alloc]init];
- fileNameLabel.numberOfLines = 0;
- fileNameLabel.font = FileNameFont;
- [self.contentView addSubview:fileNameLabel];
- self.fileNameLabel = fileNameLabel;
-
- UILabel *fileCreateTimeLabel = [[UILabel alloc]init];
- fileCreateTimeLabel.textColor = LineForSubLineViewColor;
- fileCreateTimeLabel.font = FileCreateTimeFont;
- [self.contentView addSubview:fileCreateTimeLabel];
- self.fileCreateTimeLabel = fileCreateTimeLabel;
-
- UILabel *fileProcessSizeLabel = [[UILabel alloc]init];
- fileProcessSizeLabel.textColor = LineForSubLineViewColor;
- fileProcessSizeLabel.font = FileCreateTimeFont;
- [self.contentView addSubview:fileProcessSizeLabel];
- self.fileProcessSizeLabel = fileProcessSizeLabel;
-
-
-
- UILabel *fileSizeLabel = [[UILabel alloc]init];
- fileSizeLabel.textAlignment = NSTextAlignmentRight;
- fileSizeLabel.textColor = LineForSubLineViewColor;
- fileSizeLabel.font = FileCreateTimeFont;
- [self.contentView addSubview:fileSizeLabel];
- self.fileSizeLabel = fileSizeLabel;
-
- UILabel *speedLabel = [[UILabel alloc]init];
- speedLabel.textAlignment = NSTextAlignmentRight;
- speedLabel.textColor = LineForSubLineViewColor;
- speedLabel.font = FileCreateTimeFont;
- [self.contentView addSubview:speedLabel];
- self.speedLabel = speedLabel;
-
-
- UIButton *fileExtensionSwitchImageView = [[UIButton alloc]init];
- [fileExtensionSwitchImageView addTarget:self action:@selector(extensionSwithOnOff) forControlEvents:UIControlEventTouchUpInside];
- [fileExtensionSwitchImageView setImage:[UIImage imageNamed:@"list_Group_Arrow_Down"] forState:UIControlStateNormal];
- [self.contentView addSubview:fileExtensionSwitchImageView];
- self.fileExtensionSwitchImageView = fileExtensionSwitchImageView;
-
- CSFileDownLoadControllerView *csFileDownLoadControllerView = [[CSFileDownLoadControllerView alloc]init];
-
- [self.contentView addSubview:csFileDownLoadControllerView];
- self.csFileDownLoadControllerView = csFileDownLoadControllerView;;
-
- CSFileExtensionViewForCell *fileExtensionView = [[CSFileExtensionViewForCell alloc]initWithItmes: opItems];
-
- __weak typeof(self)weakSelf = self;
- fileExtensionView.extensionOpBlock = ^(ExtensionOP extensionOP, CSFileDownUpFrameModel *csFileDownUpFrameModel){
-
- if (weakSelf.extensionOpBlock) {
- weakSelf.extensionOpBlock(extensionOP, weakSelf.csFileDownUpFrameModel);
- }
-
- };
-
- csFileDownLoadControllerView.downUpStatusChangeBlock = ^(DownUpStatus downUpStatus){
-
- if (weakSelf.downUpStatusBlock) {
- weakSelf.downUpStatusBlock(weakSelf.csFileDownUpFrameModel, downUpStatus);
- }
-
- };
-
- [self.contentView addSubview:fileExtensionView];
- self.fileExtensionView = fileExtensionView;
-
-
-
- }
-
- return self;
- }
- - (void)initDownUpBlockWithDownUpModel:(DownUpModel)downUpModel
- {
- if (!self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
-
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadProgressBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadSuccessBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadFailedBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadProgressBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadSuccessBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadFailedBlock = nil;
- }else{
-
- for (CSFileDownUpModel *csFileDownUpModel in self.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels) {
-
- csFileDownUpModel.uploadProgressBlock = nil;
- csFileDownUpModel.uploadSuccessBlock = nil;
- csFileDownUpModel.uploadFailedBlock = nil;
- csFileDownUpModel.downloadProgressBlock = nil;
- csFileDownUpModel.downloadSuccessBlock = nil;
- csFileDownUpModel.downloadFailedBlock = nil;
-
- }
-
- }
-
- if (downUpModel == DownUpModelDown) {
- [self initDownCallBlock];
- }else [self initUpCallBlock];
-
- }
- - (void)initDownCallBlock
- {
- __weak typeof(self)weakSelf = self;
-
- __weak typeof(self.csFileDownLoadControllerView)weakDowunLoadControllerView = self.csFileDownLoadControllerView;
-
- __weak typeof(self.fileProcessSizeLabel)weakProcessSizeLabel = self.fileProcessSizeLabel;
-
- __weak typeof(self.fileSizeLabel)weakFileSizeLabel = self.fileSizeLabel;
-
- __weak typeof(self.speedLabel)weakSpeedLabel = self.speedLabel;
-
-
- if (!self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
-
-
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadProgressBlock = ^(NSInteger receivedSize, NSInteger expectedSize, CGFloat progress, NSString *router, CSFileDownUpModel *csfileDownUpModel,NSString *uuid) {
-
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]) {
-
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpSize = receivedSize;
-
-
- NSDate *now = [NSDate date];
-
-
- if (!weakSelf.lastRecordTime || [now timeIntervalSinceDate:weakSelf.lastRecordTime] >= 1) {
-
- NSInteger speed = receivedSize - weakSelf.lastProcessedDataLength;
-
- weakSelf.lastProcessedDataLength = receivedSize;
-
- weakSelf.lastRecordTime = now;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- weakSpeedLabel.text = [NSString stringWithFormat:@"%@/s",[weakSelf bitToKb_MbWithBit:speed]];
-
- weakDowunLoadControllerView.percent = progress;
-
- weakProcessSizeLabel.text = [NSString stringWithFormat:@"%@/%@",[weakSelf bitToKb_MbWithBit:receivedSize],weakFileSizeLabel.text];
- });
-
- }
-
- }
-
-
-
-
- };
-
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadSuccessBlock = ^(NSInteger receivedSize, NSString *localFullFileRouter, CSFileDownUpModel *csfileDownUpModel,NSString *uuid) {
- //operation 将完整的key传出.
-
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]) {
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus = DownUpStatusSuccess;
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpSize = receivedSize;
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.localRootPath = localFullFileRouter;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- [weakSelf initData];
-
- if (weakSelf.fileDownUpSuccessBlock) {
- weakSelf.fileDownUpSuccessBlock(weakSelf.csFileDownUpFrameModel);
- }
- });
- }
- };
-
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadFailedBlock = ^(NSString *errMessage, CSFileDownUpModel *csfileDownUpModel,NSString *uuid) {
-
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]){
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus = DownUpStatusFailure;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- weakProcessSizeLabel.text = weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelDown?@"下载失败":@"上传失败";
-
- weakDowunLoadControllerView.downUpStatus = DownUpStatusFailure;
- });
- }
-
- };
- }else{
-
- //文件夹
- for (CSFileDownUpModel *csFileDownUpModel in self.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels) {
-
-
- csFileDownUpModel.downloadProgressBlock = ^(NSInteger receivedSize, NSInteger expectedSize, CGFloat progress, NSString *router, CSFileDownUpModel *callBackFileDownUpModel,NSString *uuid) {
- //if subs contail.待新增(待修改外层隔一秒判断一次.)
-
- NSArray *targetFileModelArray = [weakSelf.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"downUpUUID = %@",uuid]];
-
- if (targetFileModelArray.count) {
-
- CSFileDownUpModel *subCSFileDownUpModel = targetFileModelArray[0];
- subCSFileDownUpModel.downUpSize = receivedSize;
-
- NSDate *now = [NSDate date];
- //
- if (!weakSelf.lastRecordTime || [now timeIntervalSinceDate:weakSelf.lastRecordTime] >= 1) {
-
- weakSelf.lastRecordTime = now;
-
- [weakSelf getFolderSizeAndPorcessSizeWithResultBlock:^(NSInteger progressSize, NSInteger totalSize) {
-
- NSInteger speed = progressSize - weakSelf.lastProcessedDataLength;
-
- weakSelf.lastProcessedDataLength = progressSize;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- weakSpeedLabel.text = [NSString stringWithFormat:@"%@/s",[weakSelf bitToKb_MbWithBit:speed]];
-
- weakDowunLoadControllerView.percent = progressSize*1.0f/totalSize*1.0f;
-
- weakProcessSizeLabel.text = [NSString stringWithFormat:@"%@/%@",[weakSelf bitToKb_MbWithBit:progressSize],[weakSelf bitToKb_MbWithBit:totalSize]];
- });
-
-
-
-
- }];
-
- }
-
- }
-
-
-
-
- };
-
- csFileDownUpModel.downloadSuccessBlock = ^(NSInteger receivedSize, NSString *localFullFileRouter, CSFileDownUpModel *callBackFileDownUpModel,NSString *uuid) {
- //operation 将完整的key传出.
- NSArray *targetFileModelArray = [weakSelf.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"downUpUUID = %@",uuid]];
-
- if (targetFileModelArray.count) {
-
- CSFileDownUpModel *subCSFileDownUpModel = targetFileModelArray[0];
- subCSFileDownUpModel.downUpSize = receivedSize;
- subCSFileDownUpModel.downUpStatus = DownUpStatusSuccess;
-
- [weakSelf getFolderSizeAndPorcessSizeWithResultBlock:^(NSInteger progressSize, NSInteger totalSize) {
-
- if (progressSize == totalSize) {
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus = DownUpStatusSuccess;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- [weakSelf initData];
-
- if (weakSelf.fileDownUpSuccessBlock) {
- weakSelf.fileDownUpSuccessBlock(weakSelf.csFileDownUpFrameModel);
- }
- });
- }
-
- }];
- }
- };
-
- csFileDownUpModel.downloadFailedBlock = ^(NSString *errMessage, CSFileDownUpModel *callBackFileDownUpModel,NSString *uuid) {
-
- NSArray *targetFileModelArray = [weakSelf.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"downUpUUID = %@",uuid]];
-
- if (targetFileModelArray.count){
-
- CSFileDownUpModel *subCSFileDownUpModel = targetFileModelArray[0];
-
- //都失败的话才赋值文件夹状态为error.待新增
-
-
- }
-
- };
- }
-
- }
-
- //down
-
-
-
-
- }
- - (void)initUpCallBlock
- {
- __weak typeof(self)weakSelf = self;
- __weak typeof(self.csFileDownLoadControllerView)weakDowunLoadControllerView = self.csFileDownLoadControllerView;
- __weak typeof(self.fileProcessSizeLabel)weakProcessSizeLabel = self.fileProcessSizeLabel;
- __weak typeof(self.fileSizeLabel)weakFileSizeLabel = self.fileSizeLabel;
- __weak typeof(self.speedLabel)weakSpeedLabel = self.speedLabel;
- //up
- if (!weakSelf.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadProgressBlock = ^(double progress, NSInteger sendedSize, CSFileDownUpModel *csFileDownUpModel,NSString *uuid) {
-
- #warning 2017-07-03 速度计算方式: 当前时间与上次记录时间差>=1s时,上次的downpSize 与 sendedSize之差就是网速.
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]){
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpSize = sendedSize;
-
- NSDate *now = [NSDate date];
-
- //每秒刷新一次
- if (!weakSelf.lastRecordTime || [now timeIntervalSinceDate:weakSelf.lastRecordTime] >= 1) {
-
- NSInteger speed = sendedSize - weakSelf.lastProcessedDataLength;
-
- weakSelf.lastProcessedDataLength = sendedSize;
-
- weakSelf.lastRecordTime = now;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- weakSpeedLabel.text = [NSString stringWithFormat:@"%@/s",[weakSelf bitToKb_MbWithBit:speed]];
-
- weakDowunLoadControllerView.percent = progress;
-
- weakProcessSizeLabel.text = [NSString stringWithFormat:@"%@/%@",[weakSelf bitToKb_MbWithBit:sendedSize],weakFileSizeLabel.text];
- });
-
- }
-
- }
-
- };
-
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadSuccessBlock = ^(NSString *url, long long fileSize, CSFileDownUpModel *csFileDownUpModel,NSString *uuid) {
-
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]){
-
- //通知上层需要移动位置
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpSize = fileSize;
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus = DownUpStatusSuccess;
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.sid = csFileDownUpModel.sid;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- [weakSelf initData];
-
- if (weakSelf.fileDownUpSuccessBlock) {
- weakSelf.fileDownUpSuccessBlock(weakSelf.csFileDownUpFrameModel);
- }
- });
- }
-
- };
-
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadFailedBlock = ^(NSString *errMessage, CSFileDownUpModel *csFileDownUpModel,NSString *uuid) {
-
- if ([uuid isEqualToString:weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpUUID]) {
-
- weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus = DownUpStatusFailure;
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- weakProcessSizeLabel.text = weakSelf.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelDown?@"下载失败":@"上传失败";
-
- weakDowunLoadControllerView.downUpStatus = DownUpStatusFailure;
- });
- }
-
-
- };
- }else{
-
- //上传文件夹暂不处理.
- }
-
- }
- - (void)extensionSwithOnOff
- {
-
- if (self.extensionSwitchBlock) {
- self.extensionSwitchBlock(self.csFileDownUpFrameModel);
- }
- }
- - (void)setCsFileDownUpFrameModel:(CSFileDownUpFrameModel *)csFileDownUpFrameModel
- {
- _csFileDownUpFrameModel = csFileDownUpFrameModel;
-
- [self initData];
-
- [self initDownUpBlockWithDownUpModel:csFileDownUpFrameModel.csFileDownUpModel.downUpType];
-
- [self registerDownUpBlock];
-
- }
- - (void)initData
- {
-
- self.fileNameLabel.text = self.csFileDownUpFrameModel.csFileDownUpModel.name;
-
- self.fileCreateTimeLabel.text = self.csFileDownUpFrameModel.strServerTime;
-
- self.fileSizeLabel.text = self.csFileDownUpFrameModel.fileSizeStr;
-
- //base process/status
- if (self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus == DownUpStatusSuccess) {
- self.fileProcessSizeLabel.hidden = YES;
- self.csFileDownLoadControllerView.hidden = YES;
- self.speedLabel.hidden = YES;
-
- self.fileCreateTimeLabel.hidden = NO;
- self.fileSizeLabel.hidden = NO;
- self.fileExtensionSwitchImageView.hidden = NO;
- }else{
-
- self.fileCreateTimeLabel.hidden = YES;
- self.fileSizeLabel.hidden = YES;
- self.fileExtensionSwitchImageView.hidden = YES;
-
- self.speedLabel.hidden = NO;
- self.fileProcessSizeLabel.hidden = NO;
- self.csFileDownLoadControllerView.hidden = NO;
-
- self.csFileDownLoadControllerView.downUpStatus = self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus;
- }
- //header iamge
- if (self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
-
- [self.headerIconImageView setImage:[UIImage imageNamed:@"file_folder_icon"]];
-
- // self.fileSizeLabel.hidden = YES;
- }else{
-
- [self.headerIconImageView setImage:[UIImage imageNamed:@"file_unknown_icon"]];
-
- // self.fileSizeLabel.hidden = NO;
- }
-
-
- //animation?
- if (self.csFileDownUpFrameModel.isFileExtensionOP) {
-
- self.fileExtensionView.hidden = NO;
-
- [self.fileExtensionSwitchImageView setImage:[UIImage imageNamed:@"list_Group_Arrow_Normal"] forState:UIControlStateNormal];
-
- }else {
-
- self.fileExtensionView.hidden = YES;
-
- [self.fileExtensionSwitchImageView setImage:[UIImage imageNamed:@"list_Group_Arrow_Down"] forState:UIControlStateNormal];
-
- }
-
-
- self.cellSelected = self.csFileDownUpFrameModel.isSelected;
-
-
-
- if (!self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
-
- self.lastProcessedDataLength = self.csFileDownUpFrameModel.csFileDownUpModel.downUpSize;
- self.lastRecordTime = [NSDate date];
-
- //部分计算可以移到frammodel.
-
- if (self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus == DownUpStatusWait) {
- self.fileProcessSizeLabel.text = @"排队等待中...";
- }else if(self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus == DownUpStatusDoing || self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus == DownUpStatusPause){
- self.fileProcessSizeLabel.text = [NSString stringWithFormat:@"%@/%@",[self bitToKb_MbWithBit:self.csFileDownUpFrameModel.csFileDownUpModel.downUpSize],self.fileSizeLabel.text];
- }else if (self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus == DownUpStatusFailure)
- {
- self.fileProcessSizeLabel.text = self.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelDown?@"下载失败":@"上传失败";
- }
-
- self.csFileDownLoadControllerView.percent = self.csFileDownUpFrameModel.csFileDownUpModel.downUpSize * 1.0f/self.csFileDownUpFrameModel.csFileDownUpModel.size * 1.0f;
-
- self.speedLabel.text = nil;
- }else{
-
- #warning 2017-07-06 当文件夹下的一个文件下载好时,获取父节点文件夹,再获取所有文件,如果文件都下载完成,则修改文件夹状态为成功,。
-
- self.lastRecordTime = [NSDate date];
-
- self.fileSizeLabel.hidden = YES;
- //TEXT 重新计算
- __weak typeof(self.fileProcessSizeLabel)weakProcessSizeLabel = self.fileProcessSizeLabel;
- __weak typeof(self.csFileDownLoadControllerView)weakControllerView = self.csFileDownLoadControllerView;
- __weak typeof(self)weakself = self;
-
- [self getFolderSizeAndPorcessSizeWithResultBlock:^(NSInteger progressSize, NSInteger totalSize) {
-
- weakProcessSizeLabel.text = [NSString stringWithFormat:@"%@/%@",[self bitToKb_MbWithBit:progressSize],[self bitToKb_MbWithBit:totalSize]];
- weakControllerView.percent = progressSize * 1.0f/totalSize * 1.0f;
- weakself.lastProcessedDataLength = progressSize;
- }];
-
- self.speedLabel.text = nil;
-
- }
-
- }
- - (void)registerDownUpBlock
- {
-
- __weak typeof(self)weakself = self;
- if (!self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
- if (self.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelUp && self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus != DownUpStatusSuccess) {
-
- [[CloudStorageUploadCenter sharedInstance]registeUploadForUIWithcsFileDownUpModel:self.csFileDownUpFrameModel.csFileDownUpModel ProcessBlock:self.csFileDownUpFrameModel.csFileDownUpModel.uploadProgressBlock successBlock:self.csFileDownUpFrameModel.csFileDownUpModel.uploadSuccessBlock failBlock:self.csFileDownUpFrameModel.csFileDownUpModel.uploadFailedBlock];
-
- //需要initDownUpCallBlock.并且区分..down和up模式
-
- }else if(self.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelDown && self.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus != DownUpStatusSuccess)
- {
-
- [[CloudStorageDownloadCenter sharedInstance]registeDownloadBlockForUIWithcsFileDownUpModel:self.csFileDownUpFrameModel.csFileDownUpModel ProcessBlock:self.csFileDownUpFrameModel.csFileDownUpModel.downloadProgressBlock successBlock:self.csFileDownUpFrameModel.csFileDownUpModel.downloadSuccessBlock failBlock:self.csFileDownUpFrameModel.csFileDownUpModel.downloadFailedBlock];
-
- }
- }else{
-
- NSMutableArray *processModelArray = [NSMutableArray array];
- //应该获取所有子文件
-
- for (CSFileDownUpModel *downUpModel in self.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels) {
- if (downUpModel.downUpStatus != DownUpStatusSuccess && downUpModel.downUpSize != downUpModel.size) {
-
- [processModelArray addObject:downUpModel];
- }
-
- }
-
- if (weakself.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelUp && weakself.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus != DownUpStatusSuccess) {
-
- if (processModelArray.count)
- {
- for (CSFileDownUpModel *downUpModel in processModelArray) {
-
- [[CloudStorageUploadCenter sharedInstance]registeUploadForUIWithcsFileDownUpModel:downUpModel ProcessBlock:downUpModel.uploadProgressBlock successBlock:downUpModel.uploadSuccessBlock failBlock:downUpModel.uploadFailedBlock];
-
- }
- }
-
-
- //需要initDownUpCallBlock.并且区分..down和up模式
-
- }else if(weakself.csFileDownUpFrameModel.csFileDownUpModel.downUpType == DownUpModelDown && weakself.csFileDownUpFrameModel.csFileDownUpModel.downUpStatus != DownUpStatusSuccess)
- {
-
- if (processModelArray.count){
-
- for (CSFileDownUpModel *downUpModel in processModelArray) {
-
- [[CloudStorageDownloadCenter sharedInstance]registeDownloadBlockForUIWithcsFileDownUpModel:downUpModel ProcessBlock:downUpModel.downloadProgressBlock successBlock:downUpModel.downloadSuccessBlock failBlock:downUpModel.downloadFailedBlock];
- }
-
- }
-
- }
- }
-
-
-
- }
- - (void)getFolderSizeAndPorcessSizeWithResultBlock:(void(^)(NSInteger progressSize, NSInteger totalSize))resultBlock
- {
-
- NSInteger totalSize = 0;
- NSInteger progressSize = 0;
- for (CSFileDownUpModel *downUpModel in self.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels) {
-
- totalSize += downUpModel.size;
- progressSize += downUpModel.downUpSize;
-
- }
-
- if (resultBlock) {
- resultBlock(progressSize,totalSize);
- }
-
-
- }
- - (NSString *)bitToKb_MbWithBit:(NSInteger)bit
- {
- #warning show = mb,,,true = kb
- double downLoadedSize = bit * 1.00f/1024 * 1.00f;
- NSString *downloadSizeStr = nil;
-
- if (downLoadedSize>1024 * 1024) {
- CGFloat dSize = downLoadedSize / (1024 * 1024 * 1.0f);
-
- downloadSizeStr = [NSString stringWithFormat:@"%.2lf Gb",floor(dSize*100) / 100 ];
-
- }else if (downLoadedSize>1024) {
- CGFloat dSize = downLoadedSize / 1024 * 1.0f;
-
- downloadSizeStr = [NSString stringWithFormat:@"%.2lf Mb",floor(dSize*100) / 100 ];
-
- }else
- {
- downloadSizeStr = [NSString stringWithFormat:@"%.2lf Kb",floor(downLoadedSize*100) / 100];
-
- }
-
- return downloadSizeStr;
-
- }
- - (void)layoutSubviews
- {
- [super layoutSubviews];
-
- _headerIconImageView.frame = self.csFileDownUpFrameModel.headerIconImageViewFrame;
-
- _fileNameLabel.frame = self.csFileDownUpFrameModel.fileNameLabelFrame;
-
- _fileCreateTimeLabel.frame = self.csFileDownUpFrameModel.fileCreateTimeLabelFrame;
-
- _fileProcessSizeLabel.frame = self.csFileDownUpFrameModel.fileProcessSizeLabelFrame;
-
- _fileExtensionSwitchImageView.frame = self.csFileDownUpFrameModel.fileExtensionSwithImageViewFrame;
-
- _csFileDownLoadControllerView.frame = self.csFileDownUpFrameModel.fileProcessControllerViewFrame;
-
- _fileSizeLabel.frame = self.csFileDownUpFrameModel.fileSizeLabelFrame;
-
- _speedLabel.frame = self.csFileDownUpFrameModel.fileDownUpSpeedLabelFrame;
-
- //animation?
- __weak typeof(self)weakself = self;
- [UIView animateWithDuration:0.5 animations:^{
- weakself.fileExtensionView.frame = weakself.csFileDownUpFrameModel.fileExtensionViewFrame;
- }];
-
- }
- - (void)dealloc
- {
- if (!self.csFileDownUpFrameModel.csFileDownUpModel.isdir) {
-
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadProgressBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadSuccessBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.uploadFailedBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadProgressBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadSuccessBlock = nil;
- self.csFileDownUpFrameModel.csFileDownUpModel.downloadFailedBlock = nil;
-
- }else{
-
- for (CSFileDownUpModel *csFileDownUpModel in self.csFileDownUpFrameModel.csFileDownUpModel.subFileDownUpModels) {
-
- csFileDownUpModel.uploadProgressBlock = nil;
- csFileDownUpModel.uploadSuccessBlock = nil;
- csFileDownUpModel.uploadFailedBlock = nil;
- csFileDownUpModel.downloadProgressBlock = nil;
- csFileDownUpModel.downloadSuccessBlock = nil;
- csFileDownUpModel.downloadFailedBlock = nil;
-
- }
-
- }
- }
- @end
|