feat: 重构房间右下菜单栏

This commit is contained in:
edwinQQQ
2024-12-20 19:05:43 +08:00
parent ab544a2d84
commit 2c5d72846d
16 changed files with 885 additions and 64 deletions

View File

@@ -497,6 +497,7 @@
23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; };
23FF428E2AAB2D3A0055733C /* XPCandyTreeBuyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */; };
4C1892992CF84349004D4426 /* RoomCahtCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1892982CF84349004D4426 /* RoomCahtCell.m */; };
4C44BD5D2D151B5C00F321FA /* RoomSideMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C44BD5C2D151B5C00F321FA /* RoomSideMenu.m */; };
4C5C37232D0C1C7900BA9AB8 /* RegionListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C37222D0C1C7900BA9AB8 /* RegionListViewController.m */; };
4C6C92C02D1172D9000A4693 /* RegionListInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6C92BF2D1172D9000A4693 /* RegionListInfo.m */; };
4C6E1F752CEAEC3C0073D0A3 /* ShoppingMallTagView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E1F742CEAEC3C0073D0A3 /* ShoppingMallTagView.m */; };
@@ -2591,6 +2592,8 @@
23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeBuyView.m; sourceTree = "<group>"; };
4C1892972CF84349004D4426 /* RoomCahtCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomCahtCell.h; sourceTree = "<group>"; };
4C1892982CF84349004D4426 /* RoomCahtCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomCahtCell.m; sourceTree = "<group>"; };
4C44BD5B2D151B5C00F321FA /* RoomSideMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomSideMenu.h; sourceTree = "<group>"; };
4C44BD5C2D151B5C00F321FA /* RoomSideMenu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomSideMenu.m; sourceTree = "<group>"; };
4C5C37212D0C1C7900BA9AB8 /* RegionListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RegionListViewController.h; sourceTree = "<group>"; };
4C5C37222D0C1C7900BA9AB8 /* RegionListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RegionListViewController.m; sourceTree = "<group>"; };
4C6C92BE2D1172D9000A4693 /* RegionListInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RegionListInfo.h; sourceTree = "<group>"; };
@@ -10537,6 +10540,8 @@
235A45192B04A352009753F5 /* PIRoomActivityWebView.m */,
235A451B2B04A452009753F5 /* PIRoomActivityWebCell.h */,
235A451C2B04A452009753F5 /* PIRoomActivityWebCell.m */,
4C44BD5B2D151B5C00F321FA /* RoomSideMenu.h */,
4C44BD5C2D151B5C00F321FA /* RoomSideMenu.m */,
);
path = ActivityContainerView;
sourceTree = "<group>";
@@ -12643,6 +12648,7 @@
E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */,
E87DF50E2A42CF15009C1185 /* HomeLiveRoomModel.m in Sources */,
E8F6135F291E274E00E12650 /* NSArray+Safe.m in Sources */,
4C44BD5D2D151B5C00F321FA /* RoomSideMenu.m in Sources */,
E87E62622A3F568A002F68C9 /* XPNewHomeNavView.m in Sources */,
54E82E9F2CA6876300C931D9 /* RoomBoomManager.m in Sources */,
18E7B33226F317A20064BC9B /* XPWebViewController.m in Sources */,

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "展开.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "展开 (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -19,6 +19,8 @@ typedef NS_ENUM(NSInteger, SplashInfoSkipType) {
@property (nonatomic, strong) NSString *link;
@property (nonatomic, assign) SplashInfoSkipType type;// 1跳app页面2跳聊天室3跳h5页面
@property (nonatomic, copy) NSString *pict;
@end
NS_ASSUME_NONNULL_END

View File

@@ -427,13 +427,13 @@
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
// if (self.type == 1) {
layout.itemSize = CGSizeMake(KScreenWidth - 30, 38);
layout.itemSize = CGSizeMake(KScreenWidth - 30, 48);
// } else if (self.type == 2) {
// layout.itemSize = CGSizeMake(kGetScaleWidth(166), 38);
// }
layout.sectionInset = UIEdgeInsetsMake(0, 16, kSafeAreaBottomHeight, 16);
layout.minimumLineSpacing = 10;
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 10;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 44, KScreenWidth, KScreenHeight-44)
collectionViewLayout:layout];

View File

@@ -11,7 +11,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface NIMTimeUtils : NSObject
+ (NSString *)showTime:(NSTimeInterval)msglastTime showDetail:(BOOL)showDetail;
+ (NSString *)formattedTimeFromInterval:(NSTimeInterval)timeInterval;
//+ (NSString *)showTime:(NSTimeInterval)msglastTime showDetail:(BOOL)showDetail;
@end

View File

@@ -9,7 +9,29 @@
@implementation NIMTimeUtils
+ (NSString*)showTime:(NSTimeInterval) msglastTime showDetail:(BOOL)showDetail
+ (NSString *)formattedTimeFromInterval:(NSTimeInterval)timeInterval {
//
NSCalendar *calendar = [NSCalendar currentCalendar];
//
NSDate *currentDate = [NSDate date];
NSDate *inputDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
//
if ([calendar isDate:inputDate inSameDayAsDate:currentDate]) {
// hour:min
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
timeFormatter.dateFormat = @"HH:mm"; //
return [timeFormatter stringFromDate:inputDate];
} else {
// year/month/day
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy/MM/dd"; // //
return [dateFormatter stringFromDate:inputDate];
}
}
+ (NSString*)showTime:(NSTimeInterval)msglastTime showDetail:(BOOL)showDetail
{
//
NSDate * nowDate = [NSDate date];

View File

@@ -51,7 +51,7 @@
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId];
self.avatarImageView.image = nil;
self.nameLabel.text = @"";
if (user.userInfo == nil) {
if (user.userInfo == nil){//} || [user.userInfo.nickName.lowercaseString isEqualToString:@"Platform New User".lowercaseString]) {
NSString * uid = recent.session.sessionId;
if (uid > 0) {
NSArray * uids = @[uid];
@@ -69,7 +69,7 @@
}
} else {
NSString *avatarUrl = user.userInfo.avatarUrl;
self.nameLabel.text = user.userInfo.nickName;
self.nameLabel.text = user.userInfo.nickName;
[self.avatarImageView loadImageWithUrl:avatarUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.avatarImageView.image = image;
}];
@@ -82,10 +82,10 @@
if (recent.lastMessage) {
self.timeLabel.text = [NIMTimeUtils showTime:recent.lastMessage.timestamp showDetail:NO];
self.timeLabel.text = [NIMTimeUtils formattedTimeFromInterval:recent.lastMessage.timestamp];
} else {
NSTimeInterval timeSecond = recent.updateTime / 1000.0;
self.timeLabel.text = [NIMTimeUtils showTime:timeSecond showDetail:NO];
self.timeLabel.text = [NIMTimeUtils formattedTimeFromInterval:timeSecond];
}
[self.timeLabel sizeToFit];
if (recent.unreadCount) {

View File

@@ -89,6 +89,7 @@
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(10);
make.trailing.mas_equalTo(self.container).offset(-10);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {

View File

@@ -0,0 +1,33 @@
//
// RoomSideMenu.h
// YuMi
//
// Created by P on 2024/12/20.
//
#import <UIKit/UIKit.h>
#import "RoomInfoModel.h"
#import "BoomInfoModel.h"
#import "RoomHostDelegate.h"
#import "XPRedPacketModel.h"
#import "RoomGuestDelegate.h"
#import "ActivityInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface RoomSideMenu : UIView<RoomGuestDelegate>
@property (nonatomic, copy) void(^openRedPacketHandle)(XPRedPacketModel * _Nullable redModel, RoomType type, BOOL checkList);
@property (nonatomic, copy) void(^showSendGiftView)(void);
@property (nonatomic, strong) NSMutableArray *redPacketList;
@property (nonatomic, strong) NSMutableArray *playList;
@property (nonatomic, strong) NSMutableArray *littleGameList;
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate;
- (void)updateView;
- (void)updateForBoomDetailArray:(NSArray <BoomDetailModel*> *)models;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,704 @@
//
// RoomSideMenu.m
// YuMi
//
// Created by P on 2024/12/20.
//
#import "RoomSideMenu.h"
#import <NIMSDK/NIMSDK.h>
#import <ReactiveObjC/ReactiveObjC.h>
#import <SDCycleScrollView/SDCycleScrollView.h>
#import "Api+Room.h"
#import "Api+LittleGame.h"
#import "Api+TreasureFairy.h"
#import "RoomBoomManager.h"
#import "RoomBoomEntryView.h"
#import "LittleGameInfoModel.h"
#import "MSRoomGameWebVC.h"
#import "MSRoomMenuGameVC.h"
#import "XPRoomAnimationView.h"
#import "XPWebViewController.h"
#import "XPRoomViewController.h"
#import "BoomInfoViewController.h"
#import "XPSailingViewController.h"
#import "XCCurrentVCStackManager.h"
#import "XPCandyTreeViewController.h"
#import "XPArrangeMicViewController.h"
UIKIT_EXTERN NSString *kShowFirstRechargeView;
@interface RoomSideMenu ()<UITableViewDelegate, UITableViewDataSource, SDCycleScrollViewDelegate>
@property(nonatomic, strong) NSMutableArray *menuItemViews;
@property (nonatomic, strong) RACSubject *menuItemViewsSubject; //
///
@property(nonatomic, strong) UIButton *gambleMenuButton;
/// API
@property(nonatomic, strong) UIButton *configEntranceMenuButton;
@property(nonatomic, strong) UIButton *pkMenuButton;
@property (nonatomic,strong) UIImageView *joinView;
@property (nonatomic, strong) UITableView *tableView;
@property(nonatomic, strong) UIScrollView *scrollView;
@property (nonatomic,strong) SDCycleScrollView *cycleScrollView;
@property (nonatomic, weak) id<RoomHostDelegate> hostDelegate;
@property (nonatomic, strong) NSMutableArray<ActivityInfoModel *> *activityList;
@property (nonatomic, assign) BOOL isLoadActivity;
@property (nonatomic, strong) RoomBoomEntryView *boomView;
@property (nonatomic, copy) NSArray <BoomDetailModel *> *boomModels;
@property (nonatomic, strong) NetImageView *loader_url_1;
@property (nonatomic, strong) NetImageView *loader_url_2;
@end
// TODO:
@implementation RoomSideMenu
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[RoomBoomManager sharedManager] removeEventListenerForTarget:self];
}
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate {
self = [super init];
if (self) {
#if DEBUG
self.backgroundColor = [UIColor orangeColor];
#endif
self.menuItemViews = @[].mutableCopy;
self.menuItemViewsSubject = [RACSubject subject];
self.hostDelegate = delegate;
[self setupViews];
[self setupBoomManager];
}
return self;
}
#pragma mark - Setup
- (void)setupViews {
[self addSubview:self.cycleScrollView];
[self addSubview:self.scrollView];
[self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.trailing.equalTo(self);
make.height.mas_equalTo(self.cycleScrollView.mas_width);
}];
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.cycleScrollView.mas_bottom);
make.leading.trailing.bottom.equalTo(self);
}];
@kWeakify(self);
[self.menuItemViewsSubject subscribeNext:^(NSArray * _Nullable x) {
@kStrongify(self);
[self updateScrollView: x];
}];
}
- (void)setupBoomManager {
@kWeakify(self);
[[RoomBoomManager sharedManager] registerBoomProgressUpdate:^(id _Nonnull sth) {
@kStrongify(self);
if ([sth isKindOfClass:[BoomDetailModel class]]) {
self.boomView.boomModel = (BoomDetailModel *)sth;
}
} target:self];
}
- (void)updateMenuItem:(UIView *)itemView isRemove:(BOOL)isRemove {
if (isRemove) {
if ([self.menuItemViews containsObject:itemView]) {
[self.menuItemViews removeObject:itemView];
}
} else {
if ([self.menuItemViews containsObject:itemView]) {
return;
}
[self.menuItemViews addObject:itemView];
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.menuItemViewsSubject sendNext:self.menuItemViews];
});
}
#pragma mark - Methods
- (void)updateView {
if (self.isLoadActivity) {
[self configLittleGameActivity];
} else {
[self requestActivityList];
}
}
- (void)updateForBoomDetailArray:(NSArray <BoomDetailModel*> *)models {
_boomModels = models;
if (!models || models.count == 0) {
return;
}
BOOL hasBoom = NO;
for (BoomDetailModel *boom in models) {
if (boom.currLevel == 1) {
hasBoom = YES;
self.boomView.boomModel = boom;
break;
}
}
if (!hasBoom) {
//
self.boomView.boomModel = [models lastObject];
}
[self updateMenuItem:self.boomView isRemove:NO];
}
- (void)updateScrollView:(NSArray *)data {
// scrollView subviews
[self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
// contentSize
CGFloat width = self.scrollView.bounds.size.width;
self.scrollView.contentSize = CGSizeMake(self.scrollView.bounds.size.width,
MAX(self.scrollView.bounds.size.height, width * data.count));
// subviews
CGFloat yOffset = self.scrollView.contentSize.height; //
for (UIView *view in data) {
[self.scrollView addSubview:view];
yOffset -= width;
view.frame = CGRectMake(0, yOffset, width, width);
}
//
if (self.scrollView.contentSize.height > self.scrollView.bounds.size.height) {
[self.scrollView setContentOffset:CGPointMake(0, self.scrollView.contentSize.height - self.scrollView.bounds.size.height)
animated:NO];
}
}
- (void)configLittleGameActivity {
[self updateCycleView];
}
- (void)requestActivityList {
RACSubject* playRAC = [RACSubject subject];
RACSubject* activityRAC = [RACSubject subject];
RACSubject* littleGameRAC = [RACSubject subject];
@kWeakify(self);
[[RACSignal combineLatest:@[playRAC,
activityRAC,
littleGameRAC]
reduce:^id(NSArray<ActivityInfoModel*> *playModels,
NSArray <ActivityInfoModel *>*activityModels,
NSArray<LittleGameInfoModel*> *littleGameModels){
@kStrongify(self);
self.playList = [NSMutableArray arrayWithArray:playModels];
self.activityList = [NSMutableArray arrayWithArray:activityModels];
self.littleGameList = [NSMutableArray arrayWithArray:littleGameModels];
[self dealWithData];
[self onRoomUpdate];
return nil;
}] subscribeError:^(NSError * _Nullable error) {
[XNDJTDDLoadingTool showErrorWithMessage:error.domain];
}];
[self loadGames:playRAC];
[self loadActivities:activityRAC];
[self loadLittleGames:littleGameRAC];
}
- (void)loadGames:(RACSubject *)racSubject {
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.uid];
[Api getPlayList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
NSArray <ActivityInfoModel *>* array = [ActivityInfoModel modelsWithArray:data.data];
[racSubject sendNext:array];
[racSubject sendCompleted];
} else {
[racSubject sendError:[NSError errorWithDomain:msg code:code userInfo:nil]];
}
} roomId:roomId];
}
- (void)loadActivities:(RACSubject *)racSubject {
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.uid];
[Api roomActivityList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
NSArray <ActivityInfoModel *>* array = [ActivityInfoModel modelsWithArray:data.data];
[racSubject sendNext:array];
[racSubject sendCompleted];
} else {
[racSubject sendError:[NSError errorWithDomain:msg code:code userInfo:nil]];
}
} roomId:roomId];
}
- (void)loadLittleGames:(RACSubject *)racSubject {
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid];
[Api getLittleGameList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
NSArray * array = [LittleGameInfoModel modelsWithArray:data.data];
[racSubject sendNext:array];
[racSubject sendCompleted];
} else {
[racSubject sendError:[NSError errorWithDomain:msg code:code userInfo:nil]];
}
}
roomUid:roomUid];
}
-(void)dealWithData{
self.isLoadActivity = YES;
self.cycleScrollView.hidden = NO;
if (self.playList.count > 0 || self.littleGameList.count >0) {
[self updateMenuItem:self.gambleMenuButton isRemove:NO];
}
if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) {
[self configLittleGameActivity];
} else {
[self updateCycleView];
}
}
- (void)updateConfigEntranceButtons:(RoomInfoModel *)roomInfo {
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
if (!model) {
return;
}
@kWeakify(self);
if (![NSString isEmpty:model.icon2Url]) {
[self.loader_url_2 loadImageWithUrl:model.icon2Url
completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
@kStrongify(self);
[self.gambleMenuButton setImage:image
forState:UIControlStateNormal];
}];
}
if (![NSString isEmpty:model.icon1Url]) {
[self.loader_url_1 loadImageWithUrl:model.icon1Url
completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
@kStrongify(self);
[self.configEntranceMenuButton setImage:image
forState:UIControlStateNormal];
[self updateMenuItem:self.configEntranceMenuButton isRemove:NO];
}];
} else {
if (_configEntranceMenuButton) {
[self updateMenuItem:self.configEntranceMenuButton isRemove:YES];
}
}
}
- (void)updateCycleView {
NSMutableArray *picArray = [NSMutableArray array];
for (ActivityInfoModel *model in self.activityList) {
[picArray addObject:model.icon ?: @""];
}
self.cycleScrollView.imageURLStringsGroup = picArray;
if (picArray.count > 1) {
[self.cycleScrollView setAutoScroll:YES];
self.cycleScrollView.autoScrollTimeInterval = 3;
} else {
[self.cycleScrollView setAutoScroll:NO];
}
}
- (void)openURL:(NSString *)urlString {
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
XPWebViewController *vc = [[XPWebViewController alloc] initWithRoomUID:@(roomInfo.uid).stringValue];
vc.url = urlString;
[self.hostDelegate.getCurrentNav pushViewController:vc animated:YES];
}
- (void)openBaiShunGame:(RoomBottomEntranceModel *)model {
if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){
ActivityInfoModel *activityModel = [[ActivityInfoModel alloc] init];
activityModel.skipContent = model.skipUrl;
activityModel.skipType = ActivitySkipType_Web;
activityModel.showType = 1;
activityModel.code = @"BAISHUN";
activityModel.ruleValue = model.reserve;
if (activityModel.gameModel) {
MSRoomGameWebVC *vc = [[MSRoomGameWebVC alloc] initWithDelegate:self.hostDelegate
gameModel:activityModel];
vc.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
XPRoomViewController *roomVC = (XPRoomViewController *)self.hostDelegate;
[roomVC addChildViewController:vc];
XPRoomAnimationView *animationView;
for (id obj in self.hostDelegate.getSuperView.subviews) {
if ([obj isKindOfClass:[XPRoomAnimationView class]]){
animationView = obj;
break;
}
}
[self.hostDelegate.getSuperView addSubview:vc.view];
vc.view.tag = 913;
}
}
}
#pragma mark - User Response
- (void)displayBoomInfoProgress {
BoomInfoViewController *vc = [[BoomInfoViewController alloc] init];
vc.roomUid = self.hostDelegate.getRoomInfo.uid;
vc.partitionId = self.hostDelegate.getUserInfo.partitionId;
vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
@kWeakify(self);
[vc setShowGiftPanel:^{
@kStrongify(self);
if (self.showSendGiftView) {
self.showSendGiftView();
}
}];
}
- (void)didTapGameMenuButton {
MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc] initWithDelegate:self.hostDelegate roomMenuType:MSRoomMenuTypeGame];
vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
}
- (void)didTapConfigEntranceButton {
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
if (!model || model.skipUrl.length == 0) {
return;
}
switch (model.skipType) {
case 1:
[self openURL:model.skipUrl];
break;
case 2:
[self openBaiShunGame:model];
break;
default:
break;
}
}
- (void)didTapPKMenuButton {
[self.hostDelegate showPKPanel];
}
- (void)didTapJoinDatingRecognizer {
if (self.hostDelegate.getRoomInfo.roomModeType == RoomModeType_Open_PK_Mode && self.hostDelegate.isRoomPKPlaying) {
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPRoomActivityContainerView2")];
return;
}
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
request.roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId];
request.userIds = @[[AccountInfoStorage instance].getUid];
@kWeakify(self);
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
@kStrongify(self);
NIMChatroomMember * member;
if (error == nil) {
member = members.firstObject;
}
RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo;
XPArrangeMicInfoModel * info = [[XPArrangeMicInfoModel alloc] init];
info.roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid];
info.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
info.nick = roomInfo.nick;
info.roomAvatar = roomInfo.avatar;
info.roomTitle = roomInfo.title;
info.micQueue = [self.hostDelegate getMicroQueue];
info.isManager = (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager);
info.type = roomInfo.roomModeType == RoomModeType_Open_Blind ? ArrangeMicType_Dating : roomInfo.roomModeType == RoomModeType_Open_PK_Mode ? ArrangeMicType_Room_PK : ArrangeMicType_Normal;
XPArrangeMicViewController * arrangeMicVC = [[XPArrangeMicViewController alloc] initWithInfo:info];
[self.hostDelegate.getCurrentNav presentViewController:arrangeMicVC animated:YES completion:nil];
}];
}
#pragma mark - Room Delegate
- (void)onRoomEntered {
}
- (void)onRoomUpdate {
RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo;
[self updateConfigEntranceButtons:roomInfo];
if (roomInfo.roomModeType != RoomModeType_Open_PK_Mode) {
[self updateMenuItem:self.pkMenuButton isRemove:YES];
} else {
[self updateMenuItem:self.pkMenuButton isRemove:NO];
}
switch (roomInfo.type) {
case RoomType_MiniGame:
break;
default: {
[self updateCycleView];
if (roomInfo.roomModeType == RoomModeType_Open_Blind || roomInfo.roomModeType == RoomModeType_Open_PK_Mode || roomInfo.roomModeType == RoomModeType_Open_Micro_Mode) {
if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode ) {
self.joinView.image = [UIImage getLanguageImage:@"room_pk_normal_member_enter"];
} else {
self.joinView.image = [UIImage getLanguageImage:@"room_mode_dating_enter"];
}
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
request.userIds = @[[AccountInfoStorage instance].getUid];
@kWeakify(self);
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
@kStrongify(self);
if (error == nil) {
NIMChatroomMember * member = members.firstObject;
if (member.type == NIMTeamMemberTypeOwner || member.type == NIMTeamMemberTypeManager) {
[self updateMenuItem:self.joinView isRemove:YES];
return;
}
}
[self updateMenuItem:self.joinView isRemove:NO];
}];
} else {
[self updateMenuItem:self.joinView isRemove:YES];
}
}
break;
}
#if DEBUG
[self updateMenuItem:self.pkMenuButton isRemove:NO];
[self updateMenuItem:self.joinView isRemove:NO];
#endif
}
- (void)handleNIMTextMessage:(NIMMessage *)message {
}
- (void)handleNIMNotificationMessage:(NIMMessage *)message {
}
#pragma mark - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return number of menu items
return 5; // Adjust based on your needs
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MenuCell"];
// Configure cell based on index
// Add your menu items here
return cell;
}
#pragma mark - SDCycleScrollViewDelegate
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index {
NSArray *imageUrlList = cycleScrollView.imageURLStringsGroup;
if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) {
[self jumpPlayActionWithIndex:index imageUrlList:imageUrlList];
return;
}
NSString *picUrl = [imageUrlList xpSafeObjectAtIndex:index];
if ([NSString isEmpty:picUrl]) {
return;
}
NSMutableArray *infoList = @[].mutableCopy;
ActivityInfoModel * info;
for (ActivityInfoModel * getInfo in self.activityList) {
if([getInfo.icon isEqualToString:picUrl]){
info = getInfo;
}
if(getInfo.skipType == ActivitySkipType_Web){
[infoList addObject:getInfo];
}
}
if (info == nil) {
return;
}
if ([info.code isEqualToString:@"FIRST_CHARGE"]) {
[self firstRechargeTapRecognizer];
} else if ([info.code isEqualToString:@"FIND_LOVE"]) {
[self lookLoveTapRecognizer];
} else if ([info.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
} else if ([info.code isEqualToString:@"SEIZE_TREASURE"]) {
} else {
}
}
-(void)jumpPlayActionWithIndex:(NSInteger)index imageUrlList:(NSArray *)imageUrlList {
}
- (void)firstRechargeTapRecognizer {
[[NSNotificationCenter defaultCenter]postNotificationName:kShowFirstRechargeView object:nil];
}
- (void)lookLoveTapRecognizer {
XPCandyTreeViewController * candyTreeVC = [[XPCandyTreeViewController alloc] initWithDelegate:self.hostDelegate];
candyTreeVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:candyTreeVC.view];
[[XCCurrentVCStackManager shareManager].getCurrentVC addChildViewController:candyTreeVC];
[candyTreeVC.navigationController setNavigationBarHidden:YES animated:NO];
[UIView animateWithDuration:0.1 animations:^{
candyTreeVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}
- (void)sailTapRecognizer {
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
XPSailingViewController * sailingVC = [[XPSailingViewController alloc] initWithRoomUid:roomUid];
[self.hostDelegate.getCurrentNav presentViewController:sailingVC animated:YES completion:nil];
}
#pragma mark - Getters
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] init];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.transform = CGAffineTransformMakeScale(1, -1);
_tableView.backgroundColor = [UIColor clearColor];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"MenuCell"];
}
return _tableView;
}
- (UIScrollView *)scrollView {
if (!_scrollView) {
_scrollView = [[UIScrollView alloc] init];
_scrollView.backgroundColor = [UIColor greenColor];
}
return _scrollView;
}
- (UIButton *)gambleMenuButton {
if (!_gambleMenuButton) {
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[UIImage imageNamed:@"ms_room_game_button"] forState:UIControlStateNormal];
[b addTarget:self action:@selector(didTapGameMenuButton) forControlEvents:UIControlEventTouchUpInside];
b.imageView.contentMode = UIViewContentModeScaleAspectFit;
b.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
b.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
_gambleMenuButton = b;
}
return _gambleMenuButton;
}
- (UIButton *)configEntranceMenuButton {
if (!_configEntranceMenuButton) {
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[UIImage imageNamed:@"ms_room_game_add_coin"] forState:UIControlStateNormal];
[b addTarget:self action:@selector(didTapConfigEntranceButton) forControlEvents:UIControlEventTouchUpInside];
b.imageView.contentMode = UIViewContentModeScaleAspectFit;
b.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
b.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
_configEntranceMenuButton = b;
}
return _configEntranceMenuButton;
}
- (UIButton *)pkMenuButton {
if (!_pkMenuButton) {
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[UIImage imageNamed:@"room_pk_panel_mini_icon"] forState:UIControlStateNormal];
[b addTarget:self action:@selector(didTapPKMenuButton) forControlEvents:UIControlEventTouchUpInside];
b.imageView.contentMode = UIViewContentModeScaleAspectFill;
_pkMenuButton = b;
}
return _pkMenuButton;
}
- (SDCycleScrollView *)cycleScrollView {
if (!_cycleScrollView) {
_cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil];
_cycleScrollView.backgroundColor = [UIColor purpleColor];
_cycleScrollView.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter;
_cycleScrollView.currentPageDotColor = [UIColor whiteColor];
_cycleScrollView.pageDotColor = [UIColor colorWithWhite:1 alpha:0.2];
_cycleScrollView.pageControlDotSize = CGSizeMake(5, 2);
_cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleClassic;
_cycleScrollView.currentPageDotImage = [UIImage imageNamed:@"room_activity_banner_select"];
_cycleScrollView.pageDotImage = [UIImage imageNamed:@"room_activity_banner_normal"];
_cycleScrollView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00];
_cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFit;
_cycleScrollView.pageControlBottomOffset = -10;
_cycleScrollView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
}
return _cycleScrollView;
}
- (RoomBoomEntryView *)boomView {
if (!_boomView) {
_boomView = [[RoomBoomEntryView alloc] init];
_boomView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(displayBoomInfoProgress)];
[_boomView addGestureRecognizer:tap];
}
return _boomView;
}
- (UIImageView *)joinView {
if (!_joinView) {
_joinView = [[UIImageView alloc] init];
_joinView.image = [UIImage getLanguageImage:@"room_mode_dating_enter"];
_joinView.userInteractionEnabled = YES;
_joinView.contentMode = UIViewContentModeScaleAspectFit;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapJoinDatingRecognizer)];
[_joinView addGestureRecognizer:tap];
}
return _joinView;
}
- (NetImageView *)loader_url_1 {
if (!_loader_url_1) {
_loader_url_1 = [[NetImageView alloc] init];
}
return _loader_url_1;
}
- (NetImageView *)loader_url_2 {
if (!_loader_url_2) {
_loader_url_2 = [[NetImageView alloc] init];
}
return _loader_url_2;
}
@end

View File

@@ -254,6 +254,8 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
-(void)dealWithData{
self.isLoadActivity = YES;
self.pi_cycleScrollView.hidden = NO;
self.gambleMenuButton.hidden = (self.playList.count == 0 && self.littleGameList.count == 0) ? YES : NO;
if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) {
[self configLittleGameActivity];

View File

@@ -93,6 +93,7 @@
#import "RoomBoomResultView.h"
#import "XPSendGiftView.h"
#import "RoomSideMenu.h"
UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey;
UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
@@ -141,7 +142,8 @@ XPCandyTreeInsufficientBalanceViewDelegate>
///
@property (nonatomic,strong) XPRoomMenuContainerView *menuContainerView;
///
@property (nonatomic,strong) XPRoomActivityContainerView *activityContainerView;
@property(nonatomic, strong) RoomSideMenu *sideMenu;
//@property (nonatomic,strong) XPRoomActivityContainerView *activityContainerView;
///view
@property (nonatomic,strong) XPRoomAnimationView *animationView;
///view
@@ -373,7 +375,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[[GiftComboManager sharedManager] setHandleRoomUIChanged:^(BOOL comboViewDisplay) {
@kStrongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
self.activityContainerView.hidden = comboViewDisplay;
self.sideMenu.hidden = comboViewDisplay;
self.menuContainerView.hidden = comboViewDisplay;
});
}];
@@ -536,7 +538,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.view addSubview:self.quickMessageContainerView];
[self.view addSubview:self.menuContainerView];
[self.view addSubview:self.activityContainerView];
[self.view addSubview:self.sideMenu];
[self.view addSubview:self.redPacketView];
[self.view addSubview:self.roomHeaderView];
[self.view addSubview:self.functionView];
@@ -589,7 +591,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.top.equalTo(self.stageView.mas_bottom);
make.bottom.equalTo(self.quickMessageContainerView.mas_top).offset(-5);
make.leading.equalTo(self.view);
make.trailing.equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.equalTo(self.sideMenu.mas_leading).offset(-10);
}];
CGFloat quickMsgHeight = 30;
//
@@ -615,7 +617,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.height.mas_equalTo(52 + kSafeAreaBottomHeight);
}];
[self.activityContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
[self.sideMenu mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.trailing.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
@@ -655,13 +657,13 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.top.equalTo(self.stageView.mas_bottom);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).mas_offset(-5);
make.leading.equalTo(self.anchorScrollView.middleImageView);
make.trailing.equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.equalTo(self.sideMenu.mas_leading).offset(-10);
}];
[self.quickMessageContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(0);
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.leading.equalTo(self.anchorScrollView.middleImageView);
make.trailing.equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.equalTo(self.sideMenu.mas_leading).offset(-10);
}];
[self.menuContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.anchorScrollView.middleImageView);
@@ -672,7 +674,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
}
make.height.mas_equalTo(52 + kSafeAreaBottomHeight);
}];
[self.activityContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
[self.sideMenu mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.trailing.mas_equalTo(self.anchorScrollView.middleImageView);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).mas_offset(-5);
@@ -686,11 +688,11 @@ XPCandyTreeInsufficientBalanceViewDelegate>
- (void)handleActivityContainerViewEvents {
@kWeakify(self);
self.activityContainerView.openRedPacketHandle = ^(XPRedPacketModel * _Nullable redModel,RoomType type,BOOL isChangeRoom) {
self.sideMenu.openRedPacketHandle = ^(XPRedPacketModel * _Nullable redModel,RoomType type,BOOL isChangeRoom) {
@kStrongify(self);
if(isChangeRoom == YES){
self.redPacketView.type = type;
self.redPacketView.redPacketList = self.activityContainerView.redPacketList;
self.redPacketView.redPacketList = self.sideMenu.redPacketList;
return;
}
@@ -708,7 +710,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.view bringSubviewToFront:view];
};
self.activityContainerView.showSendGiftView = ^{
self.sideMenu.showSendGiftView = ^{
@kStrongify(self);
NSString * roomUid = [NSString stringWithFormat:@"%ld", [self getRoomInfo].uid];
XPSendGiftView * giftView = [[XPSendGiftView alloc] initWithType:SendGiftType_Room uid:roomUid];
@@ -890,10 +892,10 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.height.mas_equalTo(height);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
make.leading.mas_equalTo(self.view);
make.trailing.mas_equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.mas_equalTo(self.sideMenu.mas_leading).offset(-10);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
[self.sideMenu mas_remakeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
make.width.mas_equalTo(87);
@@ -911,10 +913,10 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.top.mas_equalTo(self.stageView.mas_bottom);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
make.leading.mas_equalTo(self.view);
make.trailing.mas_equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.mas_equalTo(self.sideMenu.mas_leading).offset(-10);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
[self.sideMenu mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.trailing.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
@@ -948,7 +950,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.top.mas_equalTo(self.stageView.mas_bottom);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).mas_offset(-5);
make.leading.mas_equalTo(self.anchorScrollView.middleImageView);
make.trailing.mas_equalTo(self.activityContainerView.mas_leading).offset(-10);
make.trailing.mas_equalTo(self.sideMenu.mas_leading).offset(-10);
}];
CGFloat quickMsgHeight = 30;
@@ -966,7 +968,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
make.bottom.mas_equalTo(self.backContainerView).mas_offset(-5-40-8-kSafeAreaBottomHeight);
make.leading.trailing.mas_equalTo(self.anchorScrollView.middleImageView);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
[self.sideMenu mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.messageContainerView);
make.trailing.mas_equalTo(self.anchorScrollView.middleImageView);
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).mas_offset(-5);
@@ -979,7 +981,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
return;
}
_roomInfo = roomInfo;
[self.activityContainerView updateView];
[self.sideMenu updateView];
}
#pragma mark - Game Switch
@@ -1175,7 +1177,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
self.roomInfo.datingState = roomInfo.roomModeType == RoomModeType_Open_Blind ? RoomDatingStateChangeType_Open : RoomDatingStateChangeType_Normal;
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
@@ -1226,7 +1228,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.quickMessageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.sideMenu removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
@@ -1234,7 +1236,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.quickMessageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.sideMenu];
[self.anchorScrollView addSubview:self.roomHeaderView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
@@ -1246,7 +1248,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
@@ -1329,7 +1331,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
@@ -1461,7 +1463,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnRoomUpdate];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
[self.littleGameView onRoomEntered];
@@ -1541,7 +1543,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.quickMessageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.sideMenu removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
self.functionView = nil;
@@ -1582,7 +1584,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.quickMessageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.sideMenu removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
self.functionView = nil;
@@ -1630,7 +1632,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.quickMessageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.sideMenu];
[self.anchorScrollView addSubview:self.roomHeaderView];
[self.anchorScrollView addSubview:self.menuContainerView];
[self.anchorScrollView addSubview:self.functionView];
@@ -1640,7 +1642,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
@@ -1703,7 +1705,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
- (void)getRedPacketSuccess:(NSArray *)list {
if(list.count > 0){
self.activityContainerView.redPacketList = [NSMutableArray arrayWithArray:list];
self.sideMenu.redPacketList = [NSMutableArray arrayWithArray:list];
}
}
@@ -1759,7 +1761,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView removeFromSuperview];
[self.messageContainerView removeFromSuperview];
[self.quickMessageContainerView removeFromSuperview];
[self.activityContainerView removeFromSuperview];
[self.sideMenu removeFromSuperview];
[self.roomHeaderView removeFromSuperview];
[self.functionView removeFromSuperview];
[self.menuContainerView removeFromSuperview];
@@ -1859,7 +1861,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.view addSubview:self.messageContainerView];
[self.view addSubview:self.quickMessageContainerView];
[self.view addSubview:self.menuContainerView];
[self.view addSubview:self.activityContainerView];
[self.view addSubview:self.sideMenu];
[self.view addSubview:self.roomHeaderView];
[self.view bringSubviewToFront:self.menuContainerView];
[self.view addSubview:self.functionView];
@@ -1870,7 +1872,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
[self.functionView onRoomUpdate];
[self.activityContainerView onRoomUpdate];
[self.sideMenu onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
} else {
@@ -1895,7 +1897,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView onRoomUpdate];
[self.menuContainerView onRoomUpdate];
[self.functionView onRoomUpdate];
[self.activityContainerView onRoomUpdate];
[self.sideMenu onRoomUpdate];
[self.messageContainerView onRoomUpdate];
[self.littleGameView onRoomUpdate];
@@ -1916,7 +1918,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
///
[self userEnterRoomSuccess];
///
[self.activityContainerView onRoomUpdate];
[self.sideMenu onRoomUpdate];
[self.menuContainerView onRoomUpdate];
}
@@ -1947,7 +1949,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView handleNIMNotificationMessage:message];
[self.animationView handleNIMNotificationMessage:message];
[self.messageContainerView handleNIMNotificationMessage:message];
[self.activityContainerView handleNIMNotificationMessage:message];
[self.sideMenu handleNIMNotificationMessage:message];
[self.menuContainerView handleNIMNotificationMessage:message];
[self.functionView handleNIMNotificationMessage:message];
[self.littleGameView handleNIMNotificationMessage:message];
@@ -1963,14 +1965,14 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.stageView handleNIMCustomMessage:message];
[self.animationView handleNIMCustomMessage:message];
[self.menuContainerView handleNIMCustomMessage:message];
[self.activityContainerView handleNIMCustomMessage:message];
[self.sideMenu handleNIMCustomMessage:message];
[self.functionView handleNIMCustomMessage:message];
[self.littleGameView handleNIMCustomMessage:message];
if (attachment.first == CustomMessageType_First_Recharge_Reward && attachment.second == Custom_Message_Sub_Room_First_Recharge_Reward) {
self.userInfo.isFirstCharge = NO;
[self.menuContainerView onRoomUpdate];
[self.activityContainerView onRoomUpdate];
[self.sideMenu onRoomUpdate];
} else if (attachment.first == CustomMessageType_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) {
///iOS
NSDictionary * dic= attachment.data[@"roomInfo"];
@@ -2027,18 +2029,18 @@ XPCandyTreeInsufficientBalanceViewDelegate>
}
[self.view addSubview:view];
[self.view bringSubviewToFront:view];
if(self.activityContainerView.redPacketList == nil){
self.activityContainerView.redPacketList = [NSMutableArray array];
if(self.sideMenu.redPacketList == nil){
self.sideMenu.redPacketList = [NSMutableArray array];
}
NSMutableArray *redPacketList = [NSMutableArray arrayWithArray:self.activityContainerView.redPacketList];
NSMutableArray *redPacketList = [NSMutableArray arrayWithArray:self.sideMenu.redPacketList];
[redPacketList insertObject:data atIndex:0];
self.activityContainerView.redPacketList = redPacketList;
self.sideMenu.redPacketList = redPacketList;
}else if(attachment.second == Custom_Message_Sub_NewRoomDiamandRedPacket){
XPRedPacketModel *curData = [XPRedPacketModel modelWithJSON:attachment.data];
if(self.activityContainerView.redPacketList == nil){
self.activityContainerView.redPacketList = [NSMutableArray array];
if(self.sideMenu.redPacketList == nil){
self.sideMenu.redPacketList = [NSMutableArray array];
}
NSMutableArray *redPacketList = [NSMutableArray arrayWithArray:self.activityContainerView.redPacketList];
NSMutableArray *redPacketList = [NSMutableArray arrayWithArray:self.sideMenu.redPacketList];
[redPacketList insertObject:curData atIndex:0];
if(self.roomInfo.uid > 0 && curData.redEnvelopeNum.integerValue != redPacketList.count){
[self.presenter getRedPacket:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]];
@@ -2059,7 +2061,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.view addSubview:view];
[self.view bringSubviewToFront:view];
}
self.activityContainerView.redPacketList = redPacketList;
self.sideMenu.redPacketList = redPacketList;
}
}else if(attachment.first == CustomMessageType_Free_Gift_Star_Reset_Time){
@@ -2260,11 +2262,11 @@ XPCandyTreeInsufficientBalanceViewDelegate>
}
-(NSMutableArray *)getPlayList{
return self.activityContainerView.playList;
return self.sideMenu.playList;
}
-(NSMutableArray *)getLittleGameList {
return self.activityContainerView.littleGameList;
return self.sideMenu.littleGameList;
}
- (void)exitRoom {
@@ -2498,7 +2500,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
- (void)getRoomBoomInfoSuccess:(NSArray <BoomDetailModel*> *)models {
[[RoomBoomManager sharedManager] updateBoomDetailArray:models];
[self.activityContainerView updateForBoomDetailArray:models];
[self.sideMenu updateForBoomDetailArray:models];
}
- (void)getRoomBoomExplosionSuccess:(BoomInfoModel *)model {
@@ -2563,7 +2565,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self.anchorScrollView addSubview:self.stageView];
[self.anchorScrollView addSubview:self.messageContainerView];
[self.anchorScrollView addSubview:self.quickMessageContainerView];
[self.anchorScrollView addSubview:self.activityContainerView];
[self.anchorScrollView addSubview:self.sideMenu];
[self.anchorScrollView addSubview:self.roomHeaderView];
if (!self.menuContainerView.superview) {
[self.view addSubview:self.menuContainerView];
@@ -2576,7 +2578,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[self changeStageViewOnAnchorRoom];
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.backContainerView onRoomEntered];
@@ -2600,7 +2602,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
[[XPRoomMiniManager shareManager] configCurrentMusic:nil isPlaying:NO];
} else {
[self.roomHeaderView onRoomEntered];
[self.activityContainerView onRoomEntered];
[self.sideMenu onRoomEntered];
[self.menuContainerView onRoomEntered];
[self changeStageViewOnRoomUpdate];
@@ -2714,12 +2716,11 @@ XPCandyTreeInsufficientBalanceViewDelegate>
return _menuContainerView;
}
- (XPRoomActivityContainerView *)activityContainerView {
if (!_activityContainerView) {
_activityContainerView = [[XPRoomActivityContainerView alloc] initWithDelegate:self];
- (RoomSideMenu *)sideMenu {
if (!_sideMenu) {
_sideMenu = [[RoomSideMenu alloc] initWithDelegate:self];
}
return _activityContainerView;
return _sideMenu;
}
- (XPRoomAnimationView *)animationView {