最小化进房的会下麦的问题
This commit is contained in:
@@ -20,6 +20,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic,weak) UIViewController * controller;
|
||||
///当前最小化的房间的uid 如果没有的话 为nil
|
||||
@property (nonatomic,strong, readonly) NSString *currentRoomUid;
|
||||
///房间的id
|
||||
@property (nonatomic,strong, readonly) NSString *currentRoomId;
|
||||
///房间最小化 初始化
|
||||
- (void)configRoomMiniView:(RoomInfoModel *)roomInfo;
|
||||
///隐藏最小化的view
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#import "XPMiniRoomView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <NIMSDK/NIMSDK.h>
|
||||
///Tool
|
||||
#import "XPMacro.h"
|
||||
#import "ThemeColor.h"
|
||||
@@ -37,6 +38,8 @@
|
||||
@property (nonatomic,strong) RoomInfoModel *roomInfo;
|
||||
///当前最小化的房间的uid 如果没有的话 为nil
|
||||
@property (nonatomic,strong) NSString *currentRoomUid;
|
||||
///房间的id
|
||||
@property (nonatomic,strong) NSString *currentRoomId;
|
||||
@end
|
||||
|
||||
|
||||
@@ -64,12 +67,14 @@
|
||||
- (void)configRoomMiniView:(RoomInfoModel *)roomInfo {
|
||||
self.hidden = NO;
|
||||
self.currentRoomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid];
|
||||
self.currentRoomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
|
||||
self.roomInfo = roomInfo;
|
||||
[self startAvatarAnimation];
|
||||
}
|
||||
|
||||
- (void)hiddenRoomMiniView {
|
||||
self.currentRoomUid = nil;
|
||||
self.currentRoomId = nil;
|
||||
self.hidden = YES;
|
||||
}
|
||||
|
||||
@@ -140,17 +145,18 @@
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)closeButtonAction:(UIButton *)sender {
|
||||
[[NIMSDK sharedSDK].chatroomManager exitChatroom:self.currentRoomId completion:nil];
|
||||
[[RtcManager instance] exitRoom];
|
||||
[self.avatarImageView.layer removeAllAnimations];
|
||||
[self.noteView stopAnimation];
|
||||
[self removeFromSuperview];
|
||||
self.currentRoomUid = nil;
|
||||
self.currentRoomId = nil;
|
||||
self.hidden = YES;
|
||||
}
|
||||
|
||||
- (void)enterRomRecognizer:(UITapGestureRecognizer *)tap {
|
||||
if (self.roomInfo.uid > 0 && self.controller) {
|
||||
[self removeFromSuperview];
|
||||
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid];
|
||||
[XPRoomViewController openRoom:roomUid viewController:self.controller];
|
||||
if (self.currentRoomUid > 0 && self.controller) {
|
||||
[XPRoomViewController openRoom:self.currentRoomUid viewController:self.controller];
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -58,12 +58,6 @@
|
||||
@implementation XPRoomViewController
|
||||
|
||||
+ (BOOL)openRoom:(NSString *)roomUid viewController:(UIViewController *)viewController {
|
||||
if ([XPMiniRoomView shareMiniRoomView].currentRoomUid.integerValue > 0 && [XPMiniRoomView shareMiniRoomView].currentRoomUid.integerValue != roomUid.integerValue) {
|
||||
//有最小化房间 并且要进入的房间和最小化的房间不一样的话 就先退掉 最小化的房间
|
||||
[[RtcManager instance] exitRoom];
|
||||
}
|
||||
///进入一个房间 就不存在最小化的了
|
||||
[[XPMiniRoomView shareMiniRoomView] hiddenRoomMiniView];
|
||||
XPRoomViewController * roomVC = [[self alloc] init];
|
||||
roomVC.roomUid = roomUid;
|
||||
BaseNavigationController * baseNav = [[BaseNavigationController alloc] initWithRootViewController:roomVC];
|
||||
@@ -87,6 +81,7 @@
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self exitOldRoom];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self.presenter initEnterRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
|
||||
@@ -151,6 +146,15 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)exitOldRoom {
|
||||
NSString * roomUid = [XPMiniRoomView shareMiniRoomView].currentRoomUid;
|
||||
if (roomUid.integerValue > 0 && roomUid.integerValue != self.roomUid.integerValue) {
|
||||
//有最小化房间 并且要进入的房间和最小化的房间不一样的话 就先退掉 最小化的房间
|
||||
[self.presenter exitNIMRoom:[XPMiniRoomView shareMiniRoomView].currentRoomId];
|
||||
[[RtcManager instance] exitRoom];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - XPRoomProtocol
|
||||
- (void)initEnterRoomSuccess:(RoomInfoModel *)roomInfo user:(UserInfoModel *)userInfo {
|
||||
self.roomInfo = roomInfo;
|
||||
@@ -161,7 +165,13 @@
|
||||
[self enterRoomFail];
|
||||
} else {
|
||||
[self.roomHeaderView onRoomUpdate];
|
||||
if ([XPMiniRoomView shareMiniRoomView].currentRoomUid.integerValue != self.roomUid.integerValue) {// 最小化进房 还是原来的房间的话 不需要重新进入云信 因为压根没退
|
||||
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
|
||||
///进入一个房间 就不存在最小化的了
|
||||
[[XPMiniRoomView shareMiniRoomView] hiddenRoomMiniView];
|
||||
} else {///虽然没退出房间 但是队列还是要拿的
|
||||
[self enterRoomSuccess];
|
||||
}
|
||||
}
|
||||
} else { // 房间无效,分是否为自己房间进行处理
|
||||
if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", userInfo.uid]]) { // 当前用户进入自己房间
|
||||
|
Reference in New Issue
Block a user