首页数据对接

This commit is contained in:
liyuhua
2023-09-05 15:37:02 +08:00
parent 32d974eb12
commit 4e6769dee5
33 changed files with 726 additions and 93 deletions

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

View File

@@ -116,6 +116,11 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)onceLookAnchorRoomComplection:(HttpRequestHelperCompletion)complection uid:(NSString *)uid;
///首页改版资源位
+(void)requestCurrentResourceListComplection:(HttpRequestHelperCompletion)complection;
/// 一键匹配
/// @param completion 完成
+ (void)homeChatPick:(HttpRequestHelperCompletion)completion;
///发现新朋友
+(void)requsetFriendListComplection:(HttpRequestHelperCompletion)complection;
@end
NS_ASSUME_NONNULL_END

View File

@@ -146,4 +146,13 @@
+(void)requestCurrentResourceListComplection:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"home/currentResource" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
///
/// @param completion
+ (void)homeChatPick:(HttpRequestHelperCompletion)completion {
[self makeRequest:@"home/chat/pick" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
+(void)requsetFriendListComplection:(HttpRequestHelperCompletion)complection{
[self makeRequest:@"home/newFriend" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil];
}
@end

View File

@@ -0,0 +1,27 @@
//
// HomeMenuSourceModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/3/3.
// 点击了菜单栏 需要跳转的model
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface HomeMenuSourceModel : NSObject
///头像
@property (nonatomic,copy) NSString *avatar;
///是否是进入房间
@property (nonatomic,assign) BOOL isPick;
///房主的uid
@property (nonatomic,copy) NSString *uid;
///房间标题
@property (nonatomic,copy) NSString *title;
///房间tag
@property (nonatomic,copy) NSString *tagPict;
///平台id
@property (nonatomic,copy) NSString *erbanNo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// HomeMenuSourceModel.m
// xplan-ios
//
// Created by on 2022/3/3.
//
#import "HomeMenuSourceModel.h"
@implementation HomeMenuSourceModel
@end

View File

@@ -40,6 +40,28 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) NSString *broadMsg;
///性别
@property (nonatomic,assign) GenderType gender;
//是否为小时榜top1
@property(nonatomic,assign) BOOL isHourTop1;
//是否为周榜top1
@property(nonatomic,assign) BOOL isWeekTop1;
//是否在麦位
@property(nonatomic,assign) BOOL inMic;
///是否在线
@property(nonatomic,assign) BOOL inOnline;
///签名
@property(nonatomic,copy) NSString *userDesc;
///语音
@property(nonatomic,copy) NSString *userVoice;
///语音时长
@property(nonatomic,copy) NSString *voiceDura;
///标签
@property(nonatomic,copy) NSArray *labels;
///生日
@property(nonatomic,assign) long birth;
///昵称
@property(nonatomic,copy) NSString *nick;
@end
@interface HomePlayMicUserModel : NSObject
@@ -51,6 +73,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,copy) NSString *nick;
///用户的uid
@property (nonatomic,copy) NSString *uid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -16,6 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getHomeTagList;
///首页改版资源位
-(void)getCurrentResourceList;
- (void)homeChatPick;
@end
NS_ASSUME_NONNULL_END

View File

@@ -46,4 +46,18 @@
[[self getView]getCurrentResourceListSuccess:list];
}]];
}
///
- (void)homeChatPick {
[Api homeChatPick:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
if (data.data) {
NSString *uid = [NSString stringWithFormat:@"%@",data.data];
[[self getView] homeChatPickSuccess:uid];
}else{
[[self getView] homeChatPickFail:data.message];
}
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] homeChatPickFail:msg];
} showLoading:YES errorToast:YES]];
}
@end

View File

@@ -48,6 +48,7 @@
NSArray * array = [HomePlayRoomModel modelsWithArray:data.data];
[[self getView] getHomePersonalRoomListSuccess:array ];
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]getHomePersonalRoomListFail];
}errorToast:NO] uid:uid];
}
@end

View File

@@ -21,6 +21,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 组队开黑房间列表
/// @param pageNum 当前的页数
- (void)getPlayGameWithTeam:(int)pageNum withGroup:(dispatch_group_t)group;
///发现新朋友
-(void)getFriendListWithGroup:(dispatch_group_t)group;
@end
NS_ASSUME_NONNULL_END

View File

@@ -131,5 +131,13 @@
[[self getView] getHomeRecommendDataFailWithGroup:group];
}errorToast:NO] uid:uid];
}
///
-(void)getFriendListWithGroup:(dispatch_group_t)group{
[Api requsetFriendListComplection:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomePlayRoomModel modelsWithArray:data.data];
[[self getView]getFriendListSuccess:array withGroup:group];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]getFriendListFailWithGroup:group];
}]];
}
@end

View File

@@ -17,6 +17,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getHomeTopBannerListSuccess:(NSArray*)list;
////首页改版资源位
-(void)getCurrentResourceListSuccess:(NSArray *)list;
///一键匹配成功
- (void)homeChatPickSuccess:(NSString *)uid;
///一键匹配失败
- (void)homeChatPickFail:(NSString *)msg;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,6 +10,7 @@
NS_ASSUME_NONNULL_BEGIN
@protocol XPHomeProtocol <NSObject>
@optional
///首页推荐房间的
- (void)getHomeRecommendRoomListSuccess:(NSArray *)list state:(BOOL)state;
///首页推荐房间失败
@@ -20,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getHomeMoreAnchorRoomListFail:(NSString *)messag;
///获取个人房列表成功
- (void)getHomePersonalRoomListSuccess:(NSArray *)list;
///获取个人房列表失败
- (void)getHomePersonalRoomListFail;
@end
NS_ASSUME_NONNULL_END

View File

@@ -22,6 +22,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)getPlayGameWithTeamSuccess:(NSArray *)list withGroup:(dispatch_group_t)group;
///获取首页数据失败
- (void)getHomeRecommendDataFailWithGroup:(dispatch_group_t)group;
///发现新朋友
-(void)getFriendListSuccess:(NSArray *)list withGroup:(dispatch_group_t)group;
///发现新朋友
-(void)getFriendListFailWithGroup:(dispatch_group_t)group;
@end
NS_ASSUME_NONNULL_END

View File

@@ -8,9 +8,19 @@
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol XPNewHomePartyAudioViewDelegate <NSObject>
-(void)playVoiceWithStop:(BOOL)isStop;
@end
@interface XPNewHomePartyAudioView : UIView
///签名
@property(nonatomic,copy) NSString *userDesc;
///语音
@property(nonatomic,copy) NSString *userVoice;
///语音时长
@property(nonatomic,copy) NSString *voiceDura;
@property(nonatomic,weak) id<XPNewHomePartyAudioViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -6,6 +6,8 @@
//
#import "XPNewHomePartyAudioView.h"
#import "XPSkillCardPlayerManager.h"
#import <AFNetworking.h>
@interface XPNewHomePartyAudioView ()
///
@property(nonatomic,strong) UIView *bgView;
@@ -17,6 +19,8 @@
@property(nonatomic,strong) UIImageView *audioBgView;
///
@property(nonatomic,strong) UILabel *timeView;
///
@property (nonatomic,assign) BOOL isPlaying;
@end
@implementation XPNewHomePartyAudioView
@@ -36,7 +40,112 @@
[self.bgView addSubview:self.timeView];
}
-(void)installConstraints{
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.top.bottom.equalTo(self);
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(192));
}];
[self.playBnt mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(26));
make.top.mas_equalTo(kGetScaleWidth(0));
make.leading.mas_equalTo(kGetScaleWidth(6));
}];
[self.audioBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(31));
make.centerY.equalTo(self.bgView);
make.width.mas_equalTo(kGetScaleWidth(22));
make.height.mas_equalTo(kGetScaleWidth(10));
}];
[self.timeView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(54));
make.height.mas_equalTo(kGetScaleWidth(15));make.centerY.equalTo(self.bgView);
}];
[self.signatureView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self.bgView).inset(kGetScaleWidth(10));
make.centerY.equalTo(self.bgView);
}];
}
-(void)playAudioAction:(UIButton *)sender{
_playBnt.selected = !_playBnt.selected;
if (!self.isPlaying) {
if(_userVoice.length > 0) {
// NSString *fileName = [[self.voiceInfo.name componentsSeparatedByString:@"/"] lastObject];
NSString * url = _userVoice;
NSArray * nameArray = [url componentsSeparatedByString:@"/"];
NSString * fileName = @"daeplay";
if (nameArray.count > 0) {
fileName = nameArray.lastObject;
}
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"];
NSString *fullPath = [filePath stringByAppendingPathComponent:fileName];
NSLog(@"下载的路径:%@", fullPath);
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
self.isPlaying = YES;
sender.selected = YES;
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:fullPath completionBlock:^{
self.isPlaying = NO;
sender.selected = NO;
[[XPSkillCardPlayerManager shareInstance] stopMusic];
}];
} else {
if (![[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
NSFileManager *fileMgr = [[NSFileManager alloc] init];
NSError * error;
[fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error];
NSLog(@"%@", error.description);
}
[self downloadAudioWithFileName:fileName musicUrl:url completion:^(BOOL isSuccess, NSString *editAudioPath) {
self.isPlaying = YES;
sender.selected = YES;
[[XPSkillCardPlayerManager shareInstance] playerVoiceWithPath:editAudioPath completionBlock:^{
self.isPlaying = NO;
sender.selected = NO;
[[XPSkillCardPlayerManager shareInstance] stopMusic];
}];
}];
}
}
} else {
self.isPlaying = NO;
sender.selected = NO;
[[XPSkillCardPlayerManager shareInstance] stopMusic];
}
}
- (void)downloadAudioWithFileName:(NSString *)fileName musicUrl:(NSString *)musicUrl completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]];
NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"] stringByAppendingPathComponent:fileName];
return [NSURL fileURLWithPath:filePath];
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
if (!error) {
completion(YES, filePath.path);
} else {
completion(NO, nil);
}
}];
[download resume];
}
-(void)setUserVoice:(NSString *)userVoice{
_userVoice = userVoice;
_playBnt.hidden = NO;
_audioBgView.hidden = NO;
_timeView.hidden = NO;
_signatureView.hidden = YES;
_signatureView.text = @"";
_timeView.text = [NSString stringWithFormat:@"%@\"",_voiceDura];
}
-(void)setUserDesc:(NSString *)userDesc{
_userDesc = userDesc;
_playBnt.hidden = YES;
_audioBgView.hidden = YES;
_timeView.hidden = YES;
_signatureView.hidden = NO;
_signatureView.text = _userDesc;
}
#pragma mark -
- (UIView *)bgView{
@@ -61,6 +170,8 @@
if(!_playBnt){
_playBnt = [UIButton new];
[_playBnt setImage:kImage(@"home_audio_play_play") forState:UIControlStateNormal];
[_playBnt setImage:kImage(@"home_audio_stop") forState:UIControlStateSelected];
[_playBnt addTarget:self action:@selector(playAudioAction) forControlEvents:UIControlEventTouchUpInside];
}
return _playBnt;
}

View File

@@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@class HomePlayRoomModel, HomeRecommendRoomModel;
@interface XPNewHomePartyCollectionViewCell : UICollectionViewCell
@property (nonatomic,strong) HomePlayRoomModel *roomInfo;
@property (nonatomic,strong) HomeRecommendRoomModel *roomInfo1;
@end
NS_ASSUME_NONNULL_END

View File

@@ -108,9 +108,11 @@
_bgImageView.imageUrl = _roomInfo.avatar;
_tagBgImageView.imageUrl = _roomInfo.tagPict;
_heatView.text = @(_roomInfo.onlineNum).stringValue;
if(_rankImageView.image == nil){
_rankImageView.image = nil;
if(_roomInfo.isHourTop1 == YES){
_rankImageView.image = kImage(@"home_hour_no_1");
}else{
}
if(_roomInfo.isWeekTop1 == YES){
_rankImageView.image = kImage(@"home_week_no_1");
}

View File

@@ -7,12 +7,24 @@
#import <UIKit/UIKit.h>
@class XPNewHomePartyTableViewCell,HomePlayRoomModel;
@protocol XPNewHomePartyTableViewCellDelegate <NSObject>
///点击头像
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didSelectItem:(HomePlayRoomModel *_Nullable)roomModel;
///点击聊天
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didSelectChat:(HomePlayRoomModel *_Nonnull)roomModel;
///播放音乐
-(void)xPNewHomePartyTableViewCell:(XPNewHomePartyTableViewCell *_Nullable)cell didPlayVoice:(HomePlayRoomModel *_Nonnull)roomModel isStop:(BOOL)isStop;
@end
NS_ASSUME_NONNULL_BEGIN
@class HomePlayRoomModel, HomeRecommendRoomModel;
@interface XPNewHomePartyTableViewCell : UITableViewCell
@property (nonatomic,strong) HomePlayRoomModel *roomInfo;
@property (nonatomic,strong) HomeRecommendRoomModel *roomInfo1;
@property(nonatomic,weak) id<XPNewHomePartyTableViewCellDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -48,6 +48,7 @@
@property(nonatomic,strong) NetImageView *wealthView;
///
@property(nonatomic,strong) NetImageView *charmView;
@property(nonatomic,strong) NSDateFormatter *dateFormatter;
@end
@implementation XPNewHomePartyTableViewCell
@@ -154,13 +155,46 @@
make.height.mas_equalTo(kGetScaleWidth(18));
make.trailing.equalTo(self.chatBtn.mas_leading).mas_offset(-kGetScaleWidth(5));
}];
[self.audioView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(84));
make.height.mas_equalTo(kGetScaleWidth(26));
make.top.equalTo(self.tagView.mas_bottom).mas_offset(kGetScaleWidth(6));
make.trailing.equalTo(self.tagView);
}];
}
#pragma mark - Getters And Setters
- (void)setRoomInfo:(HomePlayRoomModel *)roomInfo {
_roomInfo = roomInfo;
if (_roomInfo) {
self.avatarImageView.imageUrl = _roomInfo.avatar;
self.titleLabel.text = _roomInfo.nick;
_tagView.itemList = [NSMutableArray arrayWithArray:_roomInfo.labels];
NSString *dateStr = [self.dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:_roomInfo.birth/1000]];
[_birthdayView setTitle:dateStr forState:UIControlStateNormal];
_gameBgView.hidden = YES;
_gameIconView.hidden = YES;
_borderImageView.hidden = YES;
_greenView.hidden = YES;
[_chatBtn setTitle:YMLocalizedString(@"XPSessionSayHelloTableViewCell0") forState:UIControlStateNormal];
if(_roomInfo.inMic == YES){
_gameBgView.hidden = NO;
_gameIconView.hidden = NO;
_borderImageView.hidden = NO;
[_chatBtn setTitle:YMLocalizedString(@"XPSessionFindNewAlertView2") forState:UIControlStateNormal];
}
if(_roomInfo.inOnline == YES){
_greenView.hidden = NO;
}
if(_roomInfo.userVoice.length > 0){
_audioView.voiceDura = _roomInfo.voiceDura;
_audioView.userVoice = _roomInfo.userVoice;
}else{
_audioView.userDesc = _roomInfo.userDesc;
}
}
}
@@ -168,14 +202,22 @@
_roomInfo1 = roomInfo1;
if (_roomInfo1) {
self.avatarImageView.imageUrl = _roomInfo1.avatar;
self.titleLabel.text = _roomInfo1.title;
}
}
-(void)didSelectItemAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomePartyTableViewCell:didSelectItem:)]){
[self.delegate xPNewHomePartyTableViewCell:self didSelectItem:self.roomInfo];
}
}
-(void)didSelectChatAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomePartyTableViewCell:didSelectChat:)]){
[self.delegate xPNewHomePartyTableViewCell:self didSelectChat:self.roomInfo];
}
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
@@ -184,7 +226,10 @@
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 74/2;
_avatarImageView.layer.cornerRadius = kGetScaleWidth(60)/2;
_avatarImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(didSelectItemAction)];
[_avatarImageView addGestureRecognizer:tap];
}
return _avatarImageView;
}
@@ -253,6 +298,7 @@
[_chatBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_chatBtn.layer.cornerRadius = kGetScaleWidth(28)/2;
_chatBtn.layer.masksToBounds = YES;
[_chatBtn addTarget:self action:@selector(didSelectChatAction) forControlEvents:UIControlEventTouchUpInside];
}
return _chatBtn;
}
@@ -289,4 +335,13 @@
}
return _charmView;
}
- (NSDateFormatter *)dateFormatter {
if (!_dateFormatter) {
_dateFormatter = [[NSDateFormatter alloc] init];
_dateFormatter.dateFormat = @"yyyy-MM-dd";
}
return _dateFormatter;
}
@end

View File

@@ -0,0 +1,24 @@
//
// XPHomeRecommendOtherRoomView.h
// xplan-ios
//
// Created by 冯硕 on 2022/3/3.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class XPHomeRecommendOtherRoomView, HomeMenuSourceModel;
@protocol XPHomeRecommendOtherRoomViewDelegate <NSObject>
///点击了进入房间
- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(HomeMenuSourceModel *)model;
@end
@interface XPHomeRecommendOtherRoomView : UIView
///房间信息
@property (nonatomic,strong) HomeMenuSourceModel *roomInfo;
///代理
@property (nonatomic,weak) id<XPHomeRecommendOtherRoomViewDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,185 @@
//
// XPHomeRecommendOtherRoomView.m
// xplan-ios
//
// Created by on 2022/3/3.
//
#import "XPHomeRecommendOtherRoomView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "TTPopup.h"
#import "UIImage+Utils.h"
///Model
#import "HomeMenuSourceModel.h"
@interface XPHomeRecommendOtherRoomView ()
///
@property (nonatomic,strong) UIView * contentView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UILabel *roomTitleLabel;
///
@property (nonatomic,strong) UIButton *enterRoomButton;
///
@property (nonatomic,strong) UIButton *closeButton;
@end
@implementation XPHomeRecommendOtherRoomView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.contentView];
[self addSubview:self.closeButton];
[self.contentView addSubview:self.titleLabel];
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.roomTitleLabel];
[self.contentView addSubview:self.enterRoomButton];
}
- (void)initSubViewConstraints {
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(300);
make.bottom.mas_equalTo(self.closeButton.mas_bottom);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.mas_equalTo(self);
make.height.mas_equalTo(299);
}];
[self.closeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(30, 30));
make.centerX.mas_equalTo(self);
make.top.mas_equalTo(self.contentView.mas_bottom).offset(32);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(19);
make.top.mas_equalTo(self).offset(12);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(16);
make.size.mas_equalTo(CGSizeMake(108, 108));
make.centerX.mas_equalTo(self.contentView);
}];
[self.roomTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(73);
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(24);
}];
[self.enterRoomButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(60);
make.bottom.mas_equalTo(self.contentView).offset(-24);
make.height.mas_equalTo(40);
}];
}
#pragma mark - Event Response
- (void)enterRoomButtonAction:(UIButton *)sender {
[TTPopup dismiss];
if (self.delegate && [self.delegate respondsToSelector:@selector(xPHomeRecommendOtherRoomView:didClickEnterRoom:)]) {
[self.delegate xPHomeRecommendOtherRoomView:self didClickEnterRoom:self.roomInfo];
}
}
- (void)closeButtonAction:(UIButton *)sender {
[TTPopup dismiss];
}
#pragma mark - Getters And Setters
- (void)setRoomInfo:(HomeMenuSourceModel *)roomInfo {
_roomInfo = roomInfo;
if (_roomInfo) {
self.roomTitleLabel.text = _roomInfo.title;
self.avatarImageView.imageUrl = _roomInfo.avatar;
}
}
- (UIView *)contentView {
if (!_contentView) {
_contentView = [[UIView alloc] init];
_contentView.backgroundColor = [UIColor whiteColor];
_contentView.layer.masksToBounds = YES;
_contentView.layer.cornerRadius = 12;
_contentView.layer.shadowOffset = CGSizeMake(4, 4);
_contentView.layer.shadowColor = UIColorRGBAlpha(0xEBEEF3, 0.7).CGColor;
}
return _contentView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.text = YMLocalizedString(@"XPHomeRecommendOtherRoomView0");
_titleLabel.font = [UIFont boldSystemFontOfSize:16];
_titleLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
return _titleLabel;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 8;
}
return _avatarImageView;
}
- (UILabel *)roomTitleLabel {
if (!_roomTitleLabel) {
_roomTitleLabel = [[UILabel alloc] init];
_roomTitleLabel.font = [UIFont systemFontOfSize:14];
_roomTitleLabel.numberOfLines = 2;
_roomTitleLabel.textColor = [DJDKMIMOMColor mainTextColor];
_roomTitleLabel.textAlignment = NSTextAlignmentCenter;
}
return _roomTitleLabel;
}
- (UIButton *)enterRoomButton {
if (!_enterRoomButton) {
_enterRoomButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_enterRoomButton setTitle:YMLocalizedString(@"XPHomeRecommendOtherRoomView1") forState:UIControlStateNormal];
[_enterRoomButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
_enterRoomButton.titleLabel.font = [UIFont systemFontOfSize:15];
[_enterRoomButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
_enterRoomButton.layer.masksToBounds = YES;
_enterRoomButton.layer.cornerRadius = 20;
[_enterRoomButton addTarget:self action:@selector(enterRoomButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _enterRoomButton;
}
- (UIButton *)closeButton {
if (!_closeButton) {
_closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_closeButton setImage:[UIImage imageNamed:@"common_close_white"] forState:UIControlStateNormal];
[_closeButton setImage:[UIImage imageNamed:@"common_close_white"] forState:UIControlStateSelected];
[_closeButton addTarget:self action:@selector(closeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _closeButton;
}
@end

View File

@@ -10,13 +10,17 @@
NS_ASSUME_NONNULL_BEGIN
@interface XPHomePartyViewController : MvpViewController<JXPagerViewListViewDelegate>
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
///模块的 ID
@property (nonatomic,copy) NSString *pi_tabId;
///是否是个播
@property (nonatomic,assign) BOOL isAnchor;
//TODO: 应该用一个新的控制器的 先发版吧
@property(nonatomic,copy) HeaderRefreshComplete refreshComplete;
- (void)headerRefresh;
@end
NS_ASSUME_NONNULL_END

View File

@@ -84,13 +84,7 @@
self.timer = [XPWeakTimer scheduledTimerWithTimeInterval:15 block:^(id userInfo) {
[self headerRefresh];
} userInfo:nil repeats:YES];
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.collectionView.mj_header = header;
[self.collectionView.mj_header beginRefreshing];
}
#pragma mark - fangfa
@@ -140,13 +134,20 @@
#pragma mark - XPHomeProtocol
- (void)getHomePersonalRoomListSuccess:(NSArray *)list{
if(self.refreshComplete){
self.refreshComplete();
}
for (HomePlayRoomModel *model in list) {
model.width = [UILabel getWidthWithText:@(model.onlineNum).stringValue height:kGetScaleWidth(12) font:kFontBold(10)]+1;
}
self.datasource = [NSMutableArray arrayWithArray:list];
[self.collectionView reloadData];
}
- (void)getHomePersonalRoomListFail{
if(self.refreshComplete){
self.refreshComplete();
}
}
#pragma mark - JXPagingViewListViewDelegate
- (UIScrollView *)listScrollView {

View File

@@ -11,7 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPHomeRecommendViewController : MvpViewController<JXPagerViewListViewDelegate>
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@property(nonatomic,copy) HeaderRefreshComplete refreshComplete;
- (void)headerRefresh;
@end
NS_ASSUME_NONNULL_END

View File

@@ -71,7 +71,7 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
- (void)viewDidLoad {
[super viewDidLoad];
[self initSubViews];
[self initHeaderAndFooterRrfresh];
[self addTimer];
}
@@ -120,7 +120,7 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
dispatch_group_enter(group);
dispatch_group_async(group, queue, ^{
[self.presenter getHomePersonalRoomListWithGroup:group];
[self.presenter getFriendListWithGroup:group];
});
@@ -129,8 +129,10 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
self.isRequestData = NO;
[self.tableView.mj_header endRefreshing];
[self.tableView reloadData];
if(self.refreshComplete){
self.refreshComplete();
}
});
}
@@ -140,15 +142,6 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
[self requestData];
}
- (void)initHeaderAndFooterRrfresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.tableView.mj_header = header;
[self.tableView.mj_header beginRefreshing];
}
#pragma mark - Private Method
- (void)initSubViews {
@@ -296,36 +289,23 @@ UIKIT_EXTERN NSString * const kShieldingNotification;
#pragma mark - XPHomeRecommendProtocol
///
- (void)getHomeRecommendRoomListSuccess:(NSArray *)list withGroup:(nonnull dispatch_group_t)group{
}
///
- (void)getHomePersonalRoomListSuccess:(NSArray *)list withGroup:(nonnull dispatch_group_t)group {
NSMutableArray * array = [NSMutableArray array];
for (HomePlayRoomModel * info in list) {
[array addObject:info];
}
self.personalRoomList = array;
dispatch_group_leave(group);
}
///
- (void)getPlayGameWithTeamSuccess:(NSArray *)list withGroup:(nonnull dispatch_group_t)group{
NSMutableArray * array = [NSMutableArray array];
for (HomePlayRoomModel * info in list) {
[array addObject:info];
}
self.playTeamList = array;
self.playTeamList = [NSMutableArray arrayWithArray:list];
dispatch_group_leave(group);
}
- (void)getHomeRecommendDataFailWithGroup:(dispatch_group_t)group {
- (void)getHomeRecommendDataFailWithGroup:(dispatch_group_t)group{
dispatch_group_leave(group);
}
- (void)getFriendListSuccess:(NSArray *)list withGroup:(dispatch_group_t)group{
self.personalRoomList = [NSMutableArray arrayWithArray:list];
dispatch_group_leave(group);
}
- (void)getFriendListFailWithGroup:(dispatch_group_t)group{
dispatch_group_leave(group);
}
#pragma mark - JXPagingViewListViewDelegate
- (UIScrollView *)listScrollView {

View File

@@ -11,7 +11,9 @@
#import <JXPagingView/JXPagerView.h>
#import <JXPagingView/JXPagerListRefreshView.h>
#import <JXCategoryView/JXCategoryView.h>
#import <MJRefresh/MJRefresh.h>
///Tool
#import "Api+Home.h"
#import "YUMIMacroUitls.h"
#import "DJDKMIMOMColor.h"
#import "YUMIHtmlUrl.h"
@@ -27,6 +29,8 @@
#import "PIHomeItemModel.h"
#import "HomeMenuSourceModel.h"
///View
#import "XPRoomSearchContainerViewController.h"
#import "XPHomePartyViewController.h"
@@ -36,6 +40,7 @@
#import "XPRoomViewController.h"
#import "XPNewHomeHeadView.h"
#import "PIHoemCategoryTitleView.h"
#import "XPHomeRecommendOtherRoomView.h"
///P
#import "XPHomeContainerPresenter.h"
#import "XPHomeContainerProtocol.h"
@@ -45,7 +50,7 @@
UIKIT_EXTERN NSString * kHomeMoreScrollPageKey;
UIKIT_EXTERN NSString * const kOpenRoomNotification;
@interface XPNewHomeViewController ()<JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate, XPHomeContainerProtocol, XPNewHomeNavViewDelegate,XPNewHomeHeadViewDelegate>
@interface XPNewHomeViewController ()<JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate, XPHomeContainerProtocol, XPNewHomeNavViewDelegate,XPNewHomeHeadViewDelegate,XPHomeRecommendOtherRoomViewDelegate>
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@@ -63,6 +68,9 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
@property (nonatomic,strong) HomeTagModel *recommendItem;
///bug
@property (nonatomic,assign) BOOL isEmpty;
@property(nonatomic,strong) XPHomePartyViewController * homeVC;
@property(nonatomic,strong) XPHomeRecommendViewController * recommendVC;
@property(nonatomic,assign) NSInteger type;
@end
@implementation XPNewHomeViewController
@@ -96,6 +104,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
#pragma mark - Private Method
- (void)initSubViews {
self.type = 0;
self.view.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#F3F5FA"];
[self.view addSubview:self.backImageView];
[self.view addSubview:self.navView];
@@ -115,6 +124,35 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
[self.navigationController pushViewController:sessionVC animated:YES];
[ClientConfig shareConfig].chatId = nil;
}
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.pagingView.mainTableView.mj_header = header;
[self.pagingView.mainTableView.mj_header beginRefreshing];
@kWeakify(self);
self.homeVC.refreshComplete = ^{
@kStrongify(self);
if(self.type == 0){
[self.pagingView.mainTableView.mj_header endRefreshing];
}
};
self.recommendVC.refreshComplete = ^{
@kStrongify(self);
if(self.type == 1){
[self.pagingView.mainTableView.mj_header endRefreshing];
}
};
}
-(void)headerRefresh{
if(self.type == 0){
[self.homeVC headerRefresh];
}else{
[self.recommendVC headerRefresh];
}
}
-(void)openRoomNotification:(NSNotification *)notification{
if([[AccountInfoStorage instance] getUid].length == 0){
@@ -164,6 +202,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
[self.presenter getHomeTagList];
[self.presenter getHomeTopBannerList];
[self.presenter getCurrentResourceList];
}
@@ -233,12 +272,12 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
return homeV;
}
if (index == 0) {
XPHomePartyViewController * homeVC = [[XPHomePartyViewController alloc] init];
return homeVC;
return self.homeVC;
} else {
XPHomeRecommendViewController * recommendVC = [[XPHomeRecommendViewController alloc] init];
return recommendVC;
return self.recommendVC;
}
}
@@ -274,20 +313,21 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
self.headView.itemList = list;
}
- (void)getHomeTagListSuccess:(NSArray<HomeTagModel *> *)array {
// [self.tagList addObject:self.recommendItem];
// [self.tagList addObjectsFromArray:array];
// NSMutableArray * titles = [NSMutableArray array];
// [titles addObject:YMLocalizedString(@"XPNewHomeViewController2")];
// [array enumerateObjectsUsingBlock:^(HomeTagModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// if (obj.name.length > 0) {
// [titles addObject:obj.name];
// }
// }];
// self.titles = titles.copy;
// self.titleView.titles = self.titles;
// [self.titleView reloadData];
}
- (void)homeChatPickSuccess:(NSString *)uid {
///
NSString *sessionId = uid;
NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeP2P];
SessionViewController *sessionVC = [[SessionViewController alloc] initWithSession:session];
[self.navigationController pushViewController:sessionVC animated:YES];
}
- (void)homeChatPickFail:(NSString *)msg {
}
- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index{
self.type = index;
self.titleView.index = (int)index;
self.titleView.defaultSelectedIndex = index;
[self.titleView reloadData];
@@ -300,6 +340,29 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
XPWebViewController * webVC = [[ XPWebViewController alloc] init];
webVC.url = model.resourceContent;
[self.navigationController pushViewController:webVC animated:YES];
}else if (model.resourceType == HomeMenuResourceType_Match) { //
[self.presenter homeChatPick];
}else {
NSString * uid = [AccountInfoStorage instance].getUid;
if (model.ID.length > 0 && uid.length > 0) {
[Api homePickResource:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
HomeMenuSourceModel * sourceModel = [HomeMenuSourceModel modelWithDictionary:data.data];
if (sourceModel.isPick) {
if (sourceModel.uid.integerValue > 0) {
[XPRoomViewController openRoom:sourceModel.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
} else {
XPHomeRecommendOtherRoomView * recommendView = [[XPHomeRecommendOtherRoomView alloc] init];
recommendView.delegate = self;
recommendView.roomInfo = sourceModel;
[TTPopup popupView:recommendView style:TTPopupStyleAlert];
}
} else {
[XNDJTDDLoadingTool showErrorWithMessage:msg];
}
} uid:uid rid:model.ID];
}
}
}
-(void)selectBannerListWithModel:(HomeBannerInfoModel *)model{
@@ -322,6 +385,12 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
break;
}
}
///
- (void)xPHomeRecommendOtherRoomView:(XPHomeRecommendOtherRoomView *)view didClickEnterRoom:(HomeMenuSourceModel *)model{
if (model.uid.integerValue > 0) {
[XPRoomViewController openRoom:model.uid fromNick:nil fromType:UserEnterRoomFromType_Home_Recommend fromUid:nil viewController:self];
}
}
#pragma mark - Getters And Setters
- (PIHoemCategoryTitleView *)titleView {
if (!_titleView) {
@@ -406,4 +475,16 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
}
return _headView;
}
- (XPHomePartyViewController *)homeVC{
if(!_homeVC){
_homeVC = [[XPHomePartyViewController alloc] init];
}
return _homeVC;
}
- (XPHomeRecommendViewController *)recommendVC{
if(!_recommendVC){
_recommendVC = [[XPHomeRecommendViewController alloc] init];
}
return _recommendVC;
}
@end

View File

@@ -8,8 +8,13 @@
#import "BaseViewController.h"
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
typedef void(^HeaderRefreshComplete)(void);
@interface MvpViewController<T> : BaseViewController
@property (nonatomic, strong) __kindof T presenter;

View File

@@ -1050,6 +1050,7 @@
"XPRoomFunctionContainerView12" = "暂未设置话题";
"XPRoomFunctionContainerView13" = "开始选择>";
"XPRoomFunctionContainerView18" = "游戏中不可切换游戏或玩法!";
"XPRoomBackContainerView0" = "贵族专属背景图加载失败";
"XPRoomBackContainerView1" = "个播背景图加载失败";
@@ -1126,7 +1127,7 @@
"XPRoomMenuContainerView0" = "房间公屏已关闭";
"XPRoomMenuContainerView1" = "PK已开始暂时无法排麦";
"XPRoomMenuContainerView2" = "说点什...";
"XPRoomMenuContainerView2" = "说点什...";
"XPRoomMenuContainerView3" = "快给大家打个招呼吧";
"XPRoomSendTextView0" = "请输入消息...";
@@ -1161,8 +1162,7 @@
"StageView27" = "抱Ta上麦当主持";
"StageView28" = "下麦旁听";
"StageView29" = "关注Ta";
///XPMineGameTableViewCell.m
"XPMineGameTableViewCell0" = "休闲游戏";
"AnchorStageView1" = "解锁";
"AnchorStageView3" = "开麦";
@@ -2663,9 +2663,7 @@
"XPNobleCenterPayView3" = "确认支付";
///LoginForgetEditView.m
"LoginForgetEditView0" = "获取验证码";
/// XPNewHomeViewController
"XPNewHomeViewController0"="热门推荐";
"XPNewHomeViewController1"="优质陪伴";
///LoginForgetPasswordViewController.m
"LoginForgetPasswordViewController0" = "忘记密码";
"LoginForgetPasswordViewController1" = "验证码发送成功";
@@ -2972,12 +2970,24 @@
"LittleGameStageView0" = "游戏中不可以换麦!";
///LittleGameScrollStageView.m
"LittleGameScrollStageView0" = "游戏中不可以换麦!";
///XPMineGameTableViewCell.m
"XPMineGameTableViewCell0" = "休闲游戏";
///XPNewHomeHeadView
"XPNewHomeHeadView0"="心动恋爱";
"XPNewHomeHeadView1"="颜值女神聚集地";
"XPNewHomeHeadView2"="陪伴交友";
"XPNewHomeHeadView3"="有趣的人都在这";
/// XPNewHomeViewController
"XPNewHomeViewController0"="热门推荐";
"XPNewHomeViewController1"="优质陪伴";
//XPHomeRecommendOtherRoomView
"XPHomeRecommendOtherRoomView0"="暂无合适房间,为你推荐其他房间~";
"XPHomeRecommendOtherRoomView1"="去看看";
///不能脚本生成的
"App_Common_And" = "和";

View File

@@ -168,7 +168,7 @@
"XPMineUserInfoEditPresenter4" = "相冊";
"XPMineUserInfoEditPresenter5" = "個人介紹";
"XPMineUserInfoEditPresenter6" = "聲音簽名";
"XPMineUserInfoEditPresenter7" = "來錄你的專屬聲音吧~";
"XPMineUserInfoEditPresenter7" = "來錄你的專屬聲音吧~";
"XPMineUserInfoEditPresenter8" = "標簽";
"XPMineUserInfoEditPresenter9" = "設置個人標簽將更受歡迎~";
"XPMineUserInfoEditPresenter10" = "地區";
@@ -344,7 +344,7 @@
"XPMineUserInfoHeaderView1" = "我是個默認簽名";
"XPMineUserInfoHeaderView2" = "%ld粉絲";
"XPMineUserInfoHeaderView3" = "直播中";
"XPMineUserInfoHeaderView4" = "錄聲音卡";
"XPMineUserInfoHeaderView4" = "錄聲音卡";
"XPMineUserInfoHeaderView5" = "我是個默認簽名";
///XPMineUserInfoIndividualTagView
"XPMineUserInfoIndividualTagView0"="TA的標簽";
@@ -1127,7 +1127,7 @@
"XPRoomMenuContainerView0" = "房間公屏已關閉";
"XPRoomMenuContainerView1" = "PK已開始暫時無法排麥";
"XPRoomMenuContainerView2" = "說點什...";
"XPRoomMenuContainerView2" = "說點什...";
"XPRoomMenuContainerView3" = "快給大家打個招呼吧";
"XPRoomSendTextView0" = "請輸入消息...";
@@ -2714,8 +2714,8 @@
"XPTreasureFairyPrizeRecordCell2"="傳說猛獁森林";
///XPTreasureFairySendRecordCell
"XPTreasureFairySendRecordCell0"="yyyy年MM月dd日 HH時mm分ss秒";
"XPTreasureFairySendRecordCell1"="你贈送%@一張%@精靈卡";
"XPTreasureFairySendRecordCell2"="%@贈送了你一張%@精靈卡";
"XPTreasureFairySendRecordCell1"="你贈送%@一張%@精靈卡";
"XPTreasureFairySendRecordCell2"="%@贈送了你一張%@精靈卡";
///XPTreasureFairyShopingExchangeCell
"XPTreasureFairyShopingExchangeCell0"="鉆";
"XPTreasureFairyShopingExchangeCell1"="兌換";
@@ -2736,7 +2736,7 @@
"XPTreasureFairyExchangeView0"="鉆";
"XPTreasureFairyExchangeView1"="提示";
"XPTreasureFairyExchangeView2"="兌換";
"XPTreasureFairyExchangeView3"="您將要兌換%@(%@)";
"XPTreasureFairyExchangeView3"="您將要兌換%@(%@)";
"XPTreasureFairyExchangeView4"="兌換成功~";
"XPTreasureFairyExchangeView5"="昵稱";
"XPTreasureFairyExchangeView6"="我的碎片:";
@@ -2745,7 +2745,7 @@
"XPTreasureFairyFriendView1"="搜索好友";
///XPTreasureFairyMessageSendView
"XPTreasureFairyMessageSendView0"="贈送成功";
"XPTreasureFairyMessageSendView1"="確定向%@贈送1張%@精靈卡嗎?";
"XPTreasureFairyMessageSendView1"="確定向%@贈送1張%@精靈卡嗎?";
"XPTreasureFairyMessageSendView2"="關閉";
"XPTreasureFairyMessageSendView3"="贈送";
///XPTreasureFairyMoreView
@@ -2765,8 +2765,8 @@
///XPTreasureFairySendView
"XPTreasureFairySendView0"="贈送成功";
"XPTreasureFairySendView1"="已向好友發送索要信息";
"XPTreasureFairySendView2"="確定贈送%@1張%@精靈卡嗎?";
"XPTreasureFairySendView3"="確定向%@索要1張%@精靈卡嗎?";
"XPTreasureFairySendView2"="確定贈送%@1張%@精靈卡嗎?";
"XPTreasureFairySendView3"="確定向%@索要1張%@精靈卡嗎?";
"XPTreasureFairySendView4"="贈送";
"XPTreasureFairySendView5"="索要";
"XPTreasureFairySendView6"="關閉";
@@ -2851,7 +2851,7 @@
"XPMineUserInfoRecordedSoundView5"="點擊停止";
"XPMineUserInfoRecordedSoundView6"="點擊試聽";
"XPMineUserInfoRecordedSoundView7"="點擊停止播放";
"XPMineUserInfoRecordedSoundView8"="除聲音";
"XPMineUserInfoRecordedSoundView8"="除聲音";
"XPMineUserInfoRecordedSoundView9"="聲音簽名審核通過,快叫小夥伴聽聽吧~";
"XPMineUserInfoRecordedSoundView10"="正在上麥中,不能錄音";
///XPMineUserInfoRecordedSoundVC
@@ -2985,6 +2985,10 @@
"XPNewHomeViewController0"="熱門推薦";
"XPNewHomeViewController1"="優質陪伴";
//XPHomeRecommendOtherRoomView
"XPHomeRecommendOtherRoomView0"="暫無合適房間,為你推薦其他房間~";
"XPHomeRecommendOtherRoomView1"="去看看";
///不能腳本生成的
"App_Common_And" = "和";
"App_Common_Male" = "男";