539 lines
24 KiB
Objective-C
539 lines
24 KiB
Objective-C
//
|
||
// MsgListViewController.m
|
||
// Youth
|
||
//
|
||
// Created by mambaxie on 2022/1/1.
|
||
//
|
||
|
||
#import "MsgListViewController.h"
|
||
#import "TUIConversationListController.h"
|
||
#import "EditProfileViewController.h"
|
||
#import "AvatarView.h"
|
||
#import "ChatViewController.h"
|
||
#import "BottleReadView.h"
|
||
#import "TUILogin.h"
|
||
#import "LoginService.h"
|
||
#import "WZLBadgeImport.h"
|
||
#import "TZImagePickerController+MTImagePicker.h"
|
||
#import "MessageNotificationListViewController.h"
|
||
|
||
#import "THGiveVipMessageCellData.h"
|
||
|
||
@interface MsgListViewController () <TUIConversationListControllerListener, V2TIMConversationListener>
|
||
|
||
@property (nonatomic, strong) AvatarView *avatarView;
|
||
@property (nonatomic, strong) UILabel* unreadCountLab;
|
||
@property (nonatomic, strong) UILabel *nickNameLabel;
|
||
|
||
@property (nonatomic, strong) TUIConversationListController *convVC;
|
||
|
||
@property (nonatomic, strong) UIButton *changeAccountButton;
|
||
@property (nonatomic, strong) UIButton *changeAccountTipsButton;
|
||
|
||
@property (nonatomic, strong) NSTimer *msgUnreadTimer;
|
||
|
||
@property (nonatomic, assign) int currentAcountUnreadMsgCount;
|
||
@property (nonatomic, assign) int anotherAcountUnreadMsgCount;
|
||
|
||
@property (nonatomic, assign) int needVipToClone;
|
||
|
||
@property (nonatomic, strong) UIButton *receiveNewMsgButton;
|
||
@property (nonatomic, strong) UIImage *avatarImage;
|
||
@property (nonatomic, strong) UIImageView *avatarImageView;
|
||
@property (nonatomic, strong) MTAlertView *alertView;
|
||
|
||
@end
|
||
|
||
@implementation MsgListViewController
|
||
|
||
- (BOOL)mt_nagationBarTransparent {
|
||
return YES;
|
||
}
|
||
|
||
- (BOOL)mt_prefersNavigationBarShadowHidden {
|
||
return NO;
|
||
}
|
||
|
||
- (UIStatusBarStyle)preferredStatusBarStyle {
|
||
return UIStatusBarStyleLightContent;
|
||
}
|
||
|
||
- (void)dealloc {
|
||
// [[V2TIMManager sharedInstance] removeConversationListener:self];
|
||
[self.msgUnreadTimer invalidate];
|
||
self.msgUnreadTimer = nil;
|
||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||
}
|
||
|
||
- (void)updateChangeAccount {
|
||
[self.changeAccountButton setTitle:[LoginService isClone] ? @"切主号" : @"切分身" forState:UIControlStateNormal];
|
||
}
|
||
|
||
- (void)viewDidLoad {
|
||
[super viewDidLoad];
|
||
|
||
self.title = @"聊天";
|
||
WeakSelf(self);
|
||
self.msgUnreadTimer = [NSTimer timerWithTimeInterval:60 repeats:YES block:^(NSTimer * _Nonnull timer) {
|
||
[weakself getC2CUnreadMsgCountWithCompletion:nil];
|
||
}];
|
||
[[NSRunLoop mainRunLoop] addTimer:self.msgUnreadTimer forMode:NSRunLoopCommonModes];
|
||
[self.msgUnreadTimer fire];
|
||
|
||
UIButton *msgButton = [[UIButton alloc] init];
|
||
msgButton.size = CGSizeMake(FIX_SIZE(32), FIX_SIZE(32));
|
||
// [msgButton setImage:ImageNamed(@"TH_praty_notice_icon") forState:UIControlStateNormal];
|
||
[msgButton setImage:ImageNamed(@"TH_praty_notice_icon") forState:UIControlStateNormal];
|
||
// UIView *msgBgView = [[UIView alloc] initWithFrame:msgButton.frame];
|
||
// msgButton.backgroundColor = [UIColor whiteColor];
|
||
msgButton.layer.cornerRadius = FIX_SIZE(12);
|
||
|
||
_unreadCountLab = [[UILabel alloc]initWithFrame:CGRectMake(msgButton.right - 13, -5, 18, 18)];
|
||
_unreadCountLab.text = @"1";
|
||
_unreadCountLab.font = MT_FONT_MEDIUM_NO_SCALE_SIZE(11);
|
||
_unreadCountLab.textAlignment = NSTextAlignmentCenter;
|
||
_unreadCountLab.textColor = COLOR_WITH_RGB(0xFFFFFF);
|
||
_unreadCountLab.backgroundColor = [UIColor redColor];
|
||
_unreadCountLab.layer.cornerRadius = 9;
|
||
_unreadCountLab.layer.masksToBounds = YES;
|
||
_unreadCountLab.hidden = YES;
|
||
[msgButton addSubview:_unreadCountLab];
|
||
// msgBgView.layer.borderWidth = FIX_SIZE(1.5);
|
||
// msgBgView.layer.borderColor = COLOR_WITH_RGB(0x090600).CGColor;
|
||
// msgBgView.clipsToBounds = YES;
|
||
// [self.view addSubview:msgBgView];
|
||
// msgButton.backgroundColor = [UIColor clearColor];
|
||
[msgButton addTouchUpInsideWithAction:^(UIButton * _Nullable button) {
|
||
[weakself.navigationController pushViewController:[[MessageNotificationListViewController alloc] init] animated:YES];
|
||
}];
|
||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:msgButton];
|
||
|
||
UIButton *changeAccountButton = [UIButton buttonWithType:UIButtonTypeSystem];
|
||
changeAccountButton.height = 24;
|
||
changeAccountButton.width = 61;
|
||
changeAccountButton.titleLabel.font = MT_FONT_REGULAR_NO_SCALE_SIZE(13);
|
||
[changeAccountButton setTitleColor:COLOR_WITH_RGB(0xE2B594) forState:UIControlStateNormal];
|
||
// changeAccountButton.backgroundColor = COLOR_WITH_RGB(0x2C2942);
|
||
changeAccountButton.layer.cornerRadius = 12;
|
||
changeAccountButton.layer.borderWidth = 1;
|
||
changeAccountButton.layer.borderColor = COLOR_WITH_RGB(0xE2B594).CGColor;
|
||
[changeAccountButton addTouchUpInsideWithAction:^(UIButton * _Nullable button) {
|
||
[weakself changeAccount];
|
||
}];
|
||
self.changeAccountButton = changeAccountButton;
|
||
[self updateChangeAccount];
|
||
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:changeAccountButton];
|
||
|
||
UIButton *changeAccountTipsButton = [UIButton buttonWithType:UIButtonTypeSystem];
|
||
changeAccountTipsButton.height = 38;
|
||
changeAccountTipsButton.titleLabel.font = MT_FONT_REGULAR_NO_SCALE_SIZE(15);
|
||
[changeAccountTipsButton setTitleColor:COLOR_WITH_RGB(0x040000) forState:UIControlStateNormal];
|
||
[changeAccountTipsButton addTouchUpInsideWithAction:^(UIButton * _Nullable button) {
|
||
[weakself changeAccount];
|
||
}];
|
||
self.changeAccountTipsButton = changeAccountTipsButton;
|
||
|
||
UIImageView *bgImageView = [[UIImageView alloc] init];
|
||
// bgImageView.image = ImageNamed(@"TH_chat_bg");
|
||
bgImageView.image = ImageNamed(@"TH_BaseLocalBg");
|
||
bgImageView.frame = CGRectMake(0, 0,self.view.width , self.view.height);
|
||
bgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||
[self.view addSubview:bgImageView];
|
||
// bgImageView.x = FIX_SIZE(37.5);
|
||
// bgImageView.width = self.view.width - bgImageView.x * 2;
|
||
// CGSize imageSize = bgImageView.image.size;
|
||
// bgImageView.height = bgImageView.width * imageSize.height / imageSize.width;
|
||
// 创建 TUIConversationListController
|
||
TUIConversationListController *conv = [[TUIConversationListController alloc] init];
|
||
conv.delegate = self;
|
||
conv.view.y = NAVIGATION_BAR_HEIGHT;
|
||
conv.view.backgroundColor = [UIColor clearColor];
|
||
conv.tableView.backgroundColor = [UIColor clearColor];
|
||
conv.view.height = Screen_Height - TAB_BAR_HEIGHT - conv.view.y;
|
||
conv.tableView.height = conv.view.height;
|
||
// [conv.view addSubview:bgImageView];
|
||
self.convVC = conv;
|
||
bgImageView.centerY = conv.view.height * 0.5;
|
||
// 把 TUIConversationListController 添加到自己的 ViewController
|
||
[self addChildViewController:conv];
|
||
[self.view addSubview:conv.view];
|
||
|
||
[[V2TIMManager sharedInstance] addConversationListener:self];
|
||
|
||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(vipBuySucceed) name:BuyVIPSuccessNotification object:nil];
|
||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loadedUserOtherInfos) name:LoadedUserOtherInfosNotification object:nil];
|
||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onLoginSucceed) name:LoginSuccessNotification object:nil];
|
||
|
||
UIButton *receiveNewMsgButton = [UIButton buttonWithType:UIButtonTypeSystem];
|
||
[receiveNewMsgButton setTintColor:UIColor.whiteColor];
|
||
// [receiveNewMsgButton setTitle:@"缘分匹配❤️" forState:UIControlStateNormal];
|
||
receiveNewMsgButton.size = CGSizeMake(FIX_SIZE(100), FIX_SIZE(100)*0.37);
|
||
// receiveNewMsgButton.layer.cornerRadius = FIX_SIZE(16);
|
||
// [receiveNewMsgButton setBackgroundColor:COLOR_WITH_RGB_A(0xC1971D, 0.6)];
|
||
// [receiveNewMsgButton setBackgroundImage:ImageNamed(@"TH_home_yuanFen") forState:UIControlStateNormal];
|
||
receiveNewMsgButton.titleLabel.font = MT_FONT_REGULAR_SIZE(14);
|
||
receiveNewMsgButton.right = self.view.width - FIX_SIZE(15);
|
||
receiveNewMsgButton.bottom = self.view.height - TabBar_Height - FIX_SIZE(60);
|
||
[receiveNewMsgButton addTouchUpInsideWithAction:^(UIButton * _Nullable button) {
|
||
int userid = [UserService currentUserID];
|
||
NSString *userIdStr = [NSString stringWithFormat:@"%@",@(userid)];
|
||
NSUserDefaults *udf = [NSUserDefaults standardUserDefaults];
|
||
if ([udf objectForKey:userIdStr]) {
|
||
[SVProgressHUD showWithStatus:nil];
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[PYHTTPManager postWithPath:@"getnewchatmessage" params:nil callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (!error) {
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD dismiss];
|
||
});
|
||
return;
|
||
}
|
||
|
||
}];
|
||
});
|
||
} else {
|
||
[udf setValue:userIdStr forKey:userIdStr];
|
||
[udf synchronize];
|
||
[self showTip];
|
||
}
|
||
|
||
|
||
|
||
}];
|
||
self.receiveNewMsgButton = receiveNewMsgButton;
|
||
receiveNewMsgButton.hidden = YES;
|
||
[self.view addSubview:receiveNewMsgButton];
|
||
|
||
#warning 1
|
||
[[V2TIMManager sharedInstance] getTotalUnreadMessageCount:^(UInt64 totalCount) {
|
||
|
||
|
||
// 获取成功,totalCount 为未读消息总数
|
||
// 更新 UI 上的未读数
|
||
// [weakself.customTabbar setNumAtIndex:1 num:totalCount];
|
||
weakself.currentAcountUnreadMsgCount = (int)totalCount;
|
||
|
||
[UIApplication sharedApplication].applicationIconBadgeNumber = totalCount;
|
||
} fail:^(int code, NSString *desc) {
|
||
// 获取失败
|
||
// [weakself.tabBarController.tabBar setNumAtIndex:1 num:0];
|
||
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
|
||
}];
|
||
}
|
||
|
||
- (void)showTip {
|
||
MJWeakSelf
|
||
[MTAlertView showWithSetupBlcok:^(MTAlertViewConfig *config) {
|
||
config.message = @"准确选择想认识的人,才能相应匹配哦。";
|
||
config.otherTitle = @"前往选择想认识的人";
|
||
|
||
config.otherHandler = ^(MTAlertButton *button) {
|
||
EditProfileViewController *VC = [EditProfileViewController new];
|
||
VC.isShowSexTip = true;
|
||
[weakSelf.navigationController pushViewController:VC animated:true];
|
||
|
||
};
|
||
}];
|
||
}
|
||
|
||
- (void)reloadMsgBadge {
|
||
WeakSelf(self);
|
||
[LoginService launchAppToHomeWithCompletion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (!error) {
|
||
int unreadCount = [rsp[@"unread_notice"] intValue];
|
||
// unreadCount = 2;
|
||
weakself.unreadCountLab.text = [NSString stringWithFormat:@"%d",unreadCount];
|
||
// self.navRightBtn.badgeCenterOffset = CGPointMake(-FIX_SIZE(5), FIX_SIZE(5));
|
||
if (unreadCount > 0) {
|
||
weakself.unreadCountLab.hidden = NO;
|
||
// [self.navRightBtn showBadgeWithStyle:WBadgeStyleNumber value:unreadCount animationType:WBadgeAnimTypeNone];
|
||
} else {
|
||
weakself.unreadCountLab.hidden = YES;
|
||
// [self.navRightBtn clearBadge];
|
||
}
|
||
// [PYAppService showBadgeOnTabBarItemAtIndex:1 number:unreadCount];
|
||
[PYAppService appConfig].is_wallet_notice = [rsp[@"is_wallet_notice"] intValue];
|
||
[PYAppService appConfig].wallet_des = rsp[@"wallet_des"];
|
||
// if ([ProfileViewController shouldShowBadge]) {
|
||
// [PYAppService showBadgeOnTabBarItemAtIndex:2 number:-1];
|
||
// }
|
||
}
|
||
}];
|
||
}
|
||
|
||
- (void)vipBuySucceed{
|
||
self.needVipToClone = 0;
|
||
// TODO江伟
|
||
// [[MTAlertView currentShowingAlertView] dismiss];
|
||
}
|
||
|
||
- (void)getC2CUnreadMsgCountWithCompletion:(PYHTTPManagerCallback)completion {
|
||
[UserService getC2CUnreadMsgCountWithCompletion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (!error) {
|
||
int unreadCount = [rsp[@"unread_ctoc_num"] intValue];
|
||
self.needVipToClone = [rsp[@"need_vip"] intValue];
|
||
self.anotherAcountUnreadMsgCount = unreadCount;
|
||
NSString *tips = rsp[@"vip_alert_title"];
|
||
// tips = @"有6人和你交换了照片";
|
||
if (tips.length > 0) {
|
||
[self.changeAccountTipsButton setTitle:tips forState:UIControlStateNormal];
|
||
[self.changeAccountTipsButton sizeToFit];
|
||
self.changeAccountTipsButton.height = 38;
|
||
self.changeAccountTipsButton.width += 14;
|
||
UIImage *image = ImageNamed(@"chat_tips_bg");
|
||
// 四个数值对应图片中距离上、左、下、右边界的不拉伸部分的范围宽度
|
||
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(20, 150, 20, 30) resizingMode:UIImageResizingModeStretch];
|
||
[self.changeAccountTipsButton setBackgroundImage:image forState:UIControlStateNormal];
|
||
CGRect rect = [self.changeAccountButton.titleLabel convertRect:self.changeAccountButton.titleLabel.bounds toView:self.changeAccountButton.superview];
|
||
self.changeAccountTipsButton.top = CGRectGetMaxY(rect);
|
||
self.changeAccountTipsButton.left = [self.changeAccountButton convertRect:self.changeAccountButton.bounds toView:self.changeAccountButton.superview].origin.x;
|
||
[self.changeAccountButton.superview addSubview:self.changeAccountTipsButton];
|
||
} else {
|
||
[self.changeAccountTipsButton removeFromSuperview];
|
||
}
|
||
[self updateUnreadCountUI];
|
||
}
|
||
if (completion) {
|
||
completion(rsp, error);
|
||
}
|
||
}];
|
||
}
|
||
|
||
- (void)setupCloneInfo {
|
||
UIView *setupCloneInfoView = [[UIView alloc] init];
|
||
setupCloneInfoView.width = kMTAlertContentSizeDefaultWidth;
|
||
|
||
UILabel *titleLabel = [[UILabel alloc] init];
|
||
titleLabel.font = MT_FONT_MEDIUM_SIZE(16);
|
||
titleLabel.text = @"请设置你的分身昵称";
|
||
titleLabel.textColor = [UIColor whiteColor];
|
||
titleLabel.y = FIX_SIZE(30);
|
||
[titleLabel sizeToFit];
|
||
titleLabel.centerX = setupCloneInfoView.width * 0.5;
|
||
[setupCloneInfoView addSubview:titleLabel];
|
||
|
||
PYThemeTextField *nicknameTextFiled = [PYThemeTextField fieldWithPlaceholder:@"分身是一个新的账户哦" maxLength:15];
|
||
nicknameTextFiled.y = titleLabel.bottom + 15;
|
||
nicknameTextFiled.x = setupCloneInfoView.width - FIX_SIZE(20);
|
||
nicknameTextFiled.width = setupCloneInfoView.width - nicknameTextFiled.x * 2;
|
||
[setupCloneInfoView addSubview:nicknameTextFiled];
|
||
|
||
UILabel *avatarTitleLabel = [[UILabel alloc] init];
|
||
avatarTitleLabel.font = MT_FONT_MEDIUM_SIZE(16);
|
||
avatarTitleLabel.text = @"请设置你的分身头像";
|
||
avatarTitleLabel.textColor = [UIColor whiteColor];
|
||
avatarTitleLabel.y = nicknameTextFiled.bottom + FIX_SIZE(30);
|
||
[avatarTitleLabel sizeToFit];
|
||
avatarTitleLabel.centerX = setupCloneInfoView.width * 0.5;
|
||
[setupCloneInfoView addSubview:avatarTitleLabel];
|
||
|
||
UIView *addAvatarItem = [[UIView alloc] init];
|
||
addAvatarItem.size = CGSizeMake(FIX_SIZE(120), FIX_SIZE(120));
|
||
addAvatarItem.backgroundColor = SUB_BG_COLOR;
|
||
addAvatarItem.layer.cornerRadius = FIX_SIZE(16);
|
||
addAvatarItem.clipsToBounds = YES;
|
||
addAvatarItem.y = avatarTitleLabel.bottom + FIX_SIZE(15);
|
||
addAvatarItem.centerX = setupCloneInfoView.width * 0.5;
|
||
[addAvatarItem addTapWithAction:^{
|
||
TZImagePickerController *picker = [TZImagePickerController mt_imagePickerWithMaxImagesCount:1 didFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
|
||
if (photos.count) {
|
||
self.avatarImageView.image = photos.firstObject;
|
||
self.avatarImageView.hidden = NO;
|
||
self.avatarImage = self.avatarImageView.image;
|
||
}
|
||
}];
|
||
[[PYAppService currentNavigationController] presentViewController:picker animated:YES completion:nil];
|
||
}];
|
||
[setupCloneInfoView addSubview:addAvatarItem];
|
||
|
||
UIImageView *addIconView = [[UIImageView alloc] init];
|
||
addIconView.size = CGSizeMake(FIX_SIZE(26), FIX_SIZE(26));
|
||
addIconView.image = [ImageNamed(@"TH_login_add_icon") mt_imageWithTintColor:UIColor.whiteColor];
|
||
addIconView.center = CGPointMake(addAvatarItem.width * 0.5, addAvatarItem.height * 0.5);
|
||
[addAvatarItem addSubview:addIconView];
|
||
|
||
UILabel *addLabel = [[UILabel alloc] init];
|
||
addLabel.text = @"点击选取头像";
|
||
addLabel.textColor = CONTENT_COLOR;
|
||
addLabel.font = SMALL_FONT;
|
||
[addLabel sizeToFit];
|
||
addLabel.y = addIconView.bottom + FIX_SIZE(13.5);
|
||
addLabel.centerX = addIconView.centerX;
|
||
[addAvatarItem addSubview:addLabel];
|
||
|
||
PYImageView *avatarImageView = [[PYImageView alloc] init];
|
||
avatarImageView.frame = addAvatarItem.bounds;;
|
||
avatarImageView.backgroundColor = addAvatarItem.backgroundColor;
|
||
avatarImageView.hidden = YES;
|
||
[addAvatarItem addSubview:avatarImageView];
|
||
self.avatarImageView = avatarImageView;
|
||
self.avatarImage = nil;
|
||
setupCloneInfoView.height = addAvatarItem.bottom;
|
||
// setupCloneInfoView.height = 100;
|
||
MTAlertView *alertView = [MTAlertView showWithSetupBlcok:^(MTAlertViewConfig *config) {
|
||
config.customView = setupCloneInfoView;
|
||
config.otherTitle = @"OK";
|
||
config.otherHandler = ^(MTAlertButton *button) {
|
||
if (nicknameTextFiled.text.length < 2) {
|
||
[SVProgressHUD showInfoWithStatus:@"昵称至少2个字符"];
|
||
button.tag = MTNO_DISMISS_TAG;
|
||
return;
|
||
}
|
||
|
||
if (!self.avatarImage) {
|
||
[SVProgressHUD showInfoWithStatus:@"请先选择头像"];
|
||
button.tag = MTNO_DISMISS_TAG;
|
||
return;
|
||
}
|
||
|
||
button.tag = MTNO_DISMISS_TAG;
|
||
[SVProgressHUD showWithStatus:nil];
|
||
[PYHTTPManager uploadFileWithScene:AliOSSUploadSceneAvatar data:compressImageToDataIfNeed(self.avatarImage) completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (!error) {
|
||
[UserService updateUserToRemoteWithParams:@{
|
||
@"avatar": rsp ?: @"",
|
||
@"nick_name": nicknameTextFiled.text
|
||
} completion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
if (!error) { // 上传完成
|
||
[UserService currentUser].is_default_avatar = false;
|
||
[self.alertView dismiss];
|
||
}else{
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
[SVProgressHUD showErrorWithStatus:[error.userInfo objectForKey:@"message"]];
|
||
});
|
||
}
|
||
}];
|
||
}
|
||
}];
|
||
};
|
||
}];
|
||
self.alertView = alertView;
|
||
}
|
||
|
||
- (void)onLoginSucceed {
|
||
if ([UserService currentUser].is_new_clone) { // 初次使用分身 需要设置头像+昵称
|
||
[self setupCloneInfo];
|
||
}
|
||
}
|
||
|
||
|
||
- (void)changeAccount {
|
||
[self getC2CUnreadMsgCountWithCompletion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
|
||
if (![LoginService isClone]){
|
||
if (self.needVipToClone > 0) {
|
||
[PYAppService showVipAlertWithPath:@"open_clone" title:@"多一个身份,便多几段缘分" msg:@"开通VIP就可以无限切换分身啦~还可以获得其他十五种会员特权,拥有更多不一样的体验~" source:@"open_clone"];
|
||
return;
|
||
}
|
||
}
|
||
|
||
[SVProgressHUD showWithStatus:nil];
|
||
[TUILogin logout:^{ // 切分身先退出IM
|
||
if ([LoginService isClone]) {
|
||
[UserService backToMainWithCompletion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
[SVProgressHUD dismiss];
|
||
if (!error) {
|
||
}else {
|
||
[ToastUtil showToast:[error.userInfo objectForKey:@"message"]];
|
||
}
|
||
}];
|
||
} else {
|
||
[UserService changeToCloneWithCompletion:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
[SVProgressHUD dismiss];
|
||
if (!error) {
|
||
}else {
|
||
[ToastUtil showToast:[error.userInfo objectForKey:@"message"]];
|
||
}
|
||
}];
|
||
}
|
||
} fail:^(int code, NSString *msg) {
|
||
[SVProgressHUD showErrorWithStatus:msg ? msg : @"切换账户失败(im error)"];
|
||
}];
|
||
}];
|
||
}
|
||
|
||
- (void)loadedUserOtherInfos {
|
||
[self.convVC.tableView reloadData];
|
||
}
|
||
|
||
- (void)viewWillAppear:(BOOL)animated {
|
||
[super viewWillAppear:animated];
|
||
//刷新.通知消息
|
||
[self reloadMsgBadge];
|
||
[PYHTTPManager getWithPath:@"appconfig" params:nil callback:^(id _Nullable rsp, NSError * _Nullable error) {
|
||
// [self.receiveNewMsgButton setTitle:rsp[@"next_message_title"] forState:UIControlStateNormal];
|
||
// [self.receiveNewMsgButton sizeToFit];
|
||
[self.receiveNewMsgButton sd_setBackgroundImageWithURL:rsp[@"next_message_image"] forState:UIControlStateNormal];
|
||
// self.receiveNewMsgButton.size = CGSizeMake(FIX_SIZE(self.receiveNewMsgButton.width + 16), FIX_SIZE(30));
|
||
// self.receiveNewMsgButton.layer.cornerRadius = FIX_SIZE(16);
|
||
self.receiveNewMsgButton.hidden = [rsp[@"chat_has_next_message"] intValue] <= 0;
|
||
}];
|
||
|
||
[self.convVC.tableView reloadData];
|
||
}
|
||
|
||
- (void)updateUnreadCountUI {
|
||
|
||
self.changeAccountButton.badgeCenterOffset = CGPointMake(-5, 5);
|
||
[self.changeAccountButton showBadgeWithStyle:WBadgeStyleNumber value:self.anotherAcountUnreadMsgCount animationType:WBadgeAnimTypeNone];
|
||
[PYAppService showBadgeOnTabBarItemAtIndex:0 number:self.currentAcountUnreadMsgCount + self.anotherAcountUnreadMsgCount];
|
||
}
|
||
|
||
#pragma mark - TUIConversationListControllerListener
|
||
/**
|
||
* 在会话列表中,获取会话展示信息时候回调。
|
||
*
|
||
* @param conversation 会话单元数据
|
||
*/
|
||
- (NSString *)getConversationDisplayString:(V2TIMConversation *)conversation {
|
||
V2TIMMessage *lastMsg = conversation.lastMessage;
|
||
if (lastMsg.elemType == V2TIM_ELEM_TYPE_CUSTOM) {
|
||
//自定义消息
|
||
if (lastMsg.customElem.data) {
|
||
NSDictionary *param = [NSJSONSerialization JSONObjectWithData:lastMsg.customElem.data options:NSJSONReadingAllowFragments error:nil];
|
||
NSString *typeIdStr = param[@"businessID"];
|
||
if ([typeIdStr isEqualToString:@"custom_message_vip"]) {
|
||
//赠送VIP
|
||
return [THGiveVipMessageCellData getDisplayString:lastMsg];
|
||
}
|
||
}
|
||
}
|
||
return nil;
|
||
}
|
||
|
||
- (void)conversationListController:(TUIConversationListController *)conversationController didSelectConversation:(TUIConversationCell *)conversation
|
||
{
|
||
ChatViewController *chatVC = [[ChatViewController alloc] init];
|
||
chatVC.convData = conversation.convData;
|
||
[self.navigationController pushViewController:chatVC animated:YES];
|
||
}
|
||
|
||
#pragma mark - V2TIMConversationListener
|
||
- (void)onTotalUnreadMessageCountChanged:(UInt64)totalUnreadCount {
|
||
self.currentAcountUnreadMsgCount = (int)totalUnreadCount;
|
||
[self updateUnreadCountUI];
|
||
}
|
||
|
||
- (void)onNewConversation:(NSArray<V2TIMConversation*> *) conversationList {
|
||
NSMutableArray *userIDsM = [NSMutableArray array];
|
||
for (V2TIMConversation *conv in conversationList) {
|
||
if (conv.userID) {
|
||
[userIDsM addObject:conv.userID];
|
||
}
|
||
}
|
||
[UserService loadUserOtherInfosWithUserIDs:userIDsM userCache:YES comoletion:nil];
|
||
}
|
||
|
||
- (void)onSyncServerFinish {
|
||
NSMutableArray *userIDsM = [NSMutableArray array];
|
||
for (TUIConversationCellData *data in self.convVC.dataProvider.dataList) {
|
||
if (data.userID) {
|
||
[userIDsM addObject:data.userID];
|
||
}
|
||
}
|
||
[UserService loadUserOtherInfosWithUserIDs:userIDsM userCache:YES comoletion:nil];
|
||
|
||
}
|
||
|
||
@end
|