RoomInfo 增加参数,房间支持配置入口 修正登录 API 的 toast 显示
This commit is contained in:
@@ -521,6 +521,7 @@
|
||||
23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; };
|
||||
23FF428E2AAB2D3A0055733C /* XPCandyTreeBuyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */; };
|
||||
5412E0F42C4E460300FDD668 /* XPMineCenterAgencyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5412E0F32C4E460300FDD668 /* XPMineCenterAgencyView.m */; };
|
||||
5412E0FD2C52512100FDD668 /* RoomBottomEntranceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5412E0FC2C52512100FDD668 /* RoomBottomEntranceModel.m */; };
|
||||
541DD9552C1EDEFB00B616C4 /* XPHomePagingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 541DD9542C1EDEFB00B616C4 /* XPHomePagingViewController.m */; };
|
||||
5458319D2C2AE09300364026 /* XPRoomTypeSelectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5458319C2C2AE09300364026 /* XPRoomTypeSelectionViewController.m */; };
|
||||
545831A02C2AEFAF00364026 /* TenMicStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5458319F2C2AEFAF00364026 /* TenMicStageView.m */; };
|
||||
@@ -2589,6 +2590,8 @@
|
||||
23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeBuyView.m; sourceTree = "<group>"; };
|
||||
5412E0F22C4E460300FDD668 /* XPMineCenterAgencyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineCenterAgencyView.h; sourceTree = "<group>"; };
|
||||
5412E0F32C4E460300FDD668 /* XPMineCenterAgencyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineCenterAgencyView.m; sourceTree = "<group>"; };
|
||||
5412E0FB2C52512100FDD668 /* RoomBottomEntranceModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomBottomEntranceModel.h; sourceTree = "<group>"; };
|
||||
5412E0FC2C52512100FDD668 /* RoomBottomEntranceModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomBottomEntranceModel.m; sourceTree = "<group>"; };
|
||||
541DD9532C1EDEFB00B616C4 /* XPHomePagingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomePagingViewController.h; sourceTree = "<group>"; };
|
||||
541DD9542C1EDEFB00B616C4 /* XPHomePagingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPHomePagingViewController.m; sourceTree = "<group>"; };
|
||||
5458319B2C2AE09300364026 /* XPRoomTypeSelectionViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTypeSelectionViewController.h; sourceTree = "<group>"; };
|
||||
@@ -7268,6 +7271,8 @@
|
||||
E8899C812785A694007944BE /* DatingInfoModel.m */,
|
||||
E87AE8BF284E184300CAFBB3 /* RoomNewUserGreetModel.h */,
|
||||
E87AE8C0284E184300CAFBB3 /* RoomNewUserGreetModel.m */,
|
||||
5412E0FB2C52512100FDD668 /* RoomBottomEntranceModel.h */,
|
||||
5412E0FC2C52512100FDD668 /* RoomBottomEntranceModel.m */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
@@ -11936,6 +11941,7 @@
|
||||
E85E7B0D2A4EB0D200B6D00A /* GuildSuperAdminInfoModel.m in Sources */,
|
||||
189DD68426E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m in Sources */,
|
||||
9B1B72AF280031F8003FACE9 /* XPAnchorPKSelectRoomView.m in Sources */,
|
||||
5412E0FD2C52512100FDD668 /* RoomBottomEntranceModel.m in Sources */,
|
||||
E818DD1C2A4896EE00F163F7 /* XPLoginAraeViewController.m in Sources */,
|
||||
23959FE72BB15C930085A282 /* UploadFileModel.m in Sources */,
|
||||
E8D4824A278D1F73003C1D08 /* XPAcrossRoomPKInviteView.m in Sources */,
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 44 KiB |
@@ -642,8 +642,6 @@ NSString * const HadAgreePrivacy = @"HadAgreePrivacy";
|
||||
return _protocolLabel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (UIImageView *)authBubbleView {
|
||||
if (!_authBubbleView) {
|
||||
_authBubbleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_auth_bubble"]];
|
||||
|
@@ -33,8 +33,7 @@
|
||||
/// 获取用户信息
|
||||
- (void)getUserInfo {
|
||||
NSString * uid = [[AccountInfoStorage instance] getUid];
|
||||
if (!uid.length) {
|
||||
|
||||
if (uid.length == 0) {
|
||||
return;
|
||||
}
|
||||
@kWeakify(self);
|
||||
@@ -42,7 +41,7 @@
|
||||
@kStrongify(self);
|
||||
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
|
||||
[[self getView] onGetUserInfoSuccess:infoModel];
|
||||
}errorToast:NO] uid:uid];
|
||||
} errorToast:NO] uid:uid];
|
||||
}
|
||||
|
||||
/// 获取钱包信息
|
||||
@@ -50,7 +49,7 @@
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
NSString * ticket = [AccountInfoStorage instance].getTicket;
|
||||
if (!uid.length) {
|
||||
[[self getView]getUserWalletInfoFail];
|
||||
[[self getView] getUserWalletInfoFail];
|
||||
return;
|
||||
}
|
||||
@kWeakify(self);
|
||||
@@ -60,7 +59,7 @@
|
||||
[[self getView] getUserWalletInfo:model];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
@kStrongify(self);
|
||||
[[self getView]getUserWalletInfoFail];
|
||||
[[self getView] getUserWalletInfoFail];
|
||||
}] uid:uid ticket:ticket];
|
||||
}
|
||||
|
||||
|
@@ -134,7 +134,9 @@
|
||||
// 获取用户信息
|
||||
- (void)getUserInfo {
|
||||
NSString * uid = [[AccountInfoStorage instance] getUid];
|
||||
@kWeakify(self);
|
||||
[Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
@kStrongify(self);
|
||||
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
|
||||
[[self getView] onGetUserInfoSuccess:infoModel];
|
||||
}] uid:uid];
|
||||
|
@@ -131,8 +131,6 @@ return view;\
|
||||
@property (nonatomic, strong) UILabel *fansNum;
|
||||
@property (nonatomic, strong) UILabel *followersNum;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPMineUserInfoHeaderView
|
||||
|
@@ -111,7 +111,6 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// [self showLoading];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
@@ -122,14 +121,19 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
self.isRefreshRoomInfo = NO;
|
||||
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventUserCenter_recharge_card_show];
|
||||
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventUserCenter_noble_card_show];
|
||||
|
||||
if([AccountInfoStorage instance].isRequestTicket == NO) {
|
||||
[self getDataInfo];
|
||||
}
|
||||
if (!self.userInfo) {
|
||||
[self showLoading];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
if([AccountInfoStorage instance].isRequestTicket == NO) {
|
||||
[self getDataInfo];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)getDataInfo{
|
||||
[self.presenter getUserInfo];
|
||||
}
|
||||
@@ -492,7 +496,9 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
if(self.isRefreshRoomInfo == YES)return;
|
||||
self.isRefreshRoomInfo = YES;
|
||||
NSString* roomUid = [NSString stringWithFormat:@"%ld", (long)self.userInfo.uid];
|
||||
@kWeakify(self);
|
||||
[Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
@kStrongify(self);
|
||||
self.isRefreshRoomInfo = NO;
|
||||
if (code == 200) {
|
||||
RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data];
|
||||
@@ -562,7 +568,9 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@kWeakify(self);
|
||||
[self.functionArray enumerateObjectsUsingBlock:^(XPMineFunctionItemModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
@kStrongify(self);
|
||||
if (obj.skipType == XPMineItemType_CP) {
|
||||
[self.functionArray removeObject:obj];
|
||||
}
|
||||
@@ -628,14 +636,6 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
userInfo.idAtt = [self.headView createNamePlateIdLabelAttribute:userInfo];
|
||||
[self.tableView reloadData];
|
||||
|
||||
[self.headView createNamePlateLevelAttribute:userInfo complete:^(NSMutableAttributedString *textAtt) {
|
||||
@kStrongify(self);
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
userInfo.levelAtt = textAtt;
|
||||
self.headView.userInfo = userInfo;
|
||||
});
|
||||
}];
|
||||
|
||||
dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
||||
@kStrongify(self);
|
||||
[self.presenter getClanDetailInfo];
|
||||
@@ -644,6 +644,16 @@ UIKIT_EXTERN NSString *kRequestTicket;
|
||||
// [self.presenter getMineBannerList];
|
||||
[self.presenter getNobleInfo];
|
||||
});
|
||||
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[self.headView createNamePlateLevelAttribute:userInfo complete:^(NSMutableAttributedString *textAtt) {
|
||||
@kStrongify(self);
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
userInfo.levelAtt = textAtt;
|
||||
self.headView.userInfo = userInfo;
|
||||
});
|
||||
}];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo{
|
||||
|
@@ -17,7 +17,9 @@
|
||||
///获取进房记录
|
||||
- (void)getInRoomRecordList {
|
||||
NSString *uid = [AccountInfoStorage instance].getUid;
|
||||
@kWeakify(self);
|
||||
[Api requestFootPrint:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
@kStrongify(self);
|
||||
NSArray *array = [XPMineFootPrintModel modelsWithArray:data.data];
|
||||
[[self getView] getInRoomRecordSuccess:array];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
@@ -27,7 +29,9 @@
|
||||
/// 清除进房记录
|
||||
- (void)cleanInRoomRecord {
|
||||
NSString *uid = [AccountInfoStorage instance].getUid;
|
||||
@kWeakify(self);
|
||||
[Api requestCleanFootPrint:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
@kStrongify(self);
|
||||
[[self getView] cleanInRoomRecordSuccess];
|
||||
}] uid:uid roomUid:NULL];
|
||||
}
|
||||
|
@@ -329,7 +329,11 @@
|
||||
|
||||
-(void)pushMyRoomVC{
|
||||
NSString* roomUid = [[AccountInfoStorage instance] getUid];
|
||||
// [XPRoomViewController openRoom:roomUid viewController:self];
|
||||
|
||||
@kWeakify(self);
|
||||
[Api getRoomInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
@kStrongify(self);
|
||||
if (code == 200) {
|
||||
RoomInfoModel * roomInfo = [RoomInfoModel modelWithJSON:data.data];
|
||||
if (roomInfo.isReselect) {
|
||||
|
@@ -16,9 +16,7 @@
|
||||
if(dic[@"RESERVE"]!=nil){
|
||||
_gameModel = [ActivityInfoItemModel modelWithJSON:dic[@"RESERVE"]];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@end
|
||||
@implementation ActivityInfoItemModel
|
||||
|
22
YuMi/Modules/YMRoom/Model/RoomBottomEntranceModel.h
Normal file
22
YuMi/Modules/YMRoom/Model/RoomBottomEntranceModel.h
Normal file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// RoomBottomEntranceModel.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/7/25.
|
||||
//
|
||||
|
||||
#import "PIBaseModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RoomBottomEntranceModel : PIBaseModel
|
||||
|
||||
@property (nonatomic, assign) NSInteger skipType; // 1 = h5, 2 = 百顺
|
||||
@property (nonatomic, copy) NSString *skipUrl;
|
||||
@property (nonatomic, copy) NSString *icon1Url; // 新增内容
|
||||
@property (nonatomic, copy) NSString *icon2Url; // 原有入口内容,有则替换为新图
|
||||
@property (nonatomic, copy) NSString *reserve;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
YuMi/Modules/YMRoom/Model/RoomBottomEntranceModel.m
Normal file
12
YuMi/Modules/YMRoom/Model/RoomBottomEntranceModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// RoomBottomEntranceModel.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/7/25.
|
||||
//
|
||||
|
||||
#import "RoomBottomEntranceModel.h"
|
||||
|
||||
@implementation RoomBottomEntranceModel
|
||||
|
||||
@end
|
@@ -8,6 +8,7 @@
|
||||
#import "NSObject+MJExtension.h"
|
||||
#import "YUMINNNN.h"
|
||||
#import "AcrossRoomPKPanelModel.h"
|
||||
#import "RoomBottomEntranceModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
typedef NS_ENUM(NSInteger, RoomType) {
|
||||
@@ -70,7 +71,6 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
|
||||
@property(nonatomic,copy) NSString *price;
|
||||
@end
|
||||
|
||||
@class AcrossRoomPKPanelModel;
|
||||
|
||||
@interface RoomInfoModel : PIBaseModel
|
||||
@property (nonatomic , copy) NSString * nick;
|
||||
@@ -177,6 +177,9 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
|
||||
|
||||
@property (nonatomic , assign) RoomType oldType;
|
||||
|
||||
/// 右下角的配置项
|
||||
@property (nonatomic, strong) RoomBottomEntranceModel *rightBottomIconConfig;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -63,15 +63,16 @@
|
||||
[room sendCompleted];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
[user sendError:nil];
|
||||
if (msg.length > 0) {
|
||||
TTAlertConfig *config = [[TTAlertConfig alloc]init];
|
||||
config.message = msg;
|
||||
config.actionStyle = TTAlertActionConfirmStyle;
|
||||
[TTPopup alertWithConfig:config showBorder:NO confirmHandler:^{
|
||||
|
||||
TTAlertConfig *config = [[TTAlertConfig alloc]init];
|
||||
config.message = msg;
|
||||
config.actionStyle = TTAlertActionConfirmStyle;
|
||||
[TTPopup alertWithConfig:config showBorder:NO confirmHandler:^{
|
||||
} cancelHandler:^{
|
||||
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
}];
|
||||
}
|
||||
} showLoading:YES errorToast:NO] uid:roomUid intoUid:uid];
|
||||
}
|
||||
|
||||
@@ -190,9 +191,7 @@
|
||||
delayDuration = 0.25;
|
||||
}
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayDuration * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{
|
||||
@kWeakify(self);
|
||||
[Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
@kStrongify(self);
|
||||
if (data.data) {
|
||||
[[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid];
|
||||
}
|
||||
|
@@ -42,6 +42,8 @@
|
||||
#import "BaseNavigationController.h"
|
||||
#import "PIRoomActivityWebView.h"
|
||||
|
||||
#import "MSRoomGameWebVC.h"
|
||||
#import "XPRoomAnimationView.h"
|
||||
#import "MSRoomMenuGameVC.h"
|
||||
|
||||
UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
@@ -54,6 +56,8 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
///红包
|
||||
@property(nonatomic,strong) PIRoomEnterRedPacketView *redPacketView;
|
||||
|
||||
/// 配置的入口,逻辑由 API 返回数据决定
|
||||
@property(nonatomic, strong) UIButton *configEntranceMenuButton;
|
||||
///游戏菜单按钮
|
||||
@property(nonatomic, strong) UIButton *gambleMenuButton;
|
||||
///游戏菜单按钮
|
||||
@@ -101,6 +105,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
[self.stackView addArrangedSubview:self.redPacketView];
|
||||
[self.stackView addArrangedSubview:self.joinDatingView];
|
||||
[self.stackView addArrangedSubview:self.pkMenuButton];
|
||||
[self.stackView addArrangedSubview:self.configEntranceMenuButton];
|
||||
[self.stackView addArrangedSubview:self.gambleMenuButton];
|
||||
}
|
||||
|
||||
@@ -109,9 +114,10 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
CGFloat itemWidth = KScreenHeight > 667 ? 65 : 55 * kScreenHeightScale;
|
||||
CGFloat scrollItemWidth = KScreenHeight > 667 ? 65 : 55 * kScreenHeightScale;
|
||||
CGSize itemSize = CGSizeMake(scrollItemWidth , scrollItemWidth);
|
||||
[self.pi_cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(itemWidth , itemWidth));
|
||||
make.size.mas_equalTo(itemSize);
|
||||
}];
|
||||
|
||||
[self.redPacketView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -120,12 +126,17 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
|
||||
[self.pkMenuButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(0);
|
||||
make.size.mas_equalTo(CGSizeMake(76, 76));
|
||||
make.size.mas_equalTo(itemSize);
|
||||
}];
|
||||
|
||||
[self.gambleMenuButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(0);
|
||||
make.size.mas_equalTo(CGSizeMake(76, 76));
|
||||
make.size.mas_equalTo(itemSize);
|
||||
}];
|
||||
|
||||
[self.configEntranceMenuButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(0);
|
||||
make.size.mas_equalTo(itemSize);
|
||||
}];
|
||||
|
||||
[self.joinDatingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -142,6 +153,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
@kStrongify(self);
|
||||
self.playList = [NSMutableArray arrayWithArray:playModels];
|
||||
self.littleGameList = [NSMutableArray arrayWithArray:littleGameModels];
|
||||
[self onRoomUpdate];
|
||||
return nil;
|
||||
}] subscribeError:^(NSError * _Nullable error) {}];
|
||||
|
||||
@@ -179,6 +191,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
}
|
||||
roomUid:roomUid];
|
||||
}
|
||||
|
||||
-(void)dealWithData{
|
||||
self.isLoadActivity = YES;
|
||||
self.pi_cycleScrollView.hidden = NO;
|
||||
@@ -216,6 +229,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
[self.pi_cycleScrollView setAutoScroll:NO];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setRedPacketList:(NSMutableArray *)redPacketList{
|
||||
_redPacketList = redPacketList;
|
||||
self.redPacketView.redPacketList = redPacketList;
|
||||
@@ -224,28 +238,61 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
}
|
||||
}
|
||||
#pragma mark - RoomGuestDelegat
|
||||
- (void)updateConfigEntranceButtons:(RoomInfoModel *)roomInfo {
|
||||
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
|
||||
if (model) {
|
||||
@kWeakify(self);
|
||||
if (model.icon2Url.length > 0) {
|
||||
NetImageView *loader = [[NetImageView alloc] init];
|
||||
[loader loadImageWithUrl:model.icon2Url
|
||||
completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
@kStrongify(self);
|
||||
[self.gambleMenuButton setImage:image forState:UIControlStateNormal];
|
||||
}];
|
||||
}
|
||||
|
||||
if (model.icon1Url.length > 0) {
|
||||
NetImageView *loader = [[NetImageView alloc] init];
|
||||
[loader loadImageWithUrl:model.icon1Url
|
||||
completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
@kStrongify(self);
|
||||
[self.configEntranceMenuButton setImage:image forState:UIControlStateNormal];
|
||||
self.configEntranceMenuButton.hidden = NO;
|
||||
} fail:^(NSError * _Nonnull error) {
|
||||
self.configEntranceMenuButton.hidden = YES;
|
||||
}];
|
||||
} else {
|
||||
[self.configEntranceMenuButton removeFromSuperview];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)onRoomUpdate {
|
||||
RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo;
|
||||
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
|
||||
|
||||
[self updateConfigEntranceButtons:roomInfo];
|
||||
|
||||
if (roomInfo.type == RoomType_Anchor || roomInfo.roomModeType == RoomModeType_Open_Blind) {
|
||||
self.gambleMenuButton.hidden = YES;
|
||||
self.pkMenuButton.hidden = YES;
|
||||
} else {
|
||||
self.gambleMenuButton.hidden = NO;
|
||||
self.gambleMenuButton.hidden = self.playList.count > 0 ? NO : YES;
|
||||
self.pkMenuButton.hidden = NO;
|
||||
}
|
||||
|
||||
if (roomInfo.roomModeType != RoomModeType_Open_PK_Mode) {
|
||||
[self.pkMenuButton removeFromSuperview];
|
||||
[self.stackView insertArrangedSubview:self.gambleMenuButton atIndex:0];
|
||||
} else {
|
||||
[self.gambleMenuButton removeFromSuperview];
|
||||
[self.stackView addArrangedSubview:self.pkMenuButton];
|
||||
}
|
||||
|
||||
self.redPacketView.type = roomInfo.type;
|
||||
if (roomInfo.type == RoomType_MiniGame) {
|
||||
self.redPacketView.hidden = YES;
|
||||
[self.gambleMenuButton removeFromSuperview];
|
||||
|
||||
[self.pi_cycleScrollView removeFromSuperview];
|
||||
[self.stackView insertArrangedSubview:self.gambleMenuButton atIndex:0];
|
||||
[self.stackView addArrangedSubview:self.pi_cycleScrollView];
|
||||
[self.gambleMenuButton bringSubviewToFront:self.stackView];
|
||||
if (self.isLoadActivity) {
|
||||
@@ -384,31 +431,22 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
// [fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
|
||||
[[XCCurrentVCStackManager shareManager].getCurrentVC.view addSubview:fairyVC.view];
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
|
||||
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
|
||||
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
}completion:^(BOOL finished) {
|
||||
|
||||
}];
|
||||
}else {
|
||||
if (info.skipType == ActivitySkipType_Room) {
|
||||
[self.hostDelegate exitRoom];
|
||||
|
||||
[XPRoomViewController openRoom:info.skipContent viewController:kWindow.rootViewController];
|
||||
|
||||
|
||||
} else if(info.skipType == ActivitySkipType_Web) {
|
||||
|
||||
PIRoomActivityWebView * webView = [[PIRoomActivityWebView alloc]initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight)];
|
||||
webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
|
||||
webView.url = info.skipContent;
|
||||
webView.infoList = inftList;
|
||||
[kWindow addSubview:webView];
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
webView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
}];
|
||||
|
||||
|
||||
PIRoomActivityWebView * webView = [[PIRoomActivityWebView alloc]initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight)];
|
||||
webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
|
||||
webView.url = info.skipContent;
|
||||
webView.infoList = inftList;
|
||||
[kWindow addSubview:webView];
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
webView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -471,22 +509,16 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
|
||||
if (info.skipType == ActivitySkipType_Room) {
|
||||
[self.hostDelegate exitRoom];
|
||||
|
||||
[XPRoomViewController openRoom:info.skipContent viewController:kWindow.rootViewController];
|
||||
|
||||
|
||||
} else if(info.skipType == ActivitySkipType_Web) {
|
||||
|
||||
PIRoomActivityWebView * webView = [[PIRoomActivityWebView alloc]initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight)];
|
||||
webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
|
||||
webView.url = info.skipContent;
|
||||
webView.infoList = inftList;
|
||||
[kWindow addSubview:webView];
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
webView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
}];
|
||||
|
||||
|
||||
PIRoomActivityWebView * webView = [[PIRoomActivityWebView alloc]initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight)];
|
||||
webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
|
||||
webView.url = info.skipContent;
|
||||
webView.infoList = inftList;
|
||||
[kWindow addSubview:webView];
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
webView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -551,6 +583,55 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
[self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (void)didTapConfigEntranceButton {
|
||||
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
|
||||
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
|
||||
if (!model) {
|
||||
return;
|
||||
}
|
||||
if (model.skipUrl.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (model.skipType) {
|
||||
case 1: {
|
||||
XPWebViewController *vc = [[XPWebViewController alloc]init];
|
||||
vc.url = model.skipUrl;
|
||||
[self.hostDelegate.getCurrentNav pushViewController:vc animated:YES];
|
||||
}
|
||||
break;
|
||||
case 2: {
|
||||
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];
|
||||
[self.hostDelegate.getSuperView bringSubviewToFront:animationView];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)didTapPKMenuButton {
|
||||
[self.hostDelegate showPKPanel];
|
||||
}
|
||||
@@ -667,17 +748,37 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
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;
|
||||
b.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10);
|
||||
b.hidden = YES;
|
||||
_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;
|
||||
b.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10);
|
||||
b.hidden = YES;
|
||||
_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;
|
||||
b.hidden = YES;
|
||||
_pkMenuButton = b;
|
||||
}
|
||||
|
@@ -39,8 +39,10 @@
|
||||
- (void)setModel:(ActivityInfoModel *)model{
|
||||
_model = model;
|
||||
_gameView.image = nil;
|
||||
@kWeakify(self);
|
||||
[_gameView loadImageWithUrl:_model.icon completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
self.gameView.image = image;
|
||||
@kStrongify(self);
|
||||
self.gameView.image = image;
|
||||
}];
|
||||
_textView.text = _model.name;
|
||||
}
|
||||
@@ -53,7 +55,9 @@
|
||||
- (void)setLittleGameModel:(LittleGameInfoModel *)littleGameModel{
|
||||
_littleGameModel = littleGameModel;
|
||||
_gameView.image = nil;
|
||||
@kWeakify(self);
|
||||
[_gameView loadImageWithUrl:littleGameModel.pic2 completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
@kStrongify(self);
|
||||
self.gameView.image = image;
|
||||
}];
|
||||
_textView.text = littleGameModel.name;
|
||||
@@ -65,6 +69,7 @@
|
||||
NetImageConfig *config = [NetImageConfig new];
|
||||
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
|
||||
_gameView = [[NetImageView alloc]initWithConfig:config];
|
||||
_gameView.contentMode = UIViewContentModeScaleToFill;
|
||||
_gameView.layer.cornerRadius = kGetScaleWidth(6);
|
||||
_gameView.layer.masksToBounds = YES;
|
||||
}
|
||||
|
@@ -81,76 +81,28 @@
|
||||
}
|
||||
|
||||
-(void)getGameData{
|
||||
// NSMutableArray *resourceList = [self.hostDelegate getPlayList];
|
||||
// if(resourceList.count > 0){
|
||||
// self.gameView.playList = resourceList;
|
||||
//// [self updateGamePlayList:resourceList];
|
||||
// return;
|
||||
// }
|
||||
NSMutableArray *resourceList = [self.hostDelegate getPlayList];
|
||||
if(resourceList.count > 0){
|
||||
self.gameView.playList = resourceList;
|
||||
return;
|
||||
}
|
||||
|
||||
NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId];
|
||||
@kWeakify(self);
|
||||
[Api getPlayList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
@kStrongify(self);
|
||||
NSArray <ActivityInfoModel *>* array = [ActivityInfoModel modelsWithArray:data.data];
|
||||
// NSMutableArray *tA = [array mutableCopy];
|
||||
// [tA addObjectsFromArray:array];
|
||||
// [tA addObjectsFromArray:array];
|
||||
// [tA addObjectsFromArray:array];
|
||||
// [tA addObjectsFromArray:array];
|
||||
|
||||
self.gameView.playList = [array mutableCopy];
|
||||
// [self updateGamePlayList:array];
|
||||
self.gameView.playList = [[ActivityInfoModel modelsWithArray:data.data] mutableCopy];
|
||||
}
|
||||
} roomId:roomId];
|
||||
}
|
||||
|
||||
- (void)updateGamePlayList:(NSArray *)array {
|
||||
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:array];
|
||||
|
||||
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
if (uid.length > 0) {
|
||||
BOOL meIsSuperAdmin = NO;
|
||||
for (GuildSuperAdminInfoModel *managerInfo in self.hostDelegate.getRoomSuperAdminList) {
|
||||
if ([managerInfo.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
|
||||
meIsSuperAdmin = YES;
|
||||
break;
|
||||
}
|
||||
}
|
||||
NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
|
||||
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
|
||||
request.roomId = roomId;
|
||||
request.userIds = @[uid];
|
||||
@kWeakify(self);
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
|
||||
@kStrongify(self);
|
||||
if (error == nil) {
|
||||
NIMChatroomMember * member = members.firstObject;
|
||||
BOOL isCreator = member.type == NIMChatroomMemberTypeCreator;
|
||||
BOOL isManager = member.type == NIMChatroomMemberTypeManager;
|
||||
|
||||
if (isCreator &&
|
||||
roomInfo.type != RoomType_MiniGame) {
|
||||
XPRoomMoreItemModel *pkModel = [self createCrossRoomPKModel:roomInfo];
|
||||
if(roomInfo.type != RoomType_Anchor && pkModel){
|
||||
[tempArray insertObject:[self createCrossRoomPKModel:roomInfo] atIndex:0];
|
||||
}
|
||||
}
|
||||
if ((isCreator || isManager || meIsSuperAdmin) &&
|
||||
roomInfo.type != RoomType_MiniGame &&
|
||||
roomInfo.type != RoomType_Anchor ) {
|
||||
XPRoomMoreItemModel *pkModel = [self createRoomPKModel:roomInfo];
|
||||
if (pkModel) {
|
||||
[tempArray insertObject:[self createRoomPKModel:roomInfo] atIndex:0];
|
||||
}
|
||||
}
|
||||
}
|
||||
self.gameView.playList = tempArray;
|
||||
}];
|
||||
}
|
||||
|
||||
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:@[
|
||||
[self createRoomPKModel:roomInfo],
|
||||
[self createCrossRoomPKModel:roomInfo]
|
||||
]];
|
||||
self.gameView.playList = tempArray;
|
||||
}
|
||||
|
||||
|
@@ -75,6 +75,9 @@ static const NSInteger kItemsPerRow = 5;
|
||||
}
|
||||
|
||||
- (void)updateViewHeightWithItemCount:(NSInteger)count {
|
||||
if (count == 0) {
|
||||
return;
|
||||
}
|
||||
NSInteger lineNum = MIN(3, (count + kItemsPerRow - 1)/kItemsPerRow);
|
||||
|
||||
if (lineNum == 1) {
|
||||
|
@@ -23,6 +23,7 @@
|
||||
#import "MicroStateModel.h"
|
||||
#import "RoomInfoModel.h"
|
||||
#import "AttachmentModel.h"
|
||||
#import "GuildSuperAdminInfoModel.h"
|
||||
///View
|
||||
#import "XPRoomSendTextView.h"
|
||||
#import "XPSendGiftView.h"
|
||||
@@ -34,6 +35,7 @@
|
||||
#import "XPRoomMessageBubbleView.h"
|
||||
#import "MSRoomMenuGameVC.h"
|
||||
#import "SVGA.h"
|
||||
|
||||
@interface XPRoomMenuContainerView ()<XPRoomMessageBubbleViewDelegate>
|
||||
///滚动的容器
|
||||
@property (nonatomic,strong) UIScrollView *scrollView;
|
||||
@@ -210,7 +212,7 @@
|
||||
}
|
||||
case XPRoomMenuItemType_PK:
|
||||
{
|
||||
MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate roomMenuType:MSRoomMenuTypePK];
|
||||
MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc] initWithDelegate:self.delegate roomMenuType:MSRoomMenuTypePK];
|
||||
vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
||||
[self.delegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
|
||||
break;
|
||||
@@ -401,9 +403,21 @@
|
||||
[self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateNormal];
|
||||
[self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateSelected];
|
||||
|
||||
#if RELEASE
|
||||
self.gameButton.hidden = self.delegate.getUserInfo.uid != roomInfo.uid;
|
||||
#endif
|
||||
// MARK: 房主 or 超管可以看到按钮
|
||||
self.baiShunGameButton.hidden = YES;
|
||||
self.pkButton.hidden = YES;
|
||||
if ([AccountInfoStorage instance].getUid.integerValue == roomInfo.uid) {
|
||||
self.baiShunGameButton.hidden = NO;
|
||||
self.pkButton.hidden = NO;
|
||||
} else {
|
||||
for (GuildSuperAdminInfoModel *managerInfo in self.delegate.getRoomSuperAdminList) {
|
||||
if ([managerInfo.uid isEqualToString:[AccountInfoStorage instance].getUid]) {
|
||||
self.baiShunGameButton.hidden = NO;
|
||||
self.pkButton.hidden = NO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.arrangeMicButton.hidden = roomInfo.roomModeType != RoomModeType_Open_Micro_Mode;
|
||||
if (roomInfo.roomModeType == RoomModeType_Open_Blind || roomInfo.roomModeType == RoomModeType_Open_PK_Mode || roomInfo.roomModeType == RoomModeType_Open_Micro_Mode) {
|
||||
|
@@ -720,7 +720,7 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
|
||||
}];
|
||||
|
||||
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(115);
|
||||
// make.height.mas_equalTo(115);
|
||||
make.trailing.mas_equalTo(self.view);
|
||||
make.bottom.mas_equalTo(self.quickMessageContainerView.mas_top).offset(-5);
|
||||
make.width.mas_equalTo(87);
|
||||
@@ -1454,7 +1454,9 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
|
||||
if (self.roomInfo.valid) { // 房间有效,直接进入房间
|
||||
if (self.roomInfo.roomPwd.length > 0 && self.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue && [XPRoomMiniManager shareManager].getRoomInfo.uid != self.roomUid.integerValue) {//进房密码的情况
|
||||
if (!self.isRequestSuperAdmin) {
|
||||
@kWeakify(self);
|
||||
[Api getRoomSuperAdminList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
@kStrongify(self);
|
||||
NSArray<GuildSuperAdminInfoModel *> * array = [GuildSuperAdminInfoModel modelsWithArray:data.data];
|
||||
self.superMangerList = array;
|
||||
[self handleSuperManagerEnterAnchorRoom:self.roomInfo];
|
||||
|
@@ -544,7 +544,6 @@
|
||||
[self createBigPrizeAnimation:prizeModel];
|
||||
}
|
||||
[self.animationListB addObject:prizeModel];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1626,9 +1626,6 @@
|
||||
"XPRoomLuckyBigPrizeView0" = "%@运气爆表!在%@ 中开出了价值 %@金币 的 %@";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"XPRoomQuickMessageContainView0" = "你发送的太频繁啦,请稍后再试";
|
||||
|
||||
"AnchorRoomSrollTipView0" = "向上滑动发现更多精彩房间";
|
||||
|
Reference in New Issue
Block a user