Files
featherVoice/TUIKit/TUIContact/UI_Classic/UI/TUIGroupRequestViewController.m
2025-08-08 10:49:36 +08:00

169 lines
6.3 KiB
Objective-C

//
// TUIGroupRequestViewController.m
// TUIKitDemo
//
// Created by annidyfeng on 2019/5/20.
// Copyright © 2019 Tencent. All rights reserved.
//
#import "TUIGroupRequestViewController.h"
#import <TIMCommon/TIMCommonModel.h>
#import <TIMCommon/TIMDefine.h>
@interface TUIGroupRequestViewController () <UITableViewDataSource, UITableViewDelegate, TUIProfileCardDelegate>
@property UITableView *tableView;
@property UITextView *addMsgTextView;
@property TUIProfileCardCellData *cardCellData;
@end
@implementation TUIGroupRequestViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
[self.view addSubview:self.tableView];
self.tableView.mm_fill();
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.addMsgTextView = [[UITextView alloc] initWithFrame:CGRectZero];
self.addMsgTextView.font = [UIFont systemFontOfSize:14];
self.addMsgTextView.textAlignment = isRTL()?NSTextAlignmentRight:NSTextAlignmentLeft;
NSString *loginUser = [[V2TIMManager sharedInstance] getLoginUser];
[[V2TIMManager sharedInstance] getUsersInfo:@[ loginUser ]
succ:^(NSArray<V2TIMUserFullInfo *> *infoList) {
self.addMsgTextView.text = [NSString
stringWithFormat:TIMCommonLocalizableString(GroupRequestJoinGroupFormat), [[infoList firstObject] showName]];
}
fail:^(int code, NSString *msg){
}];
TUIProfileCardCellData *data = [TUIProfileCardCellData new];
data.name = self.groupInfo.groupName;
data.identifier = self.groupInfo.groupID;
data.avatarImage = DefaultGroupAvatarImageByGroupType(self.groupInfo.groupType);
data.avatarUrl = [NSURL URLWithString:self.groupInfo.faceURL];
self.cardCellData = data;
self.title = TIMCommonLocalizableString(GroupJoin);
[TUITool addUnsupportNotificationInVC:self];
}
- (void)dealloc {
NSLog(@"%s dealloc", __FUNCTION__);
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
if (indexPath.section == 0) {
return [self.cardCellData heightOfWidth:Screen_Width];
}
if (indexPath.section == 1) {
return 120;
}
if (indexPath.section == 2) {
return 54;
}
return 0.;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIView *view = [[UIView alloc] init];
return view;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor clearColor];
UILabel *label = [[UILabel alloc] init];
label.text = TIMCommonLocalizableString(please_fill_in_verification_information);
label.textColor = [UIColor colorWithRed:136 / 255.0 green:136 / 255.0 blue:136 / 255.0 alpha:1 / 1.0];
label.font = [UIFont systemFontOfSize:14.0];
label.frame = CGRectMake(10, 0, self.tableView.bounds.size.width - 20, 40);
[view addSubview:label];
return section == 1 ? view : nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if (section == 1) {
return 40;
}
if (section == 2) {
return 10;
}
return 0;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
{ return 3; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
TUIProfileCardCell *cell = [[TUIProfileCardCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TPersonalCommonCell_ReuseId"];
cell.delegate = self;
[cell fillWithData:self.cardCellData];
return cell;
}
if (indexPath.section == 1) {
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"AddWord"];
[cell.contentView addSubview:self.addMsgTextView];
self.addMsgTextView.mm_width(Screen_Width).mm_height(120);
return cell;
}
if (indexPath.section == 2) {
TUIButtonCell *cell = [[TUIButtonCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"send"];
TUIButtonCellData *cellData = [[TUIButtonCellData alloc] init];
cellData.title = TIMCommonLocalizableString(Send);
cellData.style = ButtonWhite;
cellData.cselector = @selector(onSend);
cellData.textColor = [UIColor colorWithRed:20 / 255.0 green:122 / 255.0 blue:255 / 255.0 alpha:1 / 1.0];
[cell fillWithData:cellData];
return cell;
}
return nil;
}
- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}
- (void)onSend {
// display toast with an activity spinner
[TUITool makeToastActivity];
[[V2TIMManager sharedInstance] joinGroup:self.groupInfo.groupID
msg:self.addMsgTextView.text
succ:^{
[TUITool hideToastActivity];
[TUITool makeToast:TIMCommonLocalizableString(send_success) duration:3.0 idposition:TUICSToastPositionBottom];
}
fail:^(int code, NSString *desc) {
[TUITool hideToastActivity];
[TUITool makeToastError:code msg:desc];
if (code == ERR_SDK_INTERFACE_NOT_SUPPORT) {
[TUITool postUnsupportNotificationOfService:TIMCommonLocalizableString(TUIKitErrorUnsupportIntefaceCommunity)
serviceDesc:TIMCommonLocalizableString(TUIKitErrorUnsupportIntefaceCommunityDesc)
debugOnly:YES];
}
}];
}
- (void)didTapOnAvatar:(TUIProfileCardCell *)cell {
TUIAvatarViewController *image = [[TUIAvatarViewController alloc] init];
image.avatarData = cell.cardData;
[self.navigationController pushViewController:image animated:YES];
}
@end