feat: 重构房间右下菜单栏
This commit is contained in:
@@ -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 */,
|
||||
|
6
YuMi/Assets.xcassets/1.0.34/Contents.json
Normal file
6
YuMi/Assets.xcassets/1.0.34/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
21
YuMi/Assets.xcassets/1.0.34/side_menu_close.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.34/side_menu_close.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.34/side_menu_close.imageset/展开.png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.34/side_menu_close.imageset/展开.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
21
YuMi/Assets.xcassets/1.0.34/side_menu_open.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.34/side_menu_open.imageset/Contents.json
vendored
Normal 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
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.34/side_menu_open.imageset/展开 (1).png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.34/side_menu_open.imageset/展开 (1).png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
@@ -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
|
||||
|
@@ -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];
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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];
|
||||
|
@@ -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) {
|
||||
|
@@ -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) {
|
||||
|
@@ -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
|
704
YuMi/Modules/YMRoom/View/ActivityContainerView/RoomSideMenu.m
Normal file
704
YuMi/Modules/YMRoom/View/ActivityContainerView/RoomSideMenu.m
Normal 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
|
@@ -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];
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user