// // VideoDownLoadListCell.m // jiaPei // // Created by 张嵘 on 2018/11/5. // Copyright © 2018 JCZ. All rights reserved. // #import "VideoDownLoadListCell.h" @interface VideoDownLoadListCell () @property (nonatomic, strong) RQDownloadModel *downloadModel; @end @implementation VideoDownLoadListCell #pragma mark - Life Circle - (void)awakeFromNib { [super awakeFromNib]; self.backgroundColor = backGroundColor; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } #pragma mark - About UI - (void)refreshUIWithDownloadModel:(RQDownloadModel *)downloadModel{ RQDownloadStatus downloadStatus = downloadModel.status; CGFloat progress = downloadModel.progress; NSInteger progressInt = (NSInteger)(progress * 100); dispatch_async(dispatch_get_main_queue(), ^{ // [self.progressView setProgress:progress]; self.stateLabel.text = downloadModel.statusText; [self.downLoadBtn setTitle:nil forState:UIControlStateNormal]; if(downloadStatus == RQDownloadStatus_None){ [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_ready"] forState:UIControlStateNormal]; }else if(downloadStatus == RQDownloadStatus_Running){ [self.downLoadBtn setImage:nil forState:UIControlStateNormal]; NSString *title = [NSString stringWithFormat:@"%zd%%",progressInt]; [self.downLoadBtn setTitle:title forState:UIControlStateNormal]; }else if(downloadStatus == RQDownloadStatus_Suspended){ [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_pause"] forState:UIControlStateNormal]; }else if(downloadStatus == RQDownloadStatus_Completed){ [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_finished"] forState:UIControlStateNormal]; }else if(downloadStatus == RQDownloadStatus_Failed){ [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_fail"] forState:UIControlStateNormal]; }else if(downloadStatus == RQDownloadStatus_Waiting){ [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_waiting"] forState:UIControlStateNormal]; }else{ } [self layoutSubviews]; }); } #pragma mark - Pravite Method - (RQDownloadModel *)downloadModel { _downloadModel = [kRQDownloadDataBaseManager getModelWithUrl:self.model.urlString]; if(!_downloadModel && _model){ _downloadModel = [[RQDownloadModel alloc] init]; _downloadModel = _model; } __weak typeof(self) weakSelf = self; _downloadModel.statusChanged = ^(RQDownloadModel *downloadModel) { [weakSelf refreshUIWithDownloadModel:downloadModel]; }; _downloadModel.progressChanged = ^(RQDownloadModel *downloadModel) { [weakSelf refreshUIWithDownloadModel:downloadModel]; }; return _downloadModel; } #pragma mark - Event response - (IBAction)downloadAction:(id)sender { RQDownloadStatus downloadStatus = self.downloadModel.status; if(downloadStatus == RQDownloadStatus_None){ [kRQDownloadManager startDownloadTask:self.downloadModel]; }else if(downloadStatus == RQDownloadStatus_Running){ [kRQDownloadManager pauseDownloadTask:self.downloadModel]; }else if(downloadStatus == RQDownloadStatus_Suspended){ [kRQDownloadManager startDownloadTask:self.downloadModel]; }else if(downloadStatus == RQDownloadStatus_Completed){ VideoPlayViewController *vc = [[VideoPlayViewController alloc] init]; vc.currentModel = self.downloadModel; [[RQ_SHARE_FUNCTION topViewController] navPushHideTabbarToVC:vc]; }else if(downloadStatus == RQDownloadStatus_Failed){ [kRQDownloadManager startDownloadTask:self.downloadModel]; }else if(downloadStatus == RQDownloadStatus_Waiting){ }else if(downloadStatus == RQDownloadStatus_Cancel){ [kRQDownloadManager startDownloadTask:self.downloadModel]; } } #pragma mark - Delegate methods #pragma mark - Getters/Setters/Lazy - (void)setModel:(RQDownloadModel *)model{ _model = model; self.titleLabel.text = model.title; [self.ImageView sd_setImageWithURL:[NSURL URLWithString:model.imageUrl] placeholderImage:[UIImage imageNamed:@"NOIMG"]]; [self refreshUIWithDownloadModel:model]; } // 更新视图 - (void)updateViewWithModel:(RQDownloadModel *)model { [self refreshUIWithDownloadModel:model]; } @end