
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
271 lines
8.6 KiB
Objective-C
271 lines
8.6 KiB
Objective-C
//
|
|
// CreateEventSelectRoomViewController.m
|
|
// YuMi
|
|
//
|
|
// Created by P on 2025/5/12.
|
|
//
|
|
|
|
#import "CreateEventSelectRoomViewController.h"
|
|
#import "CreateEventPresenter.h"
|
|
#import "EventCenterEmptyCell.h"
|
|
|
|
@interface CreateEventSelectRoomCell : UITableViewCell
|
|
{
|
|
NetImageView *avatar;
|
|
UILabel *nameLabel;
|
|
UILabel *idLabel;
|
|
}
|
|
|
|
+ (CGFloat)cellHeight;
|
|
+ (void)registerTo:(UITableView *)tableView;
|
|
+ (CreateEventSelectRoomCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath;
|
|
|
|
- (void)updateCell:(EventRoomModel *)model;
|
|
|
|
@end
|
|
|
|
@implementation CreateEventSelectRoomCell
|
|
{
|
|
EventRoomModel *cellModel;
|
|
}
|
|
+ (CGFloat)cellHeight {
|
|
return 64;
|
|
}
|
|
|
|
+ (void)registerTo:(UITableView *)tableView {
|
|
[tableView registerClass:[self class]
|
|
forCellReuseIdentifier:NSStringFromClass([self class])];
|
|
}
|
|
|
|
+ (CreateEventSelectRoomCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath {
|
|
return [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([self class]) forIndexPath:indexPath];
|
|
}
|
|
|
|
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
|
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
|
|
|
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
|
self.separatorInset = UIEdgeInsetsZero;
|
|
self.contentView.backgroundColor = [UIColor whiteColor];
|
|
|
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
config.imageType = ImageTypeUserIcon;
|
|
avatar = [[NetImageView alloc]initWithConfig:config];
|
|
[avatar setCornerRadius:8];
|
|
[self.contentView addSubview: avatar];
|
|
|
|
nameLabel = [UILabel labelInitWithText:@"123" font:kFontSemibold(15) textColor:UIColorFromRGB(0x313131)];
|
|
[self.contentView addSubview:nameLabel];
|
|
|
|
idLabel = [UILabel labelInitWithText:@"456" font:kFontRegular(13) textColor:UIColorFromRGB(0x7b7b7d)];
|
|
[self.contentView addSubview:idLabel];
|
|
|
|
[avatar mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.mas_equalTo(self.contentView);
|
|
make.leading.mas_equalTo(16);
|
|
make.size.mas_equalTo(CGSizeMake(48, 48));
|
|
}];
|
|
|
|
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.mas_equalTo(avatar).offset(4);
|
|
make.leading.mas_equalTo(avatar.mas_trailing).offset(11);
|
|
make.height.mas_equalTo(21);
|
|
}];
|
|
|
|
[idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.bottom.mas_equalTo(avatar).offset(-4);
|
|
make.leading.mas_equalTo(avatar.mas_trailing).offset(11);
|
|
make.height.mas_equalTo(18);
|
|
}];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)updateCell:(EventRoomModel *)model {
|
|
cellModel = model;
|
|
avatar.imageUrl = model.avatar;
|
|
nameLabel.text = model.roomName;
|
|
idLabel.text = [NSString stringWithFormat:@"ID:%@", @(model.erbanNo)];
|
|
}
|
|
|
|
@end
|
|
|
|
@interface CreateEventSelectRoomViewController () <UITableViewDelegate, UITableViewDataSource, CreateEventPresenterProcotol>
|
|
{
|
|
UITableView *tableView;
|
|
}
|
|
|
|
@property (nonatomic, strong) EventRoomListModel *model;
|
|
|
|
@end
|
|
|
|
@implementation CreateEventSelectRoomViewController
|
|
|
|
- (CreateEventPresenter *)createPresenter {
|
|
return [CreateEventPresenter new];
|
|
}
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
|
|
self.title = YMLocalizedString(@"20.20.59_text_14");
|
|
|
|
[self setupUI];
|
|
|
|
[self.presenter loadMyRooms];
|
|
}
|
|
|
|
- (void)setupUI {
|
|
tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
|
|
tableView.delegate = self;
|
|
tableView.dataSource = self;
|
|
tableView.separatorInset = UIEdgeInsetsZero;
|
|
tableView.backgroundColor = [UIColor whiteColor];
|
|
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
|
[CreateEventSelectRoomCell registerTo:tableView];
|
|
[EventCenterEmptyCell registerTo:tableView withCustomID:@""];
|
|
[self.view addSubview:tableView];
|
|
}
|
|
|
|
#pragma mark - CreateEventPresenterProcotol
|
|
- (void)myRoomListSuccess:(EventRoomListModel *)listModel {
|
|
_model = listModel;
|
|
[tableView reloadData];
|
|
}
|
|
|
|
- (void)myRoomListFailure:(NSString *)msg {
|
|
|
|
}
|
|
|
|
#pragma mark - Delegate & DataSource
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
return 2;
|
|
}
|
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
switch (section) {
|
|
case 0:
|
|
return 1;
|
|
break;
|
|
case 1:
|
|
return self.model.manageRooms.count == 0 ? 1 : self.model.manageRooms.count;
|
|
break;
|
|
default:
|
|
return 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
|
switch (section) {
|
|
case 0: {
|
|
return [self sectionHeaderTitle:YMLocalizedString(@"20.20.59_text_20")];
|
|
}
|
|
break;
|
|
case 1: {
|
|
return [self sectionHeaderTitle:YMLocalizedString(@"20.20.59_text_21")];
|
|
}
|
|
break;
|
|
default:
|
|
return [UIView new];
|
|
break;
|
|
}
|
|
}
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
return 30;
|
|
}
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
switch (indexPath.section) {
|
|
case 0: {
|
|
return self.model.selfRoom == nil ? [EventCenterEmptyCell cellHeight] : [CreateEventSelectRoomCell cellHeight];
|
|
}
|
|
break;
|
|
case 1: {
|
|
return self.model.manageRooms.count == 0 ? [EventCenterEmptyCell cellHeight] : [CreateEventSelectRoomCell cellHeight];
|
|
}
|
|
break;
|
|
default:
|
|
return 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
UITableViewCell *cell = [UITableViewCell new];
|
|
switch (indexPath.section) {
|
|
case 0: {
|
|
if (self.model.selfRoom == nil) {
|
|
cell = [EventCenterEmptyCell cellFor:tableView customID:@"" atIndexPath:indexPath];
|
|
} else {
|
|
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
|
|
[(CreateEventSelectRoomCell *)cell updateCell:self.model.selfRoom];
|
|
}
|
|
}
|
|
break;
|
|
case 1: {
|
|
if (self.model.manageRooms.count == 0) {
|
|
cell = [EventCenterEmptyCell cellFor:tableView customID:@"" atIndexPath:indexPath];
|
|
} else {
|
|
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
|
|
[(CreateEventSelectRoomCell *)cell updateCell:[self.model.manageRooms xpSafeObjectAtIndex:indexPath.row]];
|
|
}
|
|
}
|
|
break;
|
|
default: {
|
|
cell = [UITableViewCell new];
|
|
}
|
|
break;
|
|
}
|
|
return cell;
|
|
}
|
|
|
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
|
|
|
if (self.didSelectedRoom) {
|
|
switch (indexPath.section) {
|
|
case 0:
|
|
self.didSelectedRoom(self.model.selfRoom);
|
|
break;
|
|
case 1:
|
|
self.didSelectedRoom([self.model.manageRooms xpSafeObjectAtIndex:indexPath.row]);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
[self.navigationController popViewControllerAnimated:YES];
|
|
}
|
|
|
|
#pragma mark -
|
|
- (UIView *)sectionHeaderTitle:(NSString *)title {
|
|
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 30)];
|
|
view.backgroundColor = UIColorFromRGB(0xf2f3f7);
|
|
|
|
if ([title isEqualToString:YMLocalizedString(@"20.20.59_text_21")]) {
|
|
// view.backgroundColor = [UIColor whiteColor];
|
|
UILabel *label = [UILabel labelInitWithText:title font:kFontSemibold(14) textColor:UIColorFromRGB(0x313131)];
|
|
[view addSubview:label];
|
|
[label mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.mas_equalTo(view);
|
|
make.leading.mas_equalTo(16);
|
|
}];
|
|
return view;
|
|
}
|
|
|
|
UILabel *label = [UILabel labelInitWithText:title font:kFontSemibold(14) textColor:UIColorFromRGB(0x313131)];
|
|
[view addSubview:label];
|
|
[label mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.mas_equalTo(view);
|
|
make.leading.mas_equalTo(16);
|
|
}];
|
|
return view;
|
|
}
|
|
|
|
@end
|