You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
9.4 KiB
229 lines
9.4 KiB
// |
|
// 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
|
|
|