Files
peko-ios/YuMi/Modules/YMMine/View/DressUp/View/XPMineDressUpListViewController.m
2023-08-04 11:47:43 +08:00

236 lines
9.3 KiB
Objective-C

//
// YMMineDressUpListViewController.m
// YUMI
//
// Created by YUMI on 2021/12/15.
//
#import "XPMineDressUpListViewController.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "YUMIMacroUitls.h"
#import "NSArray+Safe.h"
///View
#import "XPMineHeadwearTableViewCell.h"
#import "XPMineCarTableViewCell.h"
#import "XPMineNameplateTableViewCell.h"
#import "XPMineDressEmptyTableViewCell.h"
#import "XPMineNobleCardTableViewCell.h"
///P
#import "XPMineDressUpPresenter.h"
#import "XPMineDressUpProtocol.h"
///Model
#import "NobleCardModel.h"
@interface XPMineDressUpListViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineDressUpProtocol, XPMineNameplateTableViewCellDelegate, XPMineHeadwearTableViewCellDelegate, XPMineCarTableViewCellDelegate, XPMineNobleCardTableViewCellDelegate>
///列表
@property (nonatomic,strong) UITableView *tableView;
///数据源
@property (nonatomic,strong) NSArray *datasource;
@end
@implementation XPMineDressUpListViewController
- (XPMineDressUpPresenter *)createPresenter {
return [[XPMineDressUpPresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark - Private Method
- (void)initSubViews {
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - XPMineNameplateTableViewCellDelegate
- (void)xPMineNameplateTableViewCell:(XPMineNameplateTableViewCell *)view nameplateId:(NSString *)nameplateId {
[self.presenter useNameplate:nameplateId];
}
#pragma mark - XPMineHeadwearTableViewCellDelegate
- (void)xPMineHeadwearTableViewCell:(XPMineHeadwearTableViewCell *)view headwearId:(NSString *)headwearId {
[self.presenter useHeader:headwearId];
}
#pragma mark - XPMineCarTableViewCellDelegate
- (void)xPMineCarTableViewCell:(XPMineCarTableViewCell *)cell carId:(NSString *)carId {
[self.presenter useCar:carId];
}
#pragma mark - XPMineNobleCardTableViewCellDelegate
- (void)xPMineNobleCardTableViewCell:(XPMineNobleCardTableViewCell *)view nobleCardId:(NSString *)nobleCardId {
[self.presenter userNobleCard:nobleCardId];
}
#pragma mark - XPMineDressUpProtocol
- (void)getUserHeadwearListSuccess:(NSArray *)array {
self.datasource = array;
[self.tableView reloadData];
}
- (void)getUserCarListSuccess:(NSArray *)array {
self.datasource = array;
[self.tableView reloadData];
}
- (void)getUserNameplateListSuccess:(NSArray *)array {
self.datasource = array;
[self.tableView reloadData];
}
- (void)getUserNobleCardListSuccess:(NSArray *)array {
self.datasource = array;
[self.tableView reloadData];
}
- (void)useHeadwearSuccess:(NSString *)headWearId {
[self.presenter getUserHeadwearList];
[self showSuccessToast:headWearId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController6") : YMLocalizedString(@"XPMineDressUpListViewController1")];
}
- (void)useCarSuccess:(NSString *)carId {
[self.presenter getUserCarList];
[self showSuccessToast:carId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController7") : YMLocalizedString(@"XPMineDressUpListViewController3")];
}
- (void)useNameplateSuccess:(NSString *)nameplateId {
[self.presenter getUserNameplateList];
[self showSuccessToast:nameplateId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController8") : YMLocalizedString(@"XPMineDressUpListViewController5")];
}
- (void)userNobleCardSuccess:(NSString *)nobleCardId {
[self showSuccessToast:nobleCardId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController9") : YMLocalizedString(@"XPMineDressUpListViewController7")];
if (nobleCardId.integerValue == 0) {
for (NobleCardModel *model in self.datasource) {
model.used = NO;
}
} else {
for (NobleCardModel *model in self.datasource) {
if ([model.cardId isEqualToString:nobleCardId]) {
model.used = YES;
} else {
model.used = NO;
}
}
}
[self.tableView reloadData];
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.type == DressUpListType_Noble) {
return self.datasource.count > 0 ? 236 : (KScreenHeight - kNavigationHeight - 100 -50);
} else if (self.type == DressUpListType_Nameplate) {
return self.datasource.count > 0 ? 76 : (KScreenHeight - kNavigationHeight - 100 -50);
} else {
return self.datasource.count > 0 ? 120 : (KScreenHeight - kNavigationHeight - 100 -50);
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
if (self.type == DressUpListType_HeadWear) {
XPMineHeadwearTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
if (cell == nil) {
cell = [[XPMineHeadwearTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
}
cell.headwearModel = [self.datasource safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
} else if(self.type == DressUpListType_Car) {
XPMineCarTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
if (cell == nil) {
cell = [[XPMineCarTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
}
cell.carInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
} else if (self.type == DressUpListType_Noble) {
XPMineNobleCardTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
if (cell == nil) {
cell = [[XPMineNobleCardTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
}
cell.nobleCardModel = [self.datasource safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
} else {
XPMineNameplateTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
if (cell == nil) {
cell = [[XPMineNameplateTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
}
cell.nameplateModel = [self.datasource safeObjectAtIndex1:indexPath.row];
cell.delegate = self;
return cell;
}
}
XPMineDressEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineDressEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
}
cell.emptyTitle = self.type == DressUpListType_HeadWear ? YMLocalizedString(@"XPMineDressUpListViewController11") : self.type == DressUpListType_Car ? YMLocalizedString(@"XPMineDressUpListViewController12") : YMLocalizedString(@"XPMineDressUpListViewController10" );
return cell;
}
#pragma mark - Getters And Setters
- (void)setType:(DressUpListType)type {
_type = type;
switch (type) {
case DressUpListType_HeadWear:
[self.presenter getUserHeadwearList];
break;
case DressUpListType_Car:
[self.presenter getUserCarList];
break;
case DressUpListType_Nameplate:
[self.presenter getUserNameplateList];
break;
case DressUpListType_Noble:
[self.presenter getUserNobleCardList];
break;
default:
break;
}
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
_tableView.contentInset = UIEdgeInsetsMake(0, 0, kSafeAreaBottomHeight, 0);
[_tableView registerClass:[XPMineNameplateTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
[_tableView registerClass:[XPMineCarTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
[_tableView registerClass:[XPMineHeadwearTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
[_tableView registerClass:[XPMineNobleCardTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
[_tableView registerClass:[XPMineDressEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
}
return _tableView;
}
@end