个播房上划加载下一个房间完成

This commit is contained in:
chenguilong
2022-07-14 17:16:33 +08:00
parent d1f86a8ae9
commit 81a0c20af6
69 changed files with 999 additions and 571 deletions

View File

@@ -9,8 +9,6 @@
///Third
#import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h>
#import <SDCycleScrollView/SDCycleScrollView.h>
#import "SDCollectionViewCell.h"
///Tool
#import "XPMacro.h"
#import "XPConstant.h"
@@ -50,7 +48,7 @@
#import "XPRoomSettingInputView.h"
#import "XPRoomLittleGameContainerView.h"
#import "AnchorRoomScrollView.h"
#import "XPAnchorRoomCycleCell.h"
#import "AnchorRoomSrollTipView.h"
///P
#import "XPRoomPresenter.h"
#import "XPRoomProtocol.h"
@@ -62,16 +60,14 @@
UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey;
UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
NSString * const kHadShowAnchorRoomTipKey = @"kHadShowAnchorRoomTipKey";//
@interface XPRoomViewController ()<XPRoomProtocol, RoomHostDelegate, NIMChatroomManagerDelegate, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMLoginManagerDelegate, XPRoomSettingInputViewDelegate,XPRoomLittleGameContainerViewDelegate, AnchorRoomScrollViewDelegate, SDCycleScrollViewDelegate>
@interface XPRoomViewController ()<XPRoomProtocol, RoomHostDelegate, NIMChatroomManagerDelegate, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMLoginManagerDelegate, XPRoomSettingInputViewDelegate,XPRoomLittleGameContainerViewDelegate, AnchorRoomScrollViewDelegate>
///
@property (nonatomic,strong) XPRoomBackContainerView *backContainerView;
///view
@property (nonatomic, strong) AnchorRoomScrollView *anchorScrollView;
@property (nonatomic, strong) SDCycleScrollView *anchorCycleView;
///
@property (nonatomic, assign) int anchorScrollIndex;
///
@property (nonatomic,strong) RoomHeaderView *roomHeaderView;
///
@@ -110,9 +106,8 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
@property (nonatomic,assign) BOOL isMiniEnter;
///
@property (nonatomic, strong) NSMutableArray *cycleAnchorList;
///
@property (nonatomic, assign) BOOL hadGetAnchorList;
@property (nonatomic, assign) int anchorCycleIndex;
///
@property (nonatomic, strong) AnchorRoomSrollTipView *anchorScrollTipView;
@end
@@ -274,48 +269,41 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
}
- (void)updateViewConstraintsOnAnchorRoomWithCell:(XPAnchorRoomCycleCell *)cell {
// [self.anchorCycleView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.edges.mas_equalTo(self.view);
// }];
- (void)updateViewConstraintsOnAnchorRoom {
[self.anchorScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.backContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.edges.mas_equalTo(self.anchorScrollView.middleImageView);
}];
[self.roomHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.right.top.mas_equalTo(self.anchorScrollView.middleImageView);
make.height.mas_equalTo(kNavigationHeight);
}];
[self.stageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.top.mas_equalTo(self.roomHeaderView.mas_bottom);
make.height.mas_equalTo(self.stageView.hightForStageView);
}];
[self.messageContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.stageView.mas_bottom);
// make.bottom.mas_equalTo(self.backContainerView);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.left.equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.left.equalTo(self.anchorScrollView.middleImageView);
make.right.equalTo(self.activityContainerView.mas_left).offset(-10);
}];
[self.menuContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.bottom.mas_equalTo(-kSafeAreaBottomHeight- 8);
make.height.mas_equalTo(40);
}];
[self.activityContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.right.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.width.mas_equalTo(80);
}];
[self.functionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(cell ? cell : self.anchorScrollView.middleImageView);
make.edges.mas_equalTo(self.anchorScrollView.middleImageView);
}];
}
@@ -466,7 +454,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
[self.messageContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.stageView.mas_bottom);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.left.mas_equalTo(self.anchorScrollView.middleImageView);
make.right.mas_equalTo(self.activityContainerView.mas_left).offset(-10);
@@ -474,47 +461,11 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.right.mas_equalTo(self.anchorScrollView.middleImageView);
// make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.width.mas_equalTo(80);
}];
}
- (void)changeStageViewOnAnchorRoomWithCell:(XPAnchorRoomCycleCell *)cell {
if (self.roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode && ![self.stageView isKindOfClass:[AnchorPKStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorPKStageView alloc] initWithDelegate:self];
} else if(self.roomInfo.roomModeType == RoomModeType_Normal_Mode && ![self.stageView isKindOfClass:[AnchorStageView class]]) {
[self.stageView removeFromSuperview];
self.stageView = nil;
self.stageView = [[AnchorStageView alloc] initWithDelegate:self];
}
if (!self.stageView.superview) {
[cell insertSubview:self.stageView aboveSubview:self.backContainerView];
}
[self.stageView mas_remakeConstraints:^(MASConstraintMaker *make) {
// make.left.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.left.right.mas_equalTo(cell);
make.top.mas_equalTo(self.roomHeaderView.mas_bottom);
make.height.mas_equalTo(self.stageView.hightForStageView);
}];
[self.messageContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.stageView.mas_bottom);
make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
// make.left.mas_equalTo(self.anchorScrollView.middleImageView);
make.left.mas_equalTo(cell);
make.right.mas_equalTo(self.activityContainerView.mas_left).offset(-10);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
// make.right.mas_equalTo(self.anchorScrollView.middleImageView);
make.right.mas_equalTo(cell);
make.bottom.mas_equalTo(self.menuContainerView.mas_top).offset(-5);
make.width.mas_equalTo(80);
}];
}
- (void)cancelRoomArrangeMic {
///退
if (self.roomInfo.roomModeType == RoomModeType_Open_Micro_Mode || self.roomInfo.roomModeType == RoomModeType_Open_Blind) {
@@ -605,6 +556,83 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
}
///
- (void)handleSuperManagerEnterAnchorRoom:(RoomInfoModel *)roomInfo {
__block BOOL isSuperAdmin = NO;
[self.superMangerList enumerateObjectsUsingBlock:^(GuildSuperAdminInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
isSuperAdmin = YES;
*stop = YES;
}
}];
if (!isSuperAdmin) {
XPRoomSettingInputView * titleView = [[XPRoomSettingInputView alloc] init];
titleView.maxCount = 15;
titleView.delegate = self;
titleView.type = RoomSettingInputType_Input_Pwd;
TTPopupConfig * config = [[TTPopupConfig alloc] init];
config.contentView = titleView;
config.maskBackgroundAlpha = 1;
config.shouldDismissOnBackgroundTouch = NO;
[TTPopup popupWithConfig:config];
} else {
self.roomInfo.datingState = roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
///
- (void)showAnchorScrollTipView {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *anchoScrollTip = [defaults objectForKey:kHadShowAnchorRoomTipKey];
if (!anchoScrollTip) {
UIWindow *window = [UIApplication sharedApplication].delegate.window;
[window addSubview:self.anchorScrollTipView];
[window bringSubviewToFront:self.anchorScrollTipView];
}
}
#pragma mark -
- (void)myGiftEffectUpdate:(NSNotification *)notification {
NSDictionary * dic = notification.object;
@@ -621,12 +649,10 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
self.roomInfo = roomInfo;
self.userInfo = userInfo;
[self hideHUD];
if (!self.hadGetAnchorList && roomInfo.type == RoomType_Anchor) {///,
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
self.hadGetAnchorList = YES;
return;
} else if (roomInfo.type == RoomType_Anchor) {
if (roomInfo.type == RoomType_Anchor) {//
[self handleInitAnchorRoom];
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self showAnchorScrollTipView];
return;
}
if (roomInfo.valid) { //
@@ -690,6 +716,8 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
self.roomInfo = roomInfo;
if (roomInfo.type == RoomType_Anchor) {
[self handleInitAnchorRoom];
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self showAnchorScrollTipView];
return;
}
[self changeStageViewOnRoomUpdate];
@@ -714,6 +742,7 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
- (void)enterRoomFail:(NSInteger)code {
[self hideHUD];
if (code == 13003) {
[self showErrorToast:@"您已被管理员拉黑"];
}
@@ -728,20 +757,18 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
///)
- (void)getCycleAnchorRoomListSuccess:(NSArray *)list {
[self.cycleAnchorList removeAllObjects];
// [self.cycleAnchorList addObjectsFromArray:list];
// if (!self.cycleAnchorList.count) {
[self.cycleAnchorList addObject:@"1005436"];
[self.cycleAnchorList addObject:@"1005437"];
// }
[self.cycleAnchorList insertObject:[NSString stringWithFormat:@"%zd", self.roomInfo.uid] atIndex:0];
[self.anchorScrollView updateForLives:self.cycleAnchorList withCurrentIndex:0];
[self handleInitAnchorRoom];
- (void)getNextAnchorRoomSuccess:(RoomInfoModel *)roomInfo {
[self.cycleAnchorList addObject:self.roomInfo];
if (roomInfo) {
[self.cycleAnchorList addObject:roomInfo];
}
//
[self.anchorScrollView updateForAnchorRoomList:self.cycleAnchorList];
}
///
- (void)handleInitAnchorRoom {
[self.anchorScrollView updateForAnchorRoomList:nil];
if (self.roomInfo.valid) { //
if (self.roomInfo.roomPwd.length > 0 && self.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue && [XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {//
if (!self.isRequestSuperAdmin) {
@@ -755,28 +782,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
} else {
self.roomInfo.datingState = self.roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (self.cycleAnchorList.count < 2) {///
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {///
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
@@ -793,9 +798,10 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
@@ -817,7 +823,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
} else { //
if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", self.userInfo.uid]]) { //
@@ -842,92 +847,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
}
- (void)handleSuperManagerEnterAnchorRoom:(RoomInfoModel *)roomInfo {
__block BOOL isSuperAdmin = NO;
[self.superMangerList enumerateObjectsUsingBlock:^(GuildSuperAdminInfoModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
isSuperAdmin = YES;
*stop = YES;
}
}];
if (!isSuperAdmin) {
XPRoomSettingInputView * titleView = [[XPRoomSettingInputView alloc] init];
titleView.maxCount = 15;
titleView.delegate = self;
titleView.type = RoomSettingInputType_Input_Pwd;
TTPopupConfig * config = [[TTPopupConfig alloc] init];
config.contentView = titleView;
config.maskBackgroundAlpha = 1;
config.shouldDismissOnBackgroundTouch = NO;
[TTPopup popupWithConfig:config];
} else {
self.roomInfo.datingState = roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
if (self.cycleAnchorList.count < 2) {///
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {///
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
}
}
}
#pragma mark - NIMChatroomManagerDelegate
- (void)chatroomBeKicked:(NIMChatroomBeKickedResult *)result {
if (result.reason == 2) {
@@ -1008,40 +927,31 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
//->->)
newRoomInfo.hadChangeRoomType = self.roomInfo.type != newRoomInfo.type;
BOOL anchorToOther = newRoomInfo.type != RoomType_Anchor && self.roomInfo.type == RoomType_Anchor;//
self.roomInfo = newRoomInfo;
[self.backContainerView onRoomUpdate];
if (self.roomInfo.type == RoomType_Anchor && self.roomInfo.hadChangeRoomType) {///
[self handleInitAnchorRoom];
// if (self.anchorCycleView.superview) {
//
// } else {
// for (UIView *subViews in self.view.subviews) {
// [subViews removeFromSuperview];
// }
// [self.view addSubview:self.anchorCycleView];
// [self.anchorScrollView.upperImageView addSubview:self.backContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.stageView];
// [self.anchorScrollView.upperImageView addSubview:self.messageContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.menuContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.activityContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.roomHeaderView];
// [self.anchorScrollView.upperImageView addSubview:self.functionView];
// [self.anchorScrollView.upperImageView addSubview:self.animationView];
// [self updateViewConstraintsOnAnchorRoom];
// [self changeStageViewOnAnchorRoom];
// }
// [self.anchorScrollView updateForLives:@[@"123", @"234"] withCurrentIndex:0];
// [self.anchorScrollView.upperImageView addSubview:self.backContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.stageView];
// [self.anchorScrollView.upperImageView addSubview:self.messageContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.menuContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.activityContainerView];
// [self.anchorScrollView.upperImageView addSubview:self.roomHeaderView];
// [self.anchorScrollView.upperImageView addSubview:self.functionView];
// [self.anchorScrollView.upperImageView addSubview:self.animationView];
// [self updateViewConstraintsOnAnchorRoomWithCell:nil];
// [self changeStageViewOnAnchorRoom];
} else {
[self.presenter getCycleAnchorRoomList:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[self showAnchorScrollTipView];
} else if (anchorToOther) {
[self.anchorScrollView removeFromSuperview];
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.view addSubview:self.backContainerView];
[self.view addSubview:self.stageView];
[self.view addSubview:self.messageContainerView];
[self.view addSubview:self.activityContainerView];
[self.view addSubview:self.roomHeaderView];
[self.view addSubview:self.functionView];
[self.view bringSubviewToFront:self.menuContainerView];
[self.view bringSubviewToFront:self.animationView];
[self initSubViewConstraints];
[self changeStageViewOnRoomUpdate];
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
@@ -1049,6 +959,18 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[self.activityContainerView onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
} else {
if (self.roomInfo.type == RoomType_Anchor) {
[self changeStageViewOnAnchorRoom];
} else {
[self changeStageViewOnRoomUpdate];
}
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
[self.functionView onRoomUpdate];
[self.activityContainerView onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
}
}
break;
@@ -1383,30 +1305,34 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}
#pragma mark - AnchorRoomScrollViewDelegate
- (void)anchorScrollView:(AnchorRoomScrollView *)anchorScrollView currentPlayerIndex:(NSInteger)index {
- (void)anchorScrollViewScrollToNext:(AnchorRoomScrollView *)anchorScrollView {
if (!self) {
return;
}
if (self.anchorScrollIndex == index) {
return;
}
[self.view endEditing:YES];
[self.anchorScrollView updateForAnchorRoomList:nil];
[self showAnchorLoading];
//1退
self.isRequestSuperAdmin = NO;
self.anchorScrollIndex = index;
[self showLoading];
[self exitOldRoom];
// [self exitRoom];
[self.presenter exitNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[[RtcManager instance] exitRoom];
[self.presenter reportUserOutRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self.messageContainerView removeFromSuperview];
self.messageContainerView = nil;
//2
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
self.messageContainerView = nil;
self.stageView = nil;
[self.menuContainerView removeFromSuperview];
self.menuContainerView = nil;
self.roomUid = self.cycleAnchorList[index];
//3
RoomInfoModel *roomInfo = [self.cycleAnchorList lastObject];
self.roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid];
[self.presenter initEnterRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
///
[self.presenter getNormalGiftList:self.roomUid];
@@ -1431,81 +1357,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
}];
}
#pragma mark - SDCycleScrollViewDelegate
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index {
if (self.anchorCycleIndex == index) {
return;
}
self.anchorCycleIndex = index;
[self exitOldRoom];
// [self exitRoom];
// [self.backContainerView removeFromSuperview];
// [self.stageView removeFromSuperview];
// [self.messageContainerView removeFromSuperview];
// [self.activityContainerView removeFromSuperview];
// [self.roomHeaderView removeFromSuperview];
// [self.functionView removeFromSuperview];
// XPAnchorRoomCycleCell *cell;
// for (UIView *view in cycleScrollView.subviews) {
// if ([view isKindOfClass:[UICollectionView class]]) {
// UICollectionView *collectionView = (UICollectionView *)view;
// XPAnchorRoomCycleCell *anchorCell = (XPAnchorRoomCycleCell *)[collectionView cellForItemAtIndexPath:[NSIndexPath indexPathWithIndex:self.anchorCycleIndex]];
// cell = anchorCell;
// }
// }
[self.presenter exitNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]];
[[XPRoomMiniManager shareManager] resetLocalMessage];
[[RtcManager instance] exitRoom];
[self.presenter reportUserOutRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
[self.messageContainerView removeFromSuperview];
self.messageContainerView = nil;
[self.stageView removeFromSuperview];
self.stageView = nil;
self.roomUid = self.cycleAnchorList[index];
[self.presenter initEnterRoom:self.roomUid user:[AccountInfoStorage instance].getUid];
///
[self.presenter getNormalGiftList:self.roomUid];
///
[self.presenter getRoomSuperAdmin:self.roomUid];
}
/** cellcellclass */
- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
return [XPAnchorRoomCycleCell class];
}
/** cellcell */
- (void)setupCustomCell:(XPAnchorRoomCycleCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view {
cell.imageView.image = [UIImage imageNamed:@"room_background"];
if (index == 0 && !self.backContainerView.superview) {
// for (UIView *view in self.anchorCycleView.subviews) {
// if ([view isKindOfClass:[UICollectionView class]]) {
// UICollectionView *collectionView = (UICollectionView *)view;
// XPAnchorRoomCycleCell *anchorCell = (XPAnchorRoomCycleCell *)[collectionView cellForItemAtIndexPath:[NSIndexPath indexPathWithIndex:self.anchorCycleIndex]];
// cell = anchorCell;
// }
// }
// if (cell) {
[cell addSubview:self.backContainerView];
[cell addSubview:self.stageView];
[cell addSubview:self.messageContainerView];
[cell addSubview:self.activityContainerView];
[cell addSubview:self.roomHeaderView];
[cell addSubview:self.functionView];
[self updateViewConstraintsOnAnchorRoomWithCell:cell];
// [self changeStageViewOnAnchorRoomWithCell:cell];
} else {
// [self.backContainerView removeFromSuperview];
// [self.stageView removeFromSuperview];
// [self.messageContainerView removeFromSuperview];
// [self.activityContainerView removeFromSuperview];
// [self.roomHeaderView removeFromSuperview];
// [self.functionView removeFromSuperview];
}
}
#pragma mark - XPRoomSettingInputViewDelegate
///
- (void)xPRoomSettingInputView:(XPRoomSettingInputView *)view didClickConfirm:(NSString *)text type:(RoomSettingInputType)type {
@@ -1514,69 +1365,48 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
[TTPopup dismiss];
view.isPwdError = NO;
if (self.roomInfo.type == RoomType_Anchor) {
if (self.cycleAnchorList.count < 2) {//
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {//
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
[self.view addSubview:self.menuContainerView];
[self updateViewConstraintsOnAnchorRoomWithCell:nil];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
if (!self.anchorScrollView.superview) {
[self.view insertSubview:self.anchorScrollView belowSubview:self.menuContainerView];
}
[self.backContainerView removeFromSuperview];
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.anchorScrollView addSubview:self.backContainerView];
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.functionView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
}
[self updateViewConstraintsOnAnchorRoom];
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.menuContainerView onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
if ([XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {// 退
[self.presenter enterNIMRoom:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo];
[self.functionView onRoomEntered];
[self.messageContainerView onRoomEntered];
} else {
//退
[self.stageView onRoomMiniEntered];
[self.messageContainerView onRoomMiniEntered];
[self.functionView onRoomMiniEntered];
[self.functionView onRoomEntered];
}
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
[[XPRoomMiniManager shareManager] configUserInfo:nil];
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
@@ -1670,7 +1500,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
if (!_anchorScrollView) {
_anchorScrollView = [[AnchorRoomScrollView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
_anchorScrollView.anchorScrollDelegate = self;
_anchorScrollView.index = self.anchorScrollIndex;
}
return _anchorScrollView;
}
@@ -1682,18 +1511,12 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
return _cycleAnchorList;
}
- (SDCycleScrollView *)anchorCycleView {
if (!_anchorCycleView) {
_anchorCycleView = [SDCycleScrollView cycleScrollViewWithFrame:self.view.frame delegate:self placeholderImage:[UIImage imageNamed:@"room_background"]];
// + (instancetype)cycleScrollViewWithFrame:(CGRect)frame delegate:(id<SDCycleScrollViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage;
_anchorCycleView.backgroundColor = [UIColor clearColor];
_anchorCycleView.delegate = self;
_anchorCycleView.showPageControl = NO;
_anchorCycleView.scrollDirection = UICollectionViewScrollDirectionVertical;
_anchorCycleView.autoScroll = NO;
_anchorCycleView.imageURLStringsGroup = @[@"room_background"];
- (AnchorRoomSrollTipView *)anchorScrollTipView {
if (!_anchorScrollTipView) {
_anchorScrollTipView = [[AnchorRoomSrollTipView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
}
return _anchorCycleView;
return _anchorScrollTipView;
}
@end