// // C2CChatSetttingsViewController.m // Youth // // Created by mambaxie on 2022/1/3. // #import "C2CChatSetttingsViewController.h" #import #import #import "ReportViewController.h" @interface C2CChatSetttingsViewController () //@property (nonatomic, strong) User *user; @property (nonatomic) TUIChatConversationModel *conversationData; @property (nonatomic, strong) V2TIMConversation *conversation; @property (nonatomic, assign) BOOL isBlack; @end @implementation C2CChatSetttingsViewController - (instancetype)initWithConversationData:(TUIChatConversationModel *)conversationData { if (self = [super init]) { _conversationData = conversationData; } return self; } - (BOOL)mt_nagationBarTransparent { return NO; } - (int)userID { return [UserService userIDFromIMUserID:self.conversationData.userID].intValue; } - (void)viewDidLoad { [super viewDidLoad]; [self startLoading]; int shouldHandleCount = 2; __block int handledCount = 0; void (^handleRsp)(void) = ^{ handledCount++; if (handledCount >= shouldHandleCount) { [self endLoading:nil]; [self reloadData]; } }; // [UserService getUserInfoWithUserID:[self userID] completion:^(User * _Nonnull user) { // if (user) { // self.user = user; // } // handleRsp(); // }]; [[V2TIMManager sharedInstance] getConversation:self.conversationData.conversationID succ:^(V2TIMConversation *conv) { self.conversation = conv; handleRsp(); } fail:^(int code, NSString *desc) { handleRsp(); }]; [UserService getUserBlackWithUserID:[self userID] completion:^(BOOL isBlack) { self.isBlack = isBlack; handleRsp(); }]; UILabel *reportLabel = [[UILabel alloc] init]; reportLabel.width = SCREEN_WIDTH; reportLabel.height = FIX_SIZE(80); reportLabel.textColor = THEME_COLOR; reportLabel.textAlignment = NSTextAlignmentCenter; [reportLabel addTapWithAction:^{ ReportViewController *vc = [[ReportViewController alloc] init]; User *user = [[User alloc] init]; user.ID = [self userID]; vc.user = user; [PYAppService pushViewControllerAnimated:vc]; }]; reportLabel.text = @"举报"; reportLabel.font = MT_FONT_REGULAR_SIZE(13); reportLabel.backgroundColor = [UIColor clearColor]; self.tableView.tableFooterView = reportLabel; } - (MTCommonListTableConfig *)tableConfigForTableViewContorller { MTCommonListTableConfig *config = [MTCommonListTableConfig defaultConfigWithCellStyle:MTCommonListTableCellStyleSwitch rowsCountForSections:@[@(3)]]; config.cellTitles = @[@"置顶聊天", @"消息免打扰", @"拉黑此人"]; config.cellTitleFont = MT_FONT_MEDIUM_SIZE(13); config.cellTitleColor = TITLE_COLOR; config.tableTitle = @"聊天详情"; WeakSelf(self); [config resetCellConfigForSection:0 row:0 config:^(MTCommonListTableCellConfig *cellConfig) { cellConfig.style = MTCommonListTableCellStyleSwitch; [cellConfig.switchButton setOn:weakself.conversation.isPinned animated:NO]; cellConfig.switchButtonAction = ^(UISwitch *switchButton, MTCommonListTableViewCell *cell) { [[V2TIMManager sharedInstance] pinConversation:weakself.conversationData.conversationID isPinned:switchButton.isOn succ:^{ } fail:^(int code, NSString *desc) { [SVProgressHUD showErrorWithStatus:desc ?: @"未知错误"]; [switchButton setOn:!switchButton.on animated:YES]; }]; }; }]; [config resetCellConfigForSection:0 row:1 config:^(MTCommonListTableCellConfig *cellConfig) { cellConfig.style = MTCommonListTableCellStyleSwitch; [cellConfig.switchButton setOn:weakself.conversation.recvOpt == V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE animated:NO]; cellConfig.switchButtonAction = ^(UISwitch *switchButton, MTCommonListTableViewCell *cell) { [[V2TIMManager sharedInstance] setC2CReceiveMessageOpt:@[weakself.conversation.userID ?: @""] opt:switchButton.isOn ? V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE : V2TIM_RECEIVE_MESSAGE succ:nil fail:^(int code, NSString *desc) { [SVProgressHUD showErrorWithStatus:desc ?: @"未知错误"]; [switchButton setOn:!switchButton.on animated:YES]; }]; }; }]; [config resetCellConfigForSection:0 row:2 config:^(MTCommonListTableCellConfig *cellConfig) { cellConfig.style = MTCommonListTableCellStyleSwitch; [cellConfig.switchButton setOn:weakself.isBlack animated:NO]; cellConfig.switchButtonAction = ^(UISwitch *switchButton, MTCommonListTableViewCell *cell) { [UserService setUserBlackWithUserID:[weakself userID] isBlack:switchButton.isOn completion:^(id _Nullable rsp, NSError * _Nullable error) { if (error) { [switchButton setOn:!switchButton.isOn animated:YES]; } }]; }; }]; return config; } @end