进房逻辑简化
This commit is contained in:
@@ -26,7 +26,6 @@
|
||||
#import "XPRoomProtocol.h"
|
||||
///Category
|
||||
#import "XPRoomViewController+RoomInfoContainerView.h"
|
||||
#import "XPRoomViewController+SDKConfig.h"
|
||||
|
||||
@interface XPRoomViewController ()<XPRoomProtocol>
|
||||
///背景
|
||||
@@ -41,8 +40,6 @@
|
||||
@property (nonatomic,strong) XPRoomMenuContainerView *menuContainerView;
|
||||
///活动
|
||||
@property (nonatomic,strong) XPRoomActivityContainerView *activityContainerView;
|
||||
///如果是打开房间的话
|
||||
@property (nonatomic,assign) BOOL isOpenRoom;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UserInfoModel *usereInfo;
|
||||
///房间信息
|
||||
@@ -70,6 +67,11 @@
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[self.presenter getRoomInfoWithUid:self.roomUid];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
[self.view addSubview:self.backContainerView];
|
||||
@@ -117,107 +119,33 @@
|
||||
}];
|
||||
}
|
||||
|
||||
///获取房间信息成功
|
||||
- (void)requestRoomInfoSuccess:(RoomInfoModel *)roomInfo {
|
||||
[self hideHUD];
|
||||
self.roomInfo = roomInfo;
|
||||
[self configRoomInfoContainerViewWithRoomInfo:roomInfo];
|
||||
///获取房间信息成功之后 就要准备登录云信了 获取确保用户信息存在
|
||||
if (self.usereInfo == nil) {
|
||||
[self.presenter getUserInfoWithUid:self.roomUid];
|
||||
} else {
|
||||
[self enterChatRoomWithUseInfo:self.usereInfo];
|
||||
}
|
||||
}
|
||||
|
||||
///dismissVC
|
||||
- (void)disMissRoomVC {
|
||||
if (self.presentingViewController) {
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
}
|
||||
|
||||
///开启房间
|
||||
- (void)openRoomWithUserInfo {
|
||||
NSString * title = [NSString stringWithFormat:@"%@的房间", self.usereInfo.nick];
|
||||
[self.presenter openUserRoomWithTitle:title type:RoomType_Game roomPwd:@"" roomDesc:@"" backPic:@""];
|
||||
}
|
||||
|
||||
- (void)enterChatRoomWithUseInfo:(UserInfoModel *)userInfo {
|
||||
///进入房间的时候 必须要有用户信息 并且房间状态一切正常
|
||||
#warning to do - 进入云信房间的逻辑
|
||||
[self configEnterRoomSDK];
|
||||
}
|
||||
|
||||
#pragma mark - XPRoomProtocol
|
||||
- (void)getRoomInfoSuccess:(RoomInfoModel *)roomInfo {
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
if ([self.roomUid isEqualToString:uid]) {///如果是自己进入房间的话
|
||||
if (roomInfo == nil || !roomInfo.valid) {
|
||||
self.isOpenRoom = YES;
|
||||
if (self.usereInfo) {
|
||||
[self openRoomWithUserInfo];
|
||||
} else {
|
||||
[self.presenter getUserInfoWithUid:uid];
|
||||
}
|
||||
} else {
|
||||
[self requestRoomInfoSuccess:roomInfo];
|
||||
}
|
||||
} else {///如果是进入别人房间的话
|
||||
if (roomInfo.valid) {
|
||||
if (roomInfo.roomPwd.length > 0) {
|
||||
[self hideHUD];
|
||||
#warning to do - 输入密码
|
||||
} else {
|
||||
[self requestRoomInfoSuccess:roomInfo];
|
||||
}
|
||||
} else {
|
||||
#warning to do - 房主已下线
|
||||
[self hideHUD];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getRoomInfoFail {
|
||||
[self hideHUD];
|
||||
[self disMissRoomVC];
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
if (roomInfo.valid) {
|
||||
[self configRoomInfoContainerViewWithRoomInfo:roomInfo]; // S1 没有考虑进房密码的情况
|
||||
[self.presenter getUserInfoWithUid:uid];
|
||||
} else {
|
||||
if ([self.roomUid isEqualToString:uid]) {
|
||||
// TODO: 进入自己房间,需要重新开房。
|
||||
} else {
|
||||
// TODO: 房主已经下线。
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getUserInfoSuccess:(UserInfoModel *)userInfo {
|
||||
self.usereInfo = userInfo;
|
||||
if (self.isOpenRoom) {
|
||||
[self openRoomWithUserInfo];
|
||||
} else {
|
||||
if (self.roomInfo) {
|
||||
[self enterChatRoomWithUseInfo:userInfo];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getUserInfoFail {
|
||||
[self hideHUD];
|
||||
[self disMissRoomVC];
|
||||
// TODO: 进入云信房间。
|
||||
}
|
||||
|
||||
- (void)openRoomSuccess:(RoomInfoModel *)roomInfo {
|
||||
[self requestRoomInfoSuccess:roomInfo];
|
||||
[self configRoomInfoContainerViewWithRoomInfo:roomInfo];
|
||||
// TODO: 进入云信房间。
|
||||
}
|
||||
|
||||
- (void)openRoomFail {
|
||||
[self hideHUD];
|
||||
[self disMissRoomVC];
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setRoomUid:(NSString *)roomUid {
|
||||
_roomUid = roomUid;
|
||||
if (_roomUid) {
|
||||
[self showLoading];
|
||||
///获取用户信息
|
||||
[self.presenter getUserInfoWithUid:_roomUid];
|
||||
///获取房间信息
|
||||
[self.presenter getRoomInfoWithUid:_roomUid];
|
||||
}
|
||||
- (void)enterRoomFail {
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (XPRoomBackContainerView *)backContainerView {
|
||||
|
Reference in New Issue
Block a user