// // TFAudioDirectoryViewCell.m // TFReader // // Created by 谢腾飞 on 2020/12/25. // Copyright © 2020 xtfei_2011@126.com. All rights reserved. // #import "TFAudioDirectoryViewCell.h" #import "TFReadRecordManager.h" #import "WXYZ_AudioDownloadManager.h" @interface TFAudioDirectoryViewCell () @property (nonatomic ,strong) UILabel *titleLabel; @property (nonatomic ,strong) UIImageView *playAmountIconView; @property (nonatomic ,strong) UILabel *playAmountLabel; @property (nonatomic ,strong) UIImageView *updateTimeIconView; @property (nonatomic ,strong) UILabel *updateTimeLabel; @property (nonatomic ,strong) UIButton *downloadBtn; @end @implementation TFAudioDirectoryViewCell - (void)createSubviews { [super createSubviews]; self.titleLabel = [[UILabel alloc] init]; self.titleLabel.textAlignment = NSTextAlignmentLeft; self.titleLabel.textColor = kBlackColor; self.titleLabel.font = kMainFont; [self.contentView addSubview:self.titleLabel]; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.contentView.mas_left).with.offset(kMargin); make.top.mas_equalTo(self.contentView.mas_top); make.right.mas_equalTo(self.contentView.mas_right).with.offset(-2 * kHalfMargin - 40); make.height.mas_equalTo(kLabelHeight); }]; self.downloadBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [self.downloadBtn setAdjustsImageWhenHighlighted:NO]; [self.downloadBtn setImageEdgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)]; [self.downloadBtn setImage:[UIImage imageNamed:@"audio_download"] forState:UIControlStateNormal]; [self.downloadBtn addTarget:self action:@selector(downloadBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.contentView addSubview:self.downloadBtn]; [self.downloadBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(self.contentView.mas_right).with.offset(- kHalfMargin); make.centerY.mas_equalTo(self.contentView.mas_centerY); make.height.width.mas_equalTo(40); }]; self.playAmountIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"audio_directory_readtime"]]; [self.contentView addSubview:self.playAmountIconView]; [self.playAmountIconView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.titleLabel.mas_left); make.top.mas_equalTo(self.titleLabel.mas_bottom).with.offset(kHalfMargin); make.height.mas_equalTo(12); make.width.mas_equalTo(CGFLOAT_MIN); make.bottom.mas_equalTo(self.contentView.mas_bottom).with.offset(- kMargin).priorityLow(); }]; self.playAmountLabel = [[UILabel alloc] init]; self.playAmountLabel.font = kFont11; self.playAmountLabel.textColor = kGrayTextColor; [self.contentView addSubview:self.playAmountLabel]; [self.playAmountLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.playAmountIconView.mas_right).with.offset(kQuarterMargin); make.centerY.mas_equalTo(self.playAmountIconView.mas_centerY); make.height.mas_equalTo(self.playAmountIconView.mas_height); make.width.mas_equalTo(CGFLOAT_MIN); }]; self.updateTimeIconView = [[UIImageView alloc] init]; self.updateTimeIconView.image = [UIImage imageNamed:@"audio_directory_updatetime"]; [self.contentView addSubview:self.updateTimeIconView]; [self.updateTimeIconView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.playAmountLabel.mas_right).with.offset(kHalfMargin); make.centerY.mas_equalTo(self.playAmountLabel.mas_centerY); make.height.mas_equalTo(self.playAmountIconView.mas_height); make.width.mas_equalTo(CGFLOAT_MIN); }]; self.updateTimeLabel = [[UILabel alloc] init]; self.updateTimeLabel.font = kFont11; self.updateTimeLabel.textColor = kGrayTextColor; [self.contentView addSubview:self.updateTimeLabel]; [self.updateTimeLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.updateTimeIconView.mas_right).with.offset(kQuarterMargin); make.right.mas_equalTo(self.downloadBtn.mas_left); make.centerY.mas_equalTo(self.updateTimeIconView.mas_centerY); make.height.mas_equalTo(self.updateTimeIconView.mas_height); }]; } - (void)setAudioDirectoryModel:(TFProductionChapterModel *)audioDirectoryModel { if (_audioDirectoryModel != audioDirectoryModel) { _audioDirectoryModel = audioDirectoryModel; self.titleLabel.text = audioDirectoryModel.chapter_title ? : @""; if (audioDirectoryModel.play_num > 0) { self.playAmountIconView.hidden = NO; [self.playAmountIconView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(12); }]; self.playAmountLabel.text = audioDirectoryModel.play_num ? : @""; self.playAmountLabel.hidden = NO; [self.playAmountLabel mas_updateConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabel:self.playAmountLabel]); }]; } else { self.playAmountIconView.hidden = YES; [self.playAmountIconView mas_updateConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.titleLabel.mas_left); make.width.mas_equalTo(CGFLOAT_MIN); }]; self.playAmountLabel.hidden = YES; [self.playAmountLabel mas_updateConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.playAmountIconView.mas_right); make.width.mas_equalTo(CGFLOAT_MIN); }]; } if (audioDirectoryModel.update_time.length > 0) { self.updateTimeIconView.hidden = NO; [self.updateTimeIconView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(12); }]; self.updateTimeLabel.text = audioDirectoryModel.update_time ? : @""; self.updateTimeLabel.hidden = NO; } else { self.updateTimeIconView.hidden = YES; [self.updateTimeIconView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(CGFLOAT_MIN); }]; self.updateTimeLabel.hidden = YES; } } if ([[TFReadRecordManager shareManagerWithProductionType:TFProductionTypeAudio] isCurrentPlayingChapterWithProduction_id:audioDirectoryModel.production_id chapter_id:audioDirectoryModel.chapter_id] && [[TFReadRecordManager shareManagerWithProductionType:TFProductionTypeAudio] isCurrentPlayingProductionWithProduction_id:audioDirectoryModel.production_id]) { self.titleLabel.textColor = kMainColor; } else if ([[TFReadRecordManager shareManagerWithProductionType:TFProductionTypeAudio] chapterHasReadedWithProduction_id:audioDirectoryModel.production_id chapter_id:audioDirectoryModel.chapter_id]) { self.titleLabel.textColor = kGrayTextColor; } else { self.titleLabel.textColor = kBlackColor; } [self changeDownloadButtonState]; } - (void)setCellDownloadState:(WXYZ_ProductionDownloadState)cellDownloadState { if (_cellDownloadState != cellDownloadState) { _cellDownloadState = cellDownloadState; [self changeDownloadButtonState]; } } - (void)changeDownloadButtonState { switch (_cellDownloadState) { case WXYZ_ProductionDownloadStateNormal: { if (self.audioDirectoryModel.is_preview == 1) { [self.downloadBtn setImage:[UIImage imageNamed:TFLocalizedString(@"audio_download_vip")] forState:UIControlStateNormal]; } else { [self.downloadBtn setImage:[UIImage imageNamed:@"audio_download"] forState:UIControlStateNormal]; } } break; case WXYZ_ProductionDownloadStateDownloading: { [self.downloadBtn setImage:[UIImage imageNamed:@"audio_downloading"] forState:UIControlStateNormal]; } break; case WXYZ_ProductionDownloadStateDownloaded: { [self.downloadBtn setImage:[UIImage imageNamed:@"audio_downloaded"] forState:UIControlStateNormal]; } break; case WXYZ_ProductionDownloadStateFail: { [self.downloadBtn setImage:[UIImage imageNamed:@"audio_download_fail"] forState:UIControlStateNormal]; } break; default: break; } } - (void)downloadBtnClick:(UIButton *)sender { if (([[WXYZ_AudioDownloadManager sharedManager] getChapterDownloadStateWithProduction_id:self.audioDirectoryModel.production_id chapter_id:self.audioDirectoryModel.chapter_id] == WXYZ_ProductionDownloadStateDownloading) || ([[WXYZ_AudioDownloadManager sharedManager] getChapterDownloadStateWithProduction_id:self.audioDirectoryModel.production_id chapter_id:self.audioDirectoryModel.chapter_id] == WXYZ_ProductionDownloadStateDownloaded)) { return; } if (self.downloadChapterBlock) { self.downloadChapterBlock(self.audioDirectoryModel.production_id, self.audioDirectoryModel.chapter_id, self.index); } } @end