diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index 0ef36574..d3cde682 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -150,6 +150,10 @@ 23194DD12AD14BF000649F51 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DC92AD14BF000649F51 /* DDAbstractDatabaseLogger.m */; }; 23194DD22AD14BF000649F51 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DCA2AD14BF000649F51 /* DDFileLogger.m */; }; 23194DD52AD292F200649F51 /* PIPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DD42AD292F200649F51 /* PIPageControl.m */; }; + 2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */; }; + 2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */; }; + 2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */; }; + 2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */; }; 2323E0372ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */; }; 232C43EA2AB15F4100D4B2ED /* XPRoomTarrowBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 232C43E92AB15F4100D4B2ED /* XPRoomTarrowBannerView.m */; }; 232C43EC2AB169EC00D4B2ED /* pi_room_tarrow_banner.svga in Resources */ = {isa = PBXBuildFile; fileRef = 232C43EB2AB169EB00D4B2ED /* pi_room_tarrow_banner.svga */; }; @@ -1799,6 +1803,14 @@ 23194DCB2AD14BF000649F51 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDASLLogger.h; sourceTree = ""; }; 23194DD32AD292F200649F51 /* PIPageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIPageControl.h; sourceTree = ""; }; 23194DD42AD292F200649F51 /* PIPageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIPageControl.m; sourceTree = ""; }; + 2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameView.h; sourceTree = ""; }; + 2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameView.m; sourceTree = ""; }; + 2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameCell.h; sourceTree = ""; }; + 2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameCell.m; sourceTree = ""; }; + 2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameVC.h; sourceTree = ""; }; + 2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameVC.m; sourceTree = ""; }; + 2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameEmptyCell.h; sourceTree = ""; }; + 2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameEmptyCell.m; sourceTree = ""; }; 2323E0352ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "FBSDKSettings+PISDKSettings.h"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.h"; sourceTree = SOURCE_ROOT; }; 2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "FBSDKSettings+PISDKSettings.m"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.m"; sourceTree = SOURCE_ROOT; }; 232C43E82AB15F4100D4B2ED /* XPRoomTarrowBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTarrowBannerView.h; sourceTree = ""; }; @@ -9911,6 +9923,14 @@ E8EE827C272B9A2300A17217 /* XPRoomSendTextView.m */, E8AEAEEE27141C430017FCE0 /* XPRoomMenuContainerView.h */, E8AEAEEF27141C430017FCE0 /* XPRoomMenuContainerView.m */, + 2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */, + 2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */, + 2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */, + 2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */, + 2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */, + 2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */, + 2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */, + 2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */, ); path = MenuContainerView; sourceTree = ""; @@ -11108,6 +11128,7 @@ E81061032987CFCE00B772F0 /* MessageSkillCardModel.m in Sources */, 9BD9A18727A120FD004186FE /* XPMineVisitorUnReadModel.m in Sources */, E85E7BAD2A4EC99300B6D00A /* XPMineGiveDiamondDetailsCell.m in Sources */, + 2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */, E824543D26F58C3A00BE8163 /* XPLoginBindSuccessView.m in Sources */, E85E7B282A4EB0D300B6D00A /* XPClanMenuView.m in Sources */, 9BE01AF72893E7F500B50299 /* XPNewUserRechargeCollectionViewCell.m in Sources */, @@ -11347,6 +11368,7 @@ 238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */, 9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */, E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */, + 2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */, 9B32A04728881845002009D2 /* XPRoomTagListView.m in Sources */, E85E7B1D2A4EB0D200B6D00A /* XPMineClanIncomeStatisViewController.m in Sources */, 189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */, @@ -11648,6 +11670,7 @@ 236B2E592AA18E13003967A8 /* XPMIneGameCollectionViewCell.m in Sources */, 9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */, E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */, + 2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */, 238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */, 9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */, 233423CA2AAEE97500B1253F /* XPCandyTreeConfirmBuyView.m in Sources */, @@ -12003,6 +12026,7 @@ E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */, E85E7B362A4EB0D300B6D00A /* XPClanRoomCollectionViewCell.m in Sources */, 18F4043A275E20D900A6C548 /* TRTCRtcImpl.m in Sources */, + 2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */, E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */, 23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */, E87DF4EC2A42CB60009C1185 /* XPSearchListTableViewCell.m in Sources */, diff --git a/YuMi/Appdelegate/AppDelegate.m b/YuMi/Appdelegate/AppDelegate.m index 9ee2b32c..196abe31 100644 --- a/YuMi/Appdelegate/AppDelegate.m +++ b/YuMi/Appdelegate/AppDelegate.m @@ -63,7 +63,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification; [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; [FIRApp configure]; [MobLink setDelegate:self]; - + return YES; } diff --git a/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png b/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png index 17b38b6e..cbc6c067 100644 Binary files a/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png and b/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/Contents.json new file mode 100644 index 00000000..ecda26c0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ms_room_bottom_game_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ms_room_bottom_game_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@2x.png b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@2x.png new file mode 100644 index 00000000..85229810 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@3x.png b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@3x.png new file mode 100644 index 00000000..b5e26a2b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/ms_room_bottom_game_icon.imageset/ms_room_bottom_game_icon@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/Contents.json new file mode 100644 index 00000000..fbaffd24 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ms_room_menu_game@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ms_room_menu_game@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@2x.png b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@2x.png new file mode 100644 index 00000000..e99299d0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@3x.png b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@3x.png new file mode 100644 index 00000000..bd341181 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@3x.png differ diff --git a/YuMi/Global/YUMIConstant.m b/YuMi/Global/YUMIConstant.m index c4483bb9..6f5a13a5 100644 --- a/YuMi/Global/YUMIConstant.m +++ b/YuMi/Global/YUMIConstant.m @@ -66,7 +66,7 @@ NSString * const KeyWithType(Pi_KeyType type) { @(KeyType_PasswordEncode) : @"1ea53d260ecf11e7b56e00163e046a26", @(KeyType_Agora) : @"f8713b6ec98c4c01adaf34cb4fa091b1", @(KeyType_TRTC) : @"1400741885", - @(KeyType_NetEase) : @"1c3b8c6bf8467d8e4c33a004dbec5c94", + @(KeyType_NetEase) : @"79bc37000f4018a2a24ea9dc6ca08d32", @(keyType_YiDunBussinessId) : @"yinyouApnsDebug", @(KeyType_FacePwdEncode) : @"1ea53d260ecf11e7b56e00163e046a26", @(KeyType_SudGameAppID) : @"1578948593831571457", diff --git a/YuMi/Global/YUMIMacroUitls.h b/YuMi/Global/YUMIMacroUitls.h index ccea6232..8727dada 100644 --- a/YuMi/Global/YUMIMacroUitls.h +++ b/YuMi/Global/YUMIMacroUitls.h @@ -53,7 +53,7 @@ isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaIns ///渠道 #define PI_App_Source @"appstore" #define PI_Test_Flight @"TestFlight" - +#define ISTestFlight 0 ///正式环境 #define API_HOST_URL @"https://api.hfighting.com" //#define API_HOST_URL @"https://api.molistar.xyz" diff --git a/YuMi/Modules/YMLogin/View/NewLogin/XPLoginAraeViewController.m b/YuMi/Modules/YMLogin/View/NewLogin/XPLoginAraeViewController.m index 2635b3c3..d8567070 100644 --- a/YuMi/Modules/YMLogin/View/NewLogin/XPLoginAraeViewController.m +++ b/YuMi/Modules/YMLogin/View/NewLogin/XPLoginAraeViewController.m @@ -36,7 +36,7 @@ // 将文件数据化 NSData *data = [[NSData alloc] initWithContentsOfFile:path]; // 对数据进行JSON格式化并返回字典形式 - NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; + NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; NSArray *codeList = [LoginAreaModel modelsWithArray:codeData[@"RECORDS"]]; [self getLocalPlistWithList:codeList]; } diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/XPMineConfirmGiveDiamondView.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/XPMineConfirmGiveDiamondView.m index 8c0fe97e..eb687e41 100644 --- a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/XPMineConfirmGiveDiamondView.m +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/XPMineConfirmGiveDiamondView.m @@ -134,7 +134,7 @@ _titleView.text = [NSString stringWithFormat:YMLocalizedString(@"XPMineConfirmGiveDiamondView1"),_giveDiamondModel.targetNick]; NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@(self.inputDiamonds).stringValue attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium],NSForegroundColorAttributeName:[DJDKMIMOMColor inputTextColor]}]; - UIImage *iconImage = [UIImage imageNamed:@"mine_give_diamone_icon"];; + UIImage *iconImage = [UIImage imageNamed:@"exchange_gold_icon"];; attachment.bounds = CGRectMake(0, roundf(self.numView.font.capHeight - 24)/2.f, 24, 24); attachment.image =iconImage; diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/XPMineGuildListCell.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/XPMineGuildListCell.m index 39741847..571eed33 100644 --- a/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/XPMineGuildListCell.m +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/XPMineGuildListCell.m @@ -309,6 +309,7 @@ [_applyBtn addTarget:self action:@selector(applyAction) forControlEvents:UIControlEventTouchUpInside]; _applyBtn.layer.cornerRadius = kGetScaleWidth(25)/2; _applyBtn.layer.masksToBounds = YES; + _applyBtn.titleLabel.numberOfLines = 2; } return _applyBtn; diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/XPIncomeRecordView.m b/YuMi/Modules/YMMine/View/IncomeRecord/XPIncomeRecordView.m index 35b811fd..7dffb506 100644 --- a/YuMi/Modules/YMMine/View/IncomeRecord/XPIncomeRecordView.m +++ b/YuMi/Modules/YMMine/View/IncomeRecord/XPIncomeRecordView.m @@ -134,7 +134,7 @@ _bgImageView.contentMode = UIViewContentModeScaleAspectFill; _bgImageView.layer.cornerRadius = 10.f; _bgImageView.clipsToBounds = YES; - _bgImageView.image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"income_record_diamond_bg"]: [UIImage imageNamed:@"income_record_gold_bg"]; + _bgImageView.image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"income_record_gold_bg"]:[UIImage imageNamed:@"income_record_diamond_bg"]; } return _bgImageView; } diff --git a/YuMi/Modules/YMMine/View/Noble/View/SubViews/XPNoblePrivilegeContentCell.m b/YuMi/Modules/YMMine/View/Noble/View/SubViews/XPNoblePrivilegeContentCell.m index 2405eb8b..f4e9fd69 100644 --- a/YuMi/Modules/YMMine/View/Noble/View/SubViews/XPNoblePrivilegeContentCell.m +++ b/YuMi/Modules/YMMine/View/Noble/View/SubViews/XPNoblePrivilegeContentCell.m @@ -113,6 +113,8 @@ NobleAuthInfo *info = [self.vipAuthInfos safeObjectAtIndex1:indexPath.row]; if ([self.vipInfo.ownAuthTypes containsObject:@(info.authType)]) { cell.isOwn = YES; + }else{ + cell.isOwn = NO; } cell.vipInfo = info; return cell; diff --git a/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m b/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m index 3ca4354a..9ea7d00f 100644 --- a/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m +++ b/YuMi/Modules/YMNewHome/View/XPHomePartyViewController.m @@ -82,7 +82,7 @@ [self.presenter getHomePersonalRoomList]; }else{ self.page = 1; - [self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:20]; + [self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:50]; } } diff --git a/YuMi/Modules/YMRoom/Model/ActivityInfoModel.h b/YuMi/Modules/YMRoom/Model/ActivityInfoModel.h index 26921fbb..1b810830 100644 --- a/YuMi/Modules/YMRoom/Model/ActivityInfoModel.h +++ b/YuMi/Modules/YMRoom/Model/ActivityInfoModel.h @@ -6,7 +6,7 @@ // #import - +@class ActivityInfoItemModel; NS_ASSUME_NONNULL_BEGIN ///跳转的类型 typedef NS_ENUM(NSInteger, ActivitySkipType) { @@ -32,6 +32,7 @@ typedef NS_ENUM(NSInteger, ActivityType) { @property(nonatomic,copy) NSString *code; @property(nonatomic,copy) NSString *icon; @property(nonatomic,copy) NSString *skipContent; +@property(nonatomic,copy) NSString *name; ///名称 @property (nonatomic,copy) NSString *bannerName; ///外面的活动的图片 @@ -46,6 +47,32 @@ typedef NS_ENUM(NSInteger, ActivityType) { @property (nonatomic, assign)NSInteger showType; ///活动类型 @property (nonatomic,assign) ActivityType activityType; +@property(nonatomic,copy) NSString *ruleValue; +@property(nonatomic,strong) ActivityInfoItemModel *gameModel; +///游戏链接 +@property(nonatomic,copy) NSString *gameUrl; @end + + + +@interface ActivityInfoItemModel : PIBaseModel +///商⼾ id(BAISHUN 提供,商⼾后台可查看) +@property(nonatomic,assign) int64_t appId; +///⽤⼾ userId +@property(nonatomic,copy) NSString *userId; +///商⼾⽣成的认证令牌(⽤于游戏服务器获取⽤⼾信息) +@property(nonatomic,copy) NSString *code; +///房间 ID(不存在,可以传空) +@property(nonatomic,copy) NSString *roomId; +////房间 ID(不存在,可以传空) +@property(nonatomic,copy) NSString *gameMode; +@property(nonatomic,copy) NSString *language; +@property(nonatomic,copy) NSDictionary *gameConfig; +///游戏正式服务器节点101:新加坡(阿⾥云) 201:迪拜(AWS)301:硅⾕ (阿⾥云) 401:法兰克福(阿⾥云) +@property(nonatomic,assign) int gsp; + +///商⼾渠道(BAISHUN 提供,商⼾后台可查看) +@property(nonatomic,copy) NSString *appChannel; +@end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Model/ActivityInfoModel.m b/YuMi/Modules/YMRoom/Model/ActivityInfoModel.m index 2ecc2e77..17631ec9 100644 --- a/YuMi/Modules/YMRoom/Model/ActivityInfoModel.m +++ b/YuMi/Modules/YMRoom/Model/ActivityInfoModel.m @@ -8,5 +8,20 @@ #import "ActivityInfoModel.h" @implementation ActivityInfoModel +- (void)setRuleValue:(NSString *)ruleValue{ + _ruleValue = ruleValue; + id data = [_ruleValue mj_JSONObject]; + if([data isKindOfClass:[NSDictionary class]]){ + NSDictionary *dic = (NSDictionary *)data; + if(dic[@"RESERVE"]!=nil){ + _gameModel = [ActivityInfoItemModel modelWithJSON:dic[@"RESERVE"]]; + } + + } + +} +@end +@implementation ActivityInfoItemModel @end + diff --git a/YuMi/Modules/YMRoom/Model/RoomInfoModel.h b/YuMi/Modules/YMRoom/Model/RoomInfoModel.h index cf8c2d5d..a0fd5ba1 100644 --- a/YuMi/Modules/YMRoom/Model/RoomInfoModel.h +++ b/YuMi/Modules/YMRoom/Model/RoomInfoModel.h @@ -170,6 +170,8 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) { @property(nonatomic,assign) BOOL hasRoomAlbum; //1 厅内红包 2 全服红包 3 厅内红包+全服红包 @property(nonatomic,assign) NSInteger redEnvelopeType; + + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h index 439acf55..b7c06412 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.h @@ -10,7 +10,7 @@ #import "RoomGuestDelegate.h" #import "XPRedPacketModel.h" #import "RoomInfoModel.h" - +#import "ActivityInfoModel.h" typedef void(^OpenRedPacketHandle)(XPRedPacketModel *_Nullable,RoomType type ,BOOL isChangeRoom); @@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN @interface XPRoomActivityContainerView : UIView @property(nonatomic,strong) NSMutableArray *redPacketList; @property(nonatomic,copy)OpenRedPacketHandle openRedPacketHandle; +@property(nonatomic,strong) NSMutableArray *playList; - (instancetype)initWithdelegate:(id)delegate; @end diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m index cd3558b2..843632ef 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m @@ -21,7 +21,7 @@ ///Model #import "UserInfoModel.h" #import "RoomInfoModel.h" -#import "ActivityInfoModel.h" + #import "AttachmentModel.h" #import "FirstRechargeModel.h" #import "TreasureFairyLimitModel.h" @@ -59,7 +59,6 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; @property (nonatomic,weak) idhostDelegate; ///房间活动的列表 @property (nonatomic,strong) NSMutableArray *activityList; -@property(nonatomic,strong) NSMutableArray *playList; ///是否加载了活动 @property (nonatomic,assign) BOOL isLoadActivity; @property(nonatomic,assign) BOOL isShowChoosePlayView; @@ -180,9 +179,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; if(self.playList.count > 0){ ActivityInfoModel *playModel = self.playList.firstObject; self.clickPlayView.model = playModel; - if(self.isShowChoosePlayView == NO){ - self.clickPlayView.hidden = NO; - } +// if(self.isShowChoosePlayView == NO){ +// self.clickPlayView.hidden = NO; +// } }else{ self.clickPlayView.hidden = YES; } @@ -196,11 +195,11 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; NSMutableArray *list = [NSMutableArray array]; - [list addObjectsFromArray:self.playList]; + [list addObjectsFromArray:self.activityList]; NSMutableArray *picArray = [NSMutableArray array]; for (ActivityInfoModel *model in list) { - [picArray addObject:model.icon]; + [picArray addObject:model.icon ?: @""]; } self.pi_cycleScrollView.imageURLStringsGroup = picArray; if (self.activityList.count > 1) { @@ -257,9 +256,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; if(self.playList.count > 0){ ActivityInfoModel *playModel = self.playList.firstObject; self.clickPlayView.model = playModel; - if(self.isShowChoosePlayView == NO){ - self.clickPlayView.hidden = NO; - } +// if(self.isShowChoosePlayView == NO){ +// self.clickPlayView.hidden = NO; +// } }else{ self.clickPlayView.hidden = YES; } @@ -613,7 +612,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; [UIView animateWithDuration:0.1 animations:^{ view.frame = isMSRTL() ? CGRectMake(-201, y, 201, 124) : CGRectMake(KScreenWidth, y, 201, 124); }completion:^(BOOL finished) { - self.clickPlayView.hidden = NO; +// self.clickPlayView.hidden = NO; [view removeFromSuperview]; }]; } diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m index 1838c760..4558f1bd 100644 --- a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m @@ -305,21 +305,19 @@ - (void)configLittleGameState { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; if (roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.roomModeType != RoomModeType_Open_Blind && roomInfo.roomModeType != RoomModeType_Open_PK_Mode && roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode && roomInfo.roomModeType != RoomModeType_Open_Micro_Mode && !roomInfo.leaveMode && roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { -// if (!self.gameListView.superview) { -// [self addSubview:self.gameListView]; -// [self.gameListView mas_makeConstraints:^(MASConstraintMaker *make) { -// make.trailing.mas_equalTo(self).offset(-85); -// make.top.mas_equalTo(self).offset(kNavigationHeight - 14 - 11 - 19.0 / 2.0); -// }]; -// } -// self.gameListView.mgId = roomInfo.mgId > 0 ? [NSString stringWithFormat:@"%lld", roomInfo.mgId] : @"0"; -// } else { -// if (self.gameListView.superview) { -// [self.gameListView removeFromSuperview]; -// } + if (!self.gameListView.superview) { + [self addSubview:self.gameListView]; + [self.gameListView mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(self).offset(-85); + make.top.mas_equalTo(self).offset(kNavigationHeight - 14 - 11 - 19.0 / 2.0); + }]; + } + self.gameListView.mgId = roomInfo.mgId > 0 ? [NSString stringWithFormat:@"%lld", roomInfo.mgId] : @"0"; + } else { if (self.gameListView.superview) { [self.gameListView removeFromSuperview]; } + } } //自己是否在游戏中 diff --git a/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.h b/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.h index 0a3d33ba..c7783322 100644 --- a/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.h +++ b/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.h @@ -6,7 +6,7 @@ // #import - +@class LittleGameInfoItemModel; NS_ASSUME_NONNULL_BEGIN @interface LittleGameInfoModel : PIBaseModel @@ -18,6 +18,12 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy) NSString *pic; ///是否选择 @property (nonatomic,assign) BOOL isSelect; +///游戏类型 ///SUD/BAISHUN +@property(nonatomic,copy) NSString *gameType; +@property(nonatomic,copy) NSString *configJson; +@property(nonatomic,strong) LittleGameInfoItemModel *gameItem; @end + + NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.m b/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.m index ad213d0a..79ec4df7 100644 --- a/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.m +++ b/YuMi/Modules/YMRoom/View/LittleGame/Model/LittleGameInfoModel.m @@ -10,3 +10,7 @@ @implementation LittleGameInfoModel @end + + + + diff --git a/YuMi/Modules/YMRoom/View/LittleGame/View/XPLittleGameRoomOpenView.m b/YuMi/Modules/YMRoom/View/LittleGame/View/XPLittleGameRoomOpenView.m index b0352647..a4263e7c 100644 --- a/YuMi/Modules/YMRoom/View/LittleGame/View/XPLittleGameRoomOpenView.m +++ b/YuMi/Modules/YMRoom/View/LittleGame/View/XPLittleGameRoomOpenView.m @@ -61,6 +61,7 @@ [self initHttpRequest]; [self initSubViews]; [self initSubViewConstraints]; + } return self; } @@ -294,7 +295,6 @@ [_gameRoomButton setImage:[UIImage getLanguageImage:@"room_little_game_game_room_select"] forState:UIControlStateSelected]; [_gameRoomButton addTarget:self action:@selector(gameRoomButtonAction:) forControlEvents:UIControlEventTouchUpInside]; _gameRoomButton.selected = NO; - _gameRoomButton.hidden = YES; } return _gameRoomButton; } diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.h b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.h new file mode 100644 index 00000000..3c55ad17 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.h @@ -0,0 +1,16 @@ +// +// MSRoomMenuGameCell.h +// YuMi +// +// Created by duoban on 2024/4/29. +// + +#import +#import "ActivityInfoModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MSRoomMenuGameCell : UICollectionViewCell +@property(nonatomic,strong) ActivityInfoModel *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.m new file mode 100644 index 00000000..59ff63ae --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameCell.m @@ -0,0 +1,67 @@ +// +// MSRoomMenuGameCell.m +// YuMi +// +// Created by duoban on 2024/4/29. +// + +#import "MSRoomMenuGameCell.h" +@interface MSRoomMenuGameCell() +@property(nonatomic,strong) NetImageView *gameView; +@property(nonatomic,strong) UILabel *textView; +@end +@implementation MSRoomMenuGameCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.gameView]; + [self.contentView addSubview:self.textView]; +} +-(void)installConstraints{ + [self.gameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(20)); + make.width.height.mas_equalTo(kGetScaleWidth(56)); + make.centerX.equalTo(self.contentView); + }]; + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.gameView.mas_bottom).mas_offset(kGetScaleWidth(10)); + + make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(5)); + }]; +} +- (void)setModel:(ActivityInfoModel *)model{ + _model = model; + _gameView.image = nil; + [_gameView loadImageWithUrl:_model.icon completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { + self.gameView.image = image; + }]; + _textView.text = _model.name; + + +} +#pragma mark - 懒加载 +- (NetImageView *)gameView{ + if(!_gameView){ + NetImageConfig *config = [NetImageConfig new]; + config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder]; + _gameView = [[NetImageView alloc]initWithConfig:config]; + _gameView.layer.cornerRadius = kGetScaleWidth(6); + _gameView.layer.masksToBounds = YES; + } + return _gameView; +} +- (UILabel *)textView{ + if(!_textView){ + _textView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor whiteColor]]; + _textView.textAlignment = NSTextAlignmentCenter; + _textView.numberOfLines = 2; + } + return _textView; +} +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.h b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.h new file mode 100644 index 00000000..7ba3a0ad --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.h @@ -0,0 +1,16 @@ +// +// MSRoomMenuGameEmptyCell.h +// YuMi +// +// Created by duoban on 2024/4/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MSRoomMenuGameEmptyCell : UICollectionViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.m new file mode 100644 index 00000000..8004bdbe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameEmptyCell.m @@ -0,0 +1,54 @@ +// +// MSRoomMenuGameEmptyCell.m +// YuMi +// +// Created by duoban on 2024/4/30. +// + +#import "MSRoomMenuGameEmptyCell.h" +@interface MSRoomMenuGameEmptyCell() +@property(nonatomic,strong) UIImageView *iconView; +@property(nonatomic,strong) UILabel *textView; +@end +@implementation MSRoomMenuGameEmptyCell +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + [self.contentView addSubview:self.iconView]; + [self.contentView addSubview:self.textView]; +} +-(void)installConstraints{ + [self.iconView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(101)); + make.height.mas_equalTo(kGetScaleWidth(106)); + make.centerX.equalTo(self.contentView); + make.top.mas_equalTo(kGetScaleWidth(50)); + }]; + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.iconView.mas_bottom).mas_offset(kGetScaleWidth(14)); + make.centerX.equalTo(self.contentView); + }]; +} +#pragma mark - 懒加载 +- (UIImageView *)iconView{ + if(!_iconView){ + _iconView = [UIImageView new]; + _iconView.image = kImage(@"ms_room_bottom_game_icon"); + } + return _iconView; +} +- (UILabel *)textView{ + if(!_textView){ + _textView = [UILabel labelInitWithText:YMLocalizedString(@"XPCandyTreeEmptyableViewCell0") font:kFontRegular(14) textColor:[UIColor whiteColor]]; + } + return _textView; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h new file mode 100644 index 00000000..6c945a71 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h @@ -0,0 +1,17 @@ +// +// MSRoomMenuGameVC.h +// YuMi +// +// Created by duoban on 2024/4/29. +// + +#import "MvpViewController.h" +#import "RoomHostDelegate.h" +#import "RoomGuestDelegate.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MSRoomMenuGameVC : MvpViewController +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m new file mode 100644 index 00000000..bab369f4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m @@ -0,0 +1,155 @@ +// +// MSRoomMenuGameVC.m +// YuMi +// +// Created by duoban on 2024/4/29. +// +#import "Api+Room.h" +#import "MSRoomMenuGameVC.h" +#import "MSRoomMenuGameView.h" +#import "XPTreasureFairyViewController.h" +#import "XPRoomHalfWebView.h" +#import "XPWebViewController.h" +#import "XPCandyTreeViewController.h" +#import "XPSailingViewController.h" +#import "XPRoomViewController.h" +#import "MSRoomGameWebVC.h" +@interface MSRoomMenuGameVC () +@property(nonatomic,strong) MSRoomMenuGameView *gameView; +///host 代理 +@property (nonatomic,weak) idhostDelegate; +@end + +@implementation MSRoomMenuGameVC +-(void)dealloc{ + +} +- (instancetype)initWithDelegate:(id)delegate{ + self = [super init]; + if(self){ + self.hostDelegate = delegate; + } + return self; +} +- (BOOL)isHiddenNavBar { + return YES; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self installUI]; + [self installConstraints]; + [self getGameData]; +} +-(void)getGameData{ + NSMutableArray *playList = [self.hostDelegate getPlayList]; + if(playList.count > 0){ + _gameView.playList = playList; + return; + } + NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId]; + [Api getPlayList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ActivityInfoModel modelsWithArray:data.data]; + self.gameView.playList = [[NSMutableArray alloc]initWithArray:array]; + + } + } roomId:roomId]; +} +-(void)installUI{ + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.gameView]; +} +-(void)installConstraints{ + [self.gameView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} + +#pragma mark- MSRoomMenuGameViewDelegate +- (void)didClickBackBtnAction{ + [self dismissViewControllerAnimated:YES completion:nil]; +} +-(void)ms_didSelectItemAtIndexPath:(ActivityInfoModel *)model{ + self.gameView.hidden = YES; + if ([model.code isEqualToString:@"FIND_LOVE"]) { + [self lookLoveTapRecognizer]; + } else if([model.code isEqualToString:@"NAUTICAL_ADVENTURE"]) { + [self sailTapRecognizer]; + }else if([model.code isEqualToString:@"BAISHUN"]){ + [self clickGameVC:model]; + }else if([model.code isEqualToString:@"SEIZE_TREASURE"]){ + if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){ + XPRoomViewController *vc = (XPRoomViewController *)self.hostDelegate; + XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate]; + fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid]; + fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight); + [vc addChildViewController:fairyVC]; + [fairyVC.navigationController setNavigationBarHidden:YES animated:NO]; + [vc.view addSubview:fairyVC.view]; + [UIView animateWithDuration:0.2 animations:^{ + + fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + + }completion:^(BOOL finished) { + + }]; + } + } else if(model.skipType == ActivitySkipType_Web) { + if(model.showType == ActivityShowType_Half){ + XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init]; + webView.isPlayView = YES; + webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid]; + webView.url = model.skipContent; + [TTPopup popupView:webView style:TTPopupStyleActionSheet]; + return; + } + + XPWebViewController * webVC = [[XPWebViewController alloc] init]; + webVC.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid]; + webVC.url = model.skipContent; + [self.hostDelegate.getCurrentNav pushViewController:webVC animated:YES]; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} +-(void)clickGameVC:(ActivityInfoModel *)model{ + if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){ + MSRoomGameWebVC *vc = [[MSRoomGameWebVC alloc]initWithDelegate:self.hostDelegate gameModel:model]; + vc.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + XPRoomViewController *roomVC = (XPRoomViewController *)self.hostDelegate; + [roomVC addChildViewController:vc]; + [self.hostDelegate.getSuperView addSubview:vc.view]; + } + +} +- (void)lookLoveTapRecognizer { + + if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){ + XPCandyTreeViewController * candyTreeVC = [[XPCandyTreeViewController alloc] initWithDelegate:self.hostDelegate]; + candyTreeVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight); + [self.hostDelegate.getSuperView addSubview:candyTreeVC.view]; + XPRoomViewController *vc = (XPRoomViewController *)self.hostDelegate; + [vc 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 - 懒加载 +- (MSRoomMenuGameView *)gameView{ + if(!_gameView){ + _gameView = [[MSRoomMenuGameView alloc]initWithFrame:CGRectZero]; + _gameView.delegate = self; + } + return _gameView; +} +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.h b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.h new file mode 100644 index 00000000..ea5cda01 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.h @@ -0,0 +1,24 @@ +// +// MSRoomMenuGameView.h +// YuMi +// +// Created by duoban on 2024/4/29. +// + +#import +#import "ActivityInfoModel.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol MSRoomMenuGameViewDelegate + +-(void)didClickBackBtnAction; +-(void)ms_didSelectItemAtIndexPath:(ActivityInfoModel *)model; +@end + + +@interface MSRoomMenuGameView : UIView +@property(nonatomic,strong) NSMutableArray *playList; +@property(nonatomic,weak) iddelegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m new file mode 100644 index 00000000..c94e2ef6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m @@ -0,0 +1,116 @@ +// +// MSRoomMenuGameView.m +// YuMi +// +// Created by duoban on 2024/4/29. +// + +#import "MSRoomMenuGameView.h" +#import "MSRoomMenuGameCell.h" +#import "MSRoomMenuGameEmptyCell.h" +@interface MSRoomMenuGameView() +@property(nonatomic,strong) UIButton *backBtn; +@property(nonatomic,strong) UIView *ms_bgView; +@property(nonatomic,strong) UICollectionView *collectionView; +@end +@implementation MSRoomMenuGameView + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self installUI]; + [self installConstraints]; + } + return self; +} +-(void)installUI{ + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backBtn]; + [self addSubview:self.ms_bgView]; + [self.ms_bgView addSubview:self.collectionView]; +} +-(void)installConstraints{ + [self.backBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.ms_bgView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0)); + make.height.mas_equalTo(kGetScaleWidth(247)); + + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.ms_bgView); + }]; +} +-(void)backBtnAction{ + if (self.delegate && [self.delegate respondsToSelector:@selector(didClickBackBtnAction)]){ + [self.delegate didClickBackBtnAction]; + } +} +-(void)setPlayList:(NSMutableArray *)playList{ + _playList = playList; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self.collectionView reloadData]; + }); +} +#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ + CGFloat width = (KScreenWidth-kGetScaleWidth(6))/5; + return self.playList.count > 0 ? CGSizeMake(width, kGetScaleWidth(100)): CGSizeMake(KScreenWidth, kGetScaleWidth(200)); +} +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + return self.playList.count > 0 ? UIEdgeInsetsMake(0, kGetScaleWidth(3), 0, kGetScaleWidth(3)): UIEdgeInsetsMake(0, 0, 0, 0); +} +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.playList.count > 0 ? self.playList.count : 1; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + if (self.playList.count == 0){ + MSRoomMenuGameEmptyCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameEmptyCell class]) forIndexPath:indexPath]; + return cell; + } + + MSRoomMenuGameCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameCell class]) forIndexPath:indexPath]; + cell.model = [self.playList safeObjectAtIndex1:indexPath.row]; + return cell; +} +-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + if (self.delegate && [self.delegate respondsToSelector:@selector(ms_didSelectItemAtIndexPath:)]){ + [self.delegate ms_didSelectItemAtIndexPath:[self.playList safeObjectAtIndex1:indexPath.row]]; + } +} +#pragma mark - 懒加载 +- (UIButton *)backBtn{ + if(!_backBtn){ + _backBtn = [UIButton new]; + [_backBtn addTarget:self action:@selector(backBtnAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _backBtn; +} +- (UIView *)ms_bgView{ + if(!_ms_bgView){ + _ms_bgView = [UIView new]; + _ms_bgView.backgroundColor = UIColorFromRGB(0x2D1E4D); + [_ms_bgView setCornerWithLeftTopCorner:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, kGetScaleWidth(247))]; + } + return _ms_bgView; +} +- (UICollectionView *)collectionView{ + if (!_collectionView) { + MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init]; + + + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 0; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[MSRoomMenuGameCell class] forCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameCell class])]; + [_collectionView registerClass:[MSRoomMenuGameEmptyCell class] forCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameEmptyCell class])]; + + } + return _collectionView; +} +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h index abe4643c..ad4fa5b4 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h @@ -19,6 +19,7 @@ typedef NS_ENUM(NSInteger, XPRoomMenuItemType) { XPRoomMenuItemType_ArrangeMic,///排麦 XPRoomMenuItemType_Gift,///礼物 XPRoomMenuItemType_Noble,///VIP + MSRoomMenuItemType_Game,///VIP }; @interface XPRoomMenuItem : NSObject diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m index f5b1ca01..1f4831ad 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m @@ -32,6 +32,7 @@ #import "XPRoomFaceViewController.h" #import "XPRoomHalfMessageView.h" #import "XPRoomMessageBubbleView.h" +#import "MSRoomMenuGameVC.h" @interface XPRoomMenuContainerView () ///滚动的容器 @@ -56,6 +57,9 @@ @property (nonatomic,strong) UIButton *arrangeMicButton; ///VIP @property (nonatomic,strong) UIButton *nobleButton; +///游戏、活动 +@property(nonatomic,strong) UIButton *gameButton; + ///输入框 @property (nonatomic,strong) XPRoomSendTextView *inputTextView; @property (nonatomic,strong) XPRoomMessageBubbleView *miniMessageView; @@ -155,6 +159,7 @@ break; case XPRoomMenuItemType_More: { XPRoomMoreMenuViewController * moreMenuVC = [[XPRoomMoreMenuViewController alloc] initWithDelegate:self.delegate]; + [self.delegate.getCurrentNav presentViewController:moreMenuVC animated:YES completion:nil]; } break; @@ -194,6 +199,14 @@ [self.delegate.getCurrentNav pushViewController:nobleVC animated:YES]; } break; + case MSRoomMenuItemType_Game: + { + MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate]; + vc.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.delegate.getCurrentNav presentViewController:vc animated:YES completion:nil]; + break; + } + default: break; } @@ -216,6 +229,7 @@ - (void)initSubViews { [self addSubview:self.scrollView]; [self addSubview:self.giftButton]; + [self addSubview:self.gameButton]; [self.scrollView addSubview:self.stackView]; @@ -247,7 +261,7 @@ - (void)initSubViewConstraints { [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.mas_equalTo(self).offset(15); - make.trailing.mas_equalTo(self.giftButton.mas_leading).offset(-10); + make.trailing.mas_equalTo(self.gameButton.mas_leading).offset(-10); make.top.mas_equalTo(self).offset(8); make.bottom.mas_equalTo(self).offset(-12 - kSafeAreaBottomHeight); }]; @@ -265,7 +279,11 @@ make.trailing.mas_equalTo(self).offset(-20); make.size.mas_equalTo(CGSizeMake(35, 35)); }]; - + [self.gameButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.scrollView); + make.trailing.mas_equalTo(self).offset(-64); + make.size.mas_equalTo(CGSizeMake(32, 32)); + }]; } - (NSArray *)configGiftUsers:(NSMutableDictionary *)queue { @@ -597,5 +615,14 @@ } return _miniMessageView; } - +- (UIButton *)gameButton{ + if(!_gameButton){ + _gameButton = [UIButton new]; + [_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateNormal]; + [_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateSelected]; + _gameButton.tag = MSRoomMenuItemType_Game; + [_gameButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _gameButton; +} @end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Presenter/XPMoreMenuPresenter.m b/YuMi/Modules/YMRoom/View/MoreView/Presenter/XPMoreMenuPresenter.m index d823cc72..744fbb59 100644 --- a/YuMi/Modules/YMRoom/View/MoreView/Presenter/XPMoreMenuPresenter.m +++ b/YuMi/Modules/YMRoom/View/MoreView/Presenter/XPMoreMenuPresenter.m @@ -176,9 +176,9 @@ } // [array addObject:inviteFriend]; [array addObject:trumpet]; - if (isCreator && roomInfo.type != RoomType_Anchor && roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.isPermitRoom != PermitRoomType_YoungerStar) { - [array addObject:releaseRadio]; - } +// if (isCreator && roomInfo.type != RoomType_Anchor && roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.isPermitRoom != PermitRoomType_YoungerStar) { +// [array addObject:releaseRadio]; +// } [array addObject:giftEffect]; [array addObject:roomSetting]; [array addObject:messageScreen]; diff --git a/YuMi/Modules/YMRoom/View/RoomHostDelegate.h b/YuMi/Modules/YMRoom/View/RoomHostDelegate.h index 6a25d95a..3aef24d4 100644 --- a/YuMi/Modules/YMRoom/View/RoomHostDelegate.h +++ b/YuMi/Modules/YMRoom/View/RoomHostDelegate.h @@ -40,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN -(BOOL)getIsMiniEnter; ///屏蔽 -(void)requesstShieldingAction; +-(NSMutableArray *)getPlayList;; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m b/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m index 1f528048..e97ab233 100644 --- a/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m +++ b/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m @@ -563,9 +563,9 @@ XPWebViewController * webVC = [[XPWebViewController alloc] init]; webVC.roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; if (self.roomInfo.leaveMode && self.userInfo.uid == self.roomInfo.uid) { ///离开模式 - webVC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid ? self.microModel.userInfo.uid : self.roomInfo.uid]; + webVC.url = [NSString stringWithFormat:@"%@?uid=%ld&roomUid=%ld", URLWithType(kRoomCharmRankURL), (self.microModel.userInfo.uid ? self.microModel.userInfo.uid : self.roomInfo.uid),(long)self.roomInfo.uid]; } else { - webVC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid]; + webVC.url = [NSString stringWithFormat:@"%@?uid=%ld&roomUid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid,self.roomInfo.uid]; } [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:webVC animated:YES]; } diff --git a/YuMi/Modules/YMRoom/View/XPRoomViewController.m b/YuMi/Modules/YMRoom/View/XPRoomViewController.m index e7d67deb..7ebb7dc6 100644 --- a/YuMi/Modules/YMRoom/View/XPRoomViewController.m +++ b/YuMi/Modules/YMRoom/View/XPRoomViewController.m @@ -1789,7 +1789,9 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出 - (UserInfoModel *)getUserInfo { return self.userInfo; } - +-(NSMutableArray *)getPlayList{ + return self.activityContainerView.playList; +} - (void)exitRoom { [self.stageView exitRoom]; [self.menuContainerView menuResignFirstResponder]; diff --git a/YuMi/Modules/YMWeb/MSRoomGameWebVC.h b/YuMi/Modules/YMWeb/MSRoomGameWebVC.h index 2b8e619a..91562eb2 100644 --- a/YuMi/Modules/YMWeb/MSRoomGameWebVC.h +++ b/YuMi/Modules/YMWeb/MSRoomGameWebVC.h @@ -7,10 +7,12 @@ #import "BaseViewController.h" #import +#import "RoomHostDelegate.h" +#import "ActivityInfoModel.h" NS_ASSUME_NONNULL_BEGIN @interface MSRoomGameWebVC : BaseViewController - +- (instancetype)initWithDelegate:(id)delegate gameModel:(ActivityInfoModel *)gameModel; @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMWeb/MSRoomGameWebVC.m b/YuMi/Modules/YMWeb/MSRoomGameWebVC.m index bbaa1035..bc79b70f 100644 --- a/YuMi/Modules/YMWeb/MSRoomGameWebVC.m +++ b/YuMi/Modules/YMWeb/MSRoomGameWebVC.m @@ -6,6 +6,10 @@ // #import "MSRoomGameWebVC.h" +#import "LittleGameInfoModel.h" +#import "RoomInfoModel.h" +#import "XPIAPRechargeViewController.h" + @interface MSWeakWebViewScriptMessageDelegate : NSObject //WKScriptMessageHandler 这个协议类专门用来处理JavaScript调用原生OC的方法 @@ -46,11 +50,24 @@ NSString * const kMSGameLoaded = @"gameLoaded"; @property (strong, nonatomic) WKWebView *webview; @property (strong, nonatomic) UIProgressView *progressView; @property (nonatomic, strong) WKUserContentController *ms_userContentController; +@property (nonatomic,weak) id hostDelegate; +@property(nonatomic,strong) ActivityInfoModel *gameModel; @end @implementation MSRoomGameWebVC - +- (instancetype)initWithDelegate:(id)delegate gameModel:(ActivityInfoModel *)gameModel +{ + self = [super init]; + if (self) { + self.hostDelegate = delegate; + self.gameModel = gameModel; + } + return self; +} +- (BOOL)isHiddenNavBar { + return YES; +} - (void)viewDidLoad { [super viewDidLoad]; [self installUI]; @@ -80,11 +97,7 @@ NSString * const kMSGameLoaded = @"gameLoaded"; //获取当前屏幕的宽⾼ int ScreenHeight = [[UIScreen mainScreen] bounds].size.height; int ScreenWidth = [[UIScreen mainScreen] bounds].size.width; - //获取状态栏的⾼度 - CGRect statusBarRect = [[UIApplication sharedApplication] - statusBarFrame]; - int statusBarHeight = statusBarRect.size.height; - + self.webview = [[WKWebView alloc] initWithFrame:CGRectMake(0,0, ScreenWidth, ScreenHeight) configuration:config]; [self.webview.scrollView setBackgroundColor:[UIColor clearColor]]; @@ -98,6 +111,11 @@ NSString * const kMSGameLoaded = @"gameLoaded"; UIScrollViewContentInsetAdjustmentNever; } [self.view addSubview:self.webview]; + + NSString *h5Url = self.gameModel.skipContent; + NSURL *url = [NSURL URLWithString:h5Url]; + NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; + [self.webview loadRequest:request]; } - (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler{ @@ -106,8 +124,6 @@ NSString * const kMSGameLoaded = @"gameLoaded"; NSURLCredential *card = [[NSURLCredential alloc]initWithTrust:challenge.protectionSpace.serverTrust]; completionHandler(NSURLSessionAuthChallengeUseCredential,card); }); - - } } @@ -171,32 +187,58 @@ NSString * const kMSGameLoaded = @"gameLoaded"; // 获取信息配置 - (void) getConfig:(NSDictionary*)args { + + NSLog(@"BSGAME %s","游戏调⽤getConfig"); NSString* method = [args objectForKey:@"jsCallback"]; + RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo; + ActivityInfoItemModel *gameModel = self.gameModel.gameModel; + NSString *appChannel = gameModel.appChannel ?: @""; + int64_t appId = gameModel.appId; + NSString *userId = [AccountInfoStorage instance].getUid; + NSString *code = gameModel.code ?: @""; + NSString *roomId = [NSString stringWithFormat:@"%ld",roomInfo.uid]; + NSString *gameMode = gameModel.gameMode ?: @""; + NSString *language = gameModel.language ?: @""; + NSDictionary *gameConfig = gameModel.gameConfig ?: @{}; + int gsp = gameModel.gsp; // 数据只是参考值,需要根据⾃⼰APP进⾏赋值 NSObject* configData = @{ - @"appChannel":@"mesh", - @"appId":@88888888, - @"userId":@"534206265", - - @"code":@"j10NQCb16b6E1oCnAx4o3hHdEaDzm6RLZjyyyEcn34tiJcPXNbkZh5g8Q6Zd", - @"roomId":@"20230901", - @"gameMode":@"3", - @"language":@"2", - @"gameConfig":@{ - @"sceneMode":@0, - @"currencyIcon":@"https://bsyx-store.s3.ap-southeast-.amazonaws.com/game-icons/20230906-163004.png", - }, - @"gsp":@101, + @"appChannel":appChannel, + @"appId":@(appId), + @"userId":userId, + @"code":code, + @"roomId":roomId, + @"gameMode":gameMode, + @"language":[self getlanguage], + @"gameConfig":gameConfig, + @"gsp":@(gsp), }; [self callJs:method withJavaScriptValue:configData]; } - +-(NSString *)getlanguage{ + NSString *language = [NSBundle getLanguageText]; + if ([language hasPrefix:@"zh"]) { + if ([language rangeOfString:@"Hans"].location != NSNotFound) { + language = @"0"; // 简体中文 + } else { + language = @"1"; // 繁體中文 + } + }else if([language hasPrefix:@"ar"]){///阿拉伯语 + language = @"7"; + }else{///英文 + language = @"2"; + } + return language; +} // 销毁游戏 - (void) destroy:(NSDictionary*)args { NSLog(@"BSGAME %s","游戏调⽤destroy"); //关闭游戏 TODO 客⼾端 + [self willMoveToParentViewController:nil]; //1 + [self.view removeFromSuperview]; //2 + [self removeFromParentViewController]; //3 } // 提⽰余额不⾜ @@ -204,6 +246,16 @@ NSString * const kMSGameLoaded = @"gameLoaded"; { NSLog(@"BSGAME %s","游戏调⽤gameRecharge"); //拉起充值商城 TODO 客⼾端 + TTAlertConfig *config = [[TTAlertConfig alloc]init]; + config.message = YMLocalizedString(@"XPNobleCenterViewController3"); + config.actionStyle = TTAlertActionBothStyle; + [TTPopup alertWithConfig:config showBorder:NO confirmHandler:^{ + XPIAPRechargeViewController * webVC =[[XPIAPRechargeViewController alloc] init]; + webVC.type = @"4"; + [self.navigationController pushViewController:webVC animated:YES]; + } cancelHandler:^{ + + }]; } // 游戏加载完毕 diff --git a/YuMi/Tools/YYUtility/YYUtility+App.m b/YuMi/Tools/YYUtility/YYUtility+App.m index ef13d1e0..7fd692ed 100644 --- a/YuMi/Tools/YYUtility/YYUtility+App.m +++ b/YuMi/Tools/YYUtility/YYUtility+App.m @@ -122,7 +122,7 @@ static NSString *_from = nil; + (NSString *)getAppSource{ if (_from == nil) { if (isEnterprise == NO) { - _from = @"molistar_enterprise"; // 企业包 + _from = ISTestFlight ? PI_Test_Flight : @"molistar_enterprise"; // 企业包 }else { _from = [ClientConfig shareConfig].isTF == YES ? PI_Test_Flight : PI_App_Source; // Test_Flight包或appstore App Store包 } diff --git a/YuMi/ar.lproj/Localizable.strings b/YuMi/ar.lproj/Localizable.strings index 3e61343d..8efe543e 100644 --- a/YuMi/ar.lproj/Localizable.strings +++ b/YuMi/ar.lproj/Localizable.strings @@ -167,7 +167,7 @@ "XPMineGuildListCell5" = "قيد المراجعة"; "XPMineGuildListCell6" = "تمت الدعوة"; -"XPMineMainGuildListVC0" = "النقابة"; +"XPMineMainGuildListVC0" = "الوكالة"; "XPMineMainGuildListVC1" = "الغرفة"; ///XPMineHallAnchorIncomeStatisViewController.m @@ -274,7 +274,7 @@ "XPIncomeRecordView1"="إعادة الشحن"; "XPIncomeRecordView2"="تبادل العملات"; "XPIncomeRecordView3"="سحب"; -"XPIncomeRecordView4"="العملات"; +"XPIncomeRecordView4"="العملات الذهبية"; "XPIncomeRecordView5"="الماس"; "XPIncomeRecordVC0"="سجل الأرباح"; @@ -1677,8 +1677,8 @@ ineHeadView12" = "الحمل"; "XPRoomInsideRecommendEmptyCell0" = "في محاولة للعثور على غرف مناسبة"; "XPRoomRecommendView0" = "حظر / إبلاغ"; -"XPRoomRecommendView1" = "إغلاق الغرفة"; -"XPRoomRecommendView2" = "الخروج من الغرفة"; +"XPRoomRecommendView1" = "تصغير"; +"XPRoomRecommendView2" = "الخروج"; "XPRoomRecommendView3" = "نوصي لك"; "XPAnchorFansTeamEntranceView0" = "الفريق الفانز (%ld)"; @@ -1845,7 +1845,7 @@ ineHeadView12" = "الحمل"; "AnchorStageView5" = "أنت بالفعل على المنصة"; "AnchorStageView6" = "دع الرئيس يجذبك إلى المنصة للمزيد من التفاعل"; -"SocialMicroView0" = "موقع صاحب الغرفة"; +"SocialMicroView0" = "رئيس"; "LittleGameMicroView0" = "صاحب الغرفة"; "LittleGameMicroView1" = "غير جاهز"; @@ -2102,9 +2102,9 @@ ineHeadView12" = "الحمل"; "XPGiftBarView0" = "الرصيد: %@"; "XPGiftBarView1" = "شحن"; -"XPGiftBarView2" = "إهداء"; -"XPGiftBarView3" = "جاري الإهداء..."; -"XPGiftBarView4" = "إهداء"; +"XPGiftBarView2" = "إرسال"; +"XPGiftBarView3" = "إرسال"; +"XPGiftBarView4" = "إرسال"; "XPGiftBarView5" = "الرجاء إدخال مبلغ الهدية"; "XPGiftBarView6" = "تأكيد"; @@ -2148,8 +2148,8 @@ ineHeadView12" = "الحمل"; "XPGiftInfoView0" = "الإجمالي:"; "XPGiftInfoView1" = "لا توجد هدايا حالياً~"; -"XPGiftInfoView2" = "الهدايا"; -"XPGiftInfoView3" = "الحظ السعيد"; +"XPGiftInfoView2" = "هدية"; +"XPGiftInfoView3" = "الحظ"; "XPGiftInfoView4" = "نجم الأسبوع"; "XPGiftInfoView5" = "الحقيبة"; "XPGiftInfoView6" = "هدية الرسم"; @@ -3101,7 +3101,7 @@ ineHeadView12" = "الحمل"; "MessageContentGuildDialogView15"="الموافقة على الخروج"; "MessageContentGuildDialogView16"="رفض الخروج"; ///XPMineGuildListVC.m -"XPMineGuildListVC0" = "التصنيف الأسبوعي للجمعية"; +"XPMineGuildListVC0" = "قائمة التصنيف الأسبوعية"; "XPMineGuildListVC1" = "لا توجد جمعيات حاليًا"; "XPMineGuildListVC2"="تم الإرسال بنجاح، يرجى الانتظار بصبر"; "XPMineGuildListVC3" = "لم يتم العثور على غرف ذات صلة"; @@ -3154,7 +3154,6 @@ ineHeadView12" = "الحمل"; "XPMineGiveDiamondDetailsVC1" = "نقود"; "XPMineGiveDiamondDetailsVC2"="الهدايا"; "XPIncomeRecordView2" = "تحويل النقود"; -"XPIncomeRecordView4" = "نقود"; "XPExchangeDiamondsItemView0" = "نقودي: %@"; "XPExchangeDiamondsView3" = "على الأقل يجب تحويل %ld نقود"; @@ -3555,8 +3554,8 @@ ineHeadView12" = "الحمل"; "XPHomeLittleGameTableViewCell1" = "في انتظار"; "XPHomeLittleGameTableViewCell2" = "الانضمام إلى الغرفة"; ///XPLittleGameRoomListView.m -"XPLittleGameRoomListView0" = "توسيع قائمة الأصدقاء"; -"XPLittleGameRoomListView1" = "توسيع قائمة الأصدقاء"; +"XPLittleGameRoomListView0" = "توسيع الأصدقاء"; +"XPLittleGameRoomListView1" = "توسيع الأصدقاء"; ///XPLittleGameRoomOpenView.m "XPLittleGameRoomOpenView0" = "فشل طلب معلومات الغرفة ، يرجى المحاولة مرة أخرى!"; "XPLittleGameRoomOpenView1" = "إنشاء غرفة جديدة"; diff --git a/YuMi/pi_area_info.json b/YuMi/pi_area_info.json index 24059769..4c652ec3 100644 --- a/YuMi/pi_area_info.json +++ b/YuMi/pi_area_info.json @@ -150,6 +150,12 @@ "mcc": "724", "code": "55" }, + { + "name": "Britain", + "abbr": "BI", + "mcc": "234", + "code": "44" + }, { "name": "Brunei Darussalam", "abbr": "BN", diff --git a/YuMi/zh-Hans.lproj/Localizable.strings b/YuMi/zh-Hans.lproj/Localizable.strings index fb049503..2eb36152 100644 --- a/YuMi/zh-Hans.lproj/Localizable.strings +++ b/YuMi/zh-Hans.lproj/Localizable.strings @@ -1103,7 +1103,7 @@ "XPMoreMenuPresenter20" = "清空公屏"; "XPMoreMenuPresenter21" = "房间设置"; "XPMoreMenuPresenter22" = "邀请粉丝"; -"XPMoreMenuPresenter23" = "发佈广播"; +"XPMoreMenuPresenter23" = "发布广播"; "XPMoreMenuPresenter24" = "红包"; "XPMoreMenuPresenter26" = "PK中..."; @@ -1197,7 +1197,7 @@ "AnchorStageView5" = "你已经在麦上了喔"; "AnchorStageView6" = "让主播抱你上麦进行更多互动吧~"; -"SocialMicroView0" = "老闆位"; +"SocialMicroView0" = "老板位"; "LittleGameMicroView0" = "房主"; "LittleGameMicroView1" = "未准备";