修复bug

This commit is contained in:
liyuhua
2023-09-22 12:20:43 +08:00
parent e4deece7b4
commit 10c0e5c182
25 changed files with 513 additions and 105 deletions

View File

@@ -107,7 +107,7 @@
189DD75926E6003C00AB55B1 /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD75826E6003C00AB55B1 /* Api.m */; };
189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD76126E60DDC00AB55B1 /* Api+Login.m */; };
18A61BD7274F7F6900A09A54 /* NetImageConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BD6274F7F6900A09A54 /* NetImageConfig.m */; };
18A61BE8274F9CF000A09A54 /* SessionListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BE7274F9CF000A09A54 /* SessionListViewController.m */; };
18A61BE8274F9CF000A09A54 /* - (BOOL)isHiddenNavBar { return YES; }.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BE7274F9CF000A09A54 /* - (BOOL)isHiddenNavBar { return YES; }.m */; };
18AAF3F0279EA59300CD7DAD /* MessageContentTextClickable.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */; };
18E7B1B226E8AF980064BC9B /* MainPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B126E8AF980064BC9B /* MainPresenter.m */; };
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B626E8B2D10064BC9B /* Api+Main.m */; };
@@ -318,6 +318,8 @@
23FF25622ABAE6310064E904 /* pi_room_game_fine_love.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23FF25612ABAE6310064E904 /* pi_room_game_fine_love.svga */; };
23FF25652ABC3B3C0064E904 /* XPHomeGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF25642ABC3B3B0064E904 /* XPHomeGameView.m */; };
23FF25682ABC3BC00064E904 /* XPHomeGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF25672ABC3BC00064E904 /* XPHomeGameCell.m */; };
23FF256E2ABC48810064E904 /* XPSessionMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF256C2ABC48810064E904 /* XPSessionMainViewController.m */; };
23FF25702ABD456C0064E904 /* pi_home_new_play.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23FF256F2ABD456C0064E904 /* pi_home_new_play.svga */; };
23FF42632AA5861E0055733C /* XPNewHomePartyCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42622AA5861E0055733C /* XPNewHomePartyCollectionViewCell.m */; };
23FF42652AA5AC040055733C /* home_heat.gif in Resources */ = {isa = PBXBuildFile; fileRef = 23FF42642AA5AC040055733C /* home_heat.gif */; };
23FF42672AA5CFBB0055733C /* home_sound_wave.gif in Resources */ = {isa = PBXBuildFile; fileRef = 23FF42662AA5CFBB0055733C /* home_sound_wave.gif */; };
@@ -1601,7 +1603,7 @@
18A61BD5274F7F6900A09A54 /* NetImageConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetImageConfig.h; sourceTree = "<group>"; };
18A61BD6274F7F6900A09A54 /* NetImageConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetImageConfig.m; sourceTree = "<group>"; };
18A61BE6274F9CF000A09A54 /* SessionListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SessionListViewController.h; sourceTree = "<group>"; };
18A61BE7274F9CF000A09A54 /* SessionListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SessionListViewController.m; sourceTree = "<group>"; };
18A61BE7274F9CF000A09A54 /* - (BOOL)isHiddenNavBar { return YES; }.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "- (BOOL)isHiddenNavBar { \treturn YES; }.m"; sourceTree = "<group>"; };
18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentTextClickable.h; sourceTree = "<group>"; };
18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageContentTextClickable.m; sourceTree = "<group>"; };
18E7B1AE26E8AD760064BC9B /* MainProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainProtocol.h; sourceTree = "<group>"; };
@@ -2017,6 +2019,9 @@
23FF25642ABC3B3B0064E904 /* XPHomeGameView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPHomeGameView.m; sourceTree = "<group>"; };
23FF25662ABC3BC00064E904 /* XPHomeGameCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPHomeGameCell.h; sourceTree = "<group>"; };
23FF25672ABC3BC00064E904 /* XPHomeGameCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPHomeGameCell.m; sourceTree = "<group>"; };
23FF256C2ABC48810064E904 /* XPSessionMainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPSessionMainViewController.m; sourceTree = "<group>"; };
23FF256D2ABC48810064E904 /* XPSessionMainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPSessionMainViewController.h; sourceTree = "<group>"; };
23FF256F2ABD456C0064E904 /* pi_home_new_play.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = pi_home_new_play.svga; sourceTree = "<group>"; };
23FF42612AA5861E0055733C /* XPNewHomePartyCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewHomePartyCollectionViewCell.h; sourceTree = "<group>"; };
23FF42622AA5861E0055733C /* XPNewHomePartyCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewHomePartyCollectionViewCell.m; sourceTree = "<group>"; };
23FF42642AA5AC040055733C /* home_heat.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = home_heat.gif; sourceTree = "<group>"; };
@@ -4698,7 +4703,7 @@
isa = PBXGroup;
children = (
18A61BE6274F9CF000A09A54 /* SessionListViewController.h */,
18A61BE7274F9CF000A09A54 /* SessionListViewController.m */,
18A61BE7274F9CF000A09A54 /* - (BOOL)isHiddenNavBar { return YES; }.m */,
18EE3FDD2750C1F700A452BF /* SessionListCell.h */,
18EE3FDE2750C1F700A452BF /* SessionListCell.m */,
);
@@ -5669,13 +5674,15 @@
9B7D804727537819003DAC0C /* Session */ = {
isa = PBXGroup;
children = (
E88E4A7D297673C600019A50 /* View */,
23FF256D2ABC48810064E904 /* XPSessionMainViewController.h */,
23FF256C2ABC48810064E904 /* XPSessionMainViewController.m */,
9B7D80482753783D003DAC0C /* SessionViewController.h */,
9B7D80492753783D003DAC0C /* SessionViewController.m */,
E8E20BD9281645300033B688 /* SessionInfoViewController.h */,
E8E20BDA281645300033B688 /* SessionInfoViewController.m */,
E86E79D428A4EA0C006DAF48 /* SessionRiskCache.h */,
E86E79D528A4EA0C006DAF48 /* SessionRiskCache.m */,
E88E4A7D297673C600019A50 /* View */,
18F403A72758B67900A6C548 /* Content */,
E86B911B281034F10007DEE7 /* Cell */,
);
@@ -8802,6 +8809,7 @@
E8A1E45C276220B100B294CA /* Resources */ = {
isa = PBXGroup;
children = (
23FF256F2ABD456C0064E904 /* pi_home_new_play.svga */,
23FF25612ABAE6310064E904 /* pi_room_game_fine_love.svga */,
232C444A2AB4363200D4B2ED /* pi_room_tarrow_h5_banner.svga */,
23FF42642AA5AC040055733C /* home_heat.gif */,
@@ -10104,6 +10112,7 @@
E80EC85328ACD84000D133C5 /* emoji_84@2x.png in Resources */,
E80EC86428ACD84000D133C5 /* emoji_60@2x.png in Resources */,
E80EC89928ACD84000D133C5 /* emoji_21@2x.png in Resources */,
23FF25702ABD456C0064E904 /* pi_home_new_play.svga in Resources */,
E80EC8BA28ACD84100D133C5 /* emoji.plist in Resources */,
E8729EEC2A3B34D30076D80A /* index.html in Resources */,
E80EC82328ACD84000D133C5 /* emoji_57@2x.png in Resources */,
@@ -10810,7 +10819,7 @@
E8A30BEE28534AB1003B4873 /* XPSessionFindNewPresenter.m in Sources */,
9BDA3E7727FD41C200517FE6 /* XPAnchorFansTeamViewController.m in Sources */,
23E9EAAD2A84C9B800B792F2 /* XPMineUserInfoTagItemView.m in Sources */,
18A61BE8274F9CF000A09A54 /* SessionListViewController.m in Sources */,
18A61BE8274F9CF000A09A54 /* - (BOOL)isHiddenNavBar { return YES; }.m in Sources */,
E8C1CD6A27D8937800376F83 /* XPRoomFaceCollectionViewCell.m in Sources */,
9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */,
23FF427C2AA71CFA0055733C /* XPTreasureFairyBottomView.m in Sources */,
@@ -10968,6 +10977,7 @@
9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */,
E854103928646A00005CFD9F /* XPMonentsReplyMoreTableViewCell.m in Sources */,
9B8DE0E1289CF02900FB6EC2 /* XPGiftCompoundModel.m in Sources */,
23FF256E2ABC48810064E904 /* XPSessionMainViewController.m in Sources */,
E85E7B092A4EB0D200B6D00A /* XPGuildRemoveMemberPresenter.m in Sources */,
E8950186282CAC80007E459A /* XPMonentsTooBarView.m in Sources */,
E86507E5281A7D4D006951B0 /* MessageContentTweetView.m in Sources */,

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -71,10 +71,20 @@ NSString * const KeyWithType(Pi_KeyType type) {
NSString * value = [dic objectForKey:@(type)];
return value;
}
NSDictionary *newDic = @{
@(KeyType_Agora) : @"83a19e8b6aa94ec18efba13dc8fc354a",///
};
NSString * newValue = [newDic objectForKey:@(type)];
if(newValue != nil){
return newValue;
}
NSDictionary * dic = @{
@(KeyType_PasswordEncode) : @"mjaN83evhuwnbE4yEiLQpvH7sALhxCuJ6aPjPlq5amVpHsQtSdbgri3JoHqf/I9+",///1ea53d260ecf11e7b56e00163e046a26
@(KeyType_NTESQuickLoginBusinessId) : @"sCsa0RnuPYtEeE+efSDuHRYEfCObccfLfAK/Sn1LC8X/YifkZfyHNlCts1syZE3R",///60cdaa83aa654e5ea184de7160b4073d
@(KeyType_Agora) : @"HwmdWg0On+bzIrQvJJA3d8rgc0NMYKwMFhYDcygni8lNnfrtqkAfH1+kGUlrWZ0W",///7ae1a8dabe7a44a9a67c829faa409e70
@(KeyType_TRTC) : @"Phn3JPi/ZvZ7zVM099Q3dg==",///1400600174
///h+GaKZVuHTQz0wEHbg8HLaUTL9mCjNDRcRo1OJTESWhiE/lzcnvMEv00/dxu8cOq
@(KeyType_NetEase) : @"d55LVCUFT72SVZskbk1L3ZCVjG+tRnUnOqAGuG04kb9uz+qIvbyudhJLDmbOFDtE",///14ef7a0d0a84cb49bae1c22d78cf1ddf

View File

@@ -78,12 +78,14 @@ typedef NS_ENUM(NSInteger, RoomPKResultType) {
};
typedef NS_ENUM(NSInteger, ContactUseingType) {
///默认
ContactUseingType_Normal = 0,
///在房间内
ContactUseingType_In_Room = 1,
///分享
ContactUseingType_Share = 2,
///默认
ContactUseingType_Normal = 0,
///在房间内
ContactUseingType_In_Room = 1,
///分享
ContactUseingType_Share = 2,
///消息
ContactUseingType_In_Session = 3
};
#endif /* YUMINNNN_h */

View File

@@ -0,0 +1,16 @@
//
// XPSessionMainViewController.h
// xplan-ios
//
// Created by duoban on 2022/10/12.
//
#import <UIKit/UIKit.h>
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPSessionMainViewController : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,243 @@
//
// XPSessionMainViewController.m
// xplan-ios
//
// Created by duoban on 2022/10/12.
//
#import "XPSessionMainViewController.h"
///Tool
#import <JXPagingView/JXPagerView.h>
#import <JXPagingView/JXPagerListRefreshView.h>
#import <JXCategoryView/JXCategoryView.h>
///vc
#import "XPMineAttentionViewController.h"
#import "SessionListViewController.h"
#import "XPMineFriendViewController.h"
#import "XPMineFansViewController.h"
@interface XPSessionMainViewController ()<JXCategoryViewDelegate,JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate>
@property (nonatomic, strong) JXCategoryTitleView *titleView;
@property (nonatomic, strong) JXCategoryIndicatorImageView *lineView;
@property (nonatomic, strong) JXPagerView *pagingView;
@property (nonatomic, strong) NSArray<NSString *> *titles;
@property (nonatomic,strong) UIView *headView;
@property (nonatomic,strong) UIImageView *headBgImageView;
@property (nonatomic,strong) SessionListViewController *sessionListVC;
///
@property (nonatomic,strong) XPMineFriendViewController *friendVC;
///
@property (nonatomic,strong) XPMineAttentionViewController *attentionVC;
///
@property (nonatomic,strong) XPMineFansViewController *fansVC;
///
@property (nonatomic,strong) UIButton * allCleanBtn;
@end
@implementation XPSessionMainViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initSubViews];
[self initSubViewConstraints];
}
- (BOOL)isHiddenNavBar {
return YES;
}
-(void)dealloc{
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
#pragma mark - Private Method
- (void)initSubViews {
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(getTabBarItemBadge:) name:@"kGetTabBarItemBadge" object:nil];
self.view.backgroundColor = [UIColor clearColor];
self.headView = [UIView new];
[self.view addSubview:self.headBgImageView];
[self.view addSubview:self.pagingView];
[self.view addSubview:self.allCleanBtn];
}
- (void)initSubViewConstraints {
[self.headBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.right.equalTo(self.view);
make.height.mas_equalTo(196);
}];
[self.pagingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.equalTo(self.view);
make.bottom.mas_equalTo(-10);
}];
[self.allCleanBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(30);
make.top.mas_equalTo(67);
make.right.mas_equalTo(-15);
}];
}
#pragma mark - SessionListViewController
-(void)getTabBarItemBadge:(NSNotification *)not{
NSInteger badgeValue = [not.userInfo[@"BadgeValue"] integerValue];
if (badgeValue > 0) {
[self.tabBarItem setBadgeValue:[NSString stringWithFormat:@"%ld", badgeValue]];
} else {
[self.tabBarItem setBadgeValue:nil];
}
}
#pragma mark - JXCategoryViewDelegate
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
return 57;
}
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
return self.headView;
}
- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
return 50;
}
- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
return self.titleView;
}
- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
return self.titles.count;
}
- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
UIViewController *viewController;
if (index == 0) {
return self.sessionListVC;
}else if (index == 1){
return self.friendVC;
}
else if (index == 2){
return self.attentionVC;
}else{
return self.fansVC;
}
return (id <JXPagerViewListViewDelegate>)viewController;
}
- (NSArray<NSString *> *)titles {
if (!_titles) {
_titles = @[YMLocalizedString(@"XPSessionMainViewController0"), YMLocalizedString(@"XPSessionMainViewController1"),YMLocalizedString(@"XPSessionMainViewController2"),YMLocalizedString(@"XPSessionMainViewController3")];
}
return _titles;
}
#pragma mark-
- (void)allReadButtonClick:(UIButton *)sender {
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAllReadAction" object:nil];
}
#pragma mark -
- (JXCategoryTitleView *)titleView {
if (!_titleView) {
_titleView = [[JXCategoryTitleView alloc] init];
_titleView.delegate = self;
_titleView.backgroundColor = [UIColor clearColor];
_titleView.titleColor = UIColorFromRGB(0x6D6B89);
_titleView.titleSelectedColor = UIColorFromRGB(0x1F1A4E);
_titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
_titleView.titleSelectedFont = [UIFont boldSystemFontOfSize:22];
_titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
_titleView.contentScrollViewClickTransitionAnimationEnabled = NO;
_titleView.defaultSelectedIndex = 0;
_titleView.averageCellSpacingEnabled = NO;
_titleView.contentEdgeInsetLeft = 20;
_titleView.titles = self.titles;
_titleView.cellSpacing = 20;
_titleView.titles = self.titles;
_titleView.listContainer = (id<JXCategoryViewListContainer>)self.pagingView.listContainerView;
JXCategoryIndicatorImageView *lineView = [[JXCategoryIndicatorImageView alloc] init];
lineView.indicatorImageViewSize = CGSizeMake(45, 10);
lineView.verticalMargin = 10;
lineView.indicatorImageView.layer.masksToBounds = YES;
lineView.indicatorImageView.layer.cornerRadius = 3;
lineView.indicatorImageView.image = [UIImage imageNamed:@"mine_dynamic"];
_titleView.indicators = @[lineView];
}
return _titleView;
}
- (JXPagerView *)pagingView {
if (!_pagingView) {
_pagingView = [[JXPagerView alloc] initWithDelegate:self listContainerType:0];
_pagingView.backgroundColor = [UIColor clearColor];
_pagingView.listContainerView.backgroundColor = [UIColor clearColor];
_pagingView.mainTableView.backgroundColor = [UIColor clearColor];
_pagingView.listContainerView.listCellBackgroundColor = UIColor.clearColor;
_pagingView.pinSectionHeaderVerticalOffset = kNavigationHeight;
_pagingView.isListHorizontalScrollEnabled = NO;
_pagingView.mainTableView.gestureDelegate = self;
}
return _pagingView;
}
-(UIImageView *)headBgImageView{
if (!_headBgImageView){
_headBgImageView = [UIImageView new];
_headBgImageView.image = [UIImage imageNamed:@"message_main_bg"];
}
return _headBgImageView;
}
- (XPMineAttentionViewController *)attentionVC {
if (!_attentionVC) {
_attentionVC = [[XPMineAttentionViewController alloc] init];
_attentionVC.type = ContactUseingType_In_Session;
_attentionVC.isClearColor = YES;
}
return _attentionVC;
}
- (XPMineFriendViewController *)friendVC {
if (!_friendVC) {
_friendVC = [[XPMineFriendViewController alloc] init];
_friendVC.isClearColor = YES;
_friendVC.type = ContactUseingType_In_Session;
}
return _friendVC;
}
- (XPMineFansViewController *)fansVC {
if (!_fansVC) {
_fansVC = [[XPMineFansViewController alloc] init];
_fansVC.type = ContactUseingType_In_Session;
_fansVC.isClearColor = YES;
}
return _fansVC;
}
- (SessionListViewController *)sessionListVC{
if (!_sessionListVC){
_sessionListVC = [[SessionListViewController alloc]init];
}
return _sessionListVC;
}
- (UIButton *)allCleanBtn{
if (!_allCleanBtn){
_allCleanBtn = [UIButton new];
[_allCleanBtn setCornerWithLeftTopCorner:10 rightTopCorner:10 bottomLeftCorner:10 bottomRightCorner:10 size:CGSizeMake(30, 30)];
[_allCleanBtn setImage:[UIImage imageNamed:@"sessionList_clear"] forState:UIControlStateNormal];
[_allCleanBtn addTarget:self action:@selector(allReadButtonClick:) forControlEvents:UIControlEventTouchUpInside];
}
return _allCleanBtn;
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end

View File

@@ -27,11 +27,11 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
#import <Masonry/Masonry.h>
@interface SessionListViewController ()<UITableViewDataSource, UITableViewDelegate, NIMLoginManagerDelegate, NIMConversationManagerDelegate>
@property (nonatomic,strong) UIView *customNavigationBar;
@property (nonatomic,strong) UILabel *titleLabel;
@property (nonatomic, strong) UIButton *allReadButton;
//@property (nonatomic,strong) UIView *customNavigationBar;
//
//@property (nonatomic,strong) UILabel *titleLabel;
//
//@property (nonatomic, strong) UIButton *allReadButton;
/**
*
*/
@@ -57,7 +57,9 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
- (BOOL)isHiddenNavBar {
return YES;
}
- (instancetype)initWithType:(SessionListOpenType)type {
self = [self init];
@@ -80,9 +82,7 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
return self;
}
- (BOOL)isHiddenNavBar {
return YES;;
}
- (void)viewDidLoad {
[super viewDidLoad];
@@ -103,40 +103,22 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
} uid:uid];
}
- (void)initViews {
self.view.backgroundColor = [UIColor clearColor];
if (self.openType == SessionListOpenTypeDefault) {
[self.customNavigationBar addSubview:self.titleLabel];
[self.view addSubview:self.customNavigationBar];
[self.customNavigationBar addSubview:self.allReadButton];
}
[self.view addSubview:self.sessionListView];
}
- (void)initLayout {
if (self.openType == SessionListOpenTypeDefault) {
[self.customNavigationBar mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.view);
make.height.mas_equalTo(kNavigationHeight);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.customNavigationBar);
make.bottom.mas_equalTo(self.customNavigationBar.mas_bottom).offset(-10);
}];
[self.allReadButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-16);
make.width.height.mas_equalTo(30);
make.centerY.mas_equalTo(self.titleLabel);
}];
}
[self.sessionListView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.view);
if (self.openType == SessionListOpenTypeDefault) {
make.top.mas_equalTo(self.view).offset(kNavigationHeight);
} else {
make.top.mas_equalTo(self.view);
}
make.left.right.bottom.mas_equalTo(self.view);
if (self.openType == SessionListOpenTypeDefault) {
make.top.mas_equalTo(self.view);
} else {
make.top.mas_equalTo(self.view);
}
}];
}
@@ -474,24 +456,7 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
}
- (UIView *)customNavigationBar {
if (!_customNavigationBar) {
CGRect frame = CGRectMake(0, kStatusBarHeight, KScreenWidth, 44);
_customNavigationBar = [[UIView alloc]initWithFrame:frame];
}
return _customNavigationBar;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_titleLabel.backgroundColor = [UIColor clearColor];
_titleLabel.font = [UIFont systemFontOfSize:18.f weight:UIFontWeightMedium];
_titleLabel.textColor = DJDKMIMOMColor.mainTextColor;
_titleLabel.text = YMLocalizedString(@"SessionListViewController5");
}
return _titleLabel;
}
- (UITableView *)sessionListView {
if (!_sessionListView) {

View File

@@ -10,6 +10,7 @@
#import "BaseViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
#import <NIMSDK/NIMSDK.h>
#import <JXPagingView/JXPagerView.h>
NS_ASSUME_NONNULL_BEGIN
@@ -18,7 +19,7 @@ typedef NS_ENUM(NSUInteger, SessionListOpenType) {
SessionListOpenTypeRoom = 2,
};
@interface SessionListViewController : BaseViewController<JXCategoryListContentViewDelegate>
@interface SessionListViewController : BaseViewController<JXPagerViewListViewDelegate,JXCategoryListContentViewDelegate>
- (instancetype)initWithType:(SessionListOpenType)type;
/** 控制器 因为房间内聊天没有控制器去push 或者做其他的操作*/

View File

@@ -8,6 +8,7 @@
#import "MvpViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
#import "YUMINNNN.h"
#import <JXPagingView/JXPagerView.h>
NS_ASSUME_NONNULL_BEGIN
@class XPMineAttentionViewController, FansInfoModel;
@@ -16,9 +17,11 @@ NS_ASSUME_NONNULL_BEGIN
- (void)xPMineAttentionViewController:(XPMineAttentionViewController *)viewController didSelectItem:(FansInfoModel *)userInfo;
@end
@interface XPMineAttentionViewController : MvpViewController<JXCategoryListContentViewDelegate>
@interface XPMineAttentionViewController : MvpViewController<JXPagerViewListViewDelegate,JXCategoryListContentViewDelegate>
///类型
@property (nonatomic,assign) ContactUseingType type;
///背景色是否为透明
@property (nonatomic,assign) BOOL isClearColor;
///代理
@property (nonatomic,weak) id<XPMineAttentionViewControllerDelegate> delegate;
/** 控制器 因为房间内聊天没有控制器去push 或者做其他的操作*/

View File

@@ -41,12 +41,13 @@
@property (nonatomic,assign) int page;
///
@property (nonatomic,assign) BOOL hasNoMoreData;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@end
@implementation XPMineAttentionViewController
- (BOOL)isHiddenNavBar {
return self.type == ContactUseingType_In_Room ? YES : NO;
return self.type == ContactUseingType_In_Room || self.type == ContactUseingType_In_Session ? YES : NO;
}
- (XPMineAttentionPresenter *)createPresenter {
@@ -94,6 +95,9 @@
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
self.view.backgroundColor = [UIColor clearColor];
}
self.title = YMLocalizedString(@"XPMineAttentionViewController1");
[self.view addSubview:self.tableView];
}
@@ -211,7 +215,21 @@
- (UIView *)listView {
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
}
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
if(self.scrollCallback){
self.scrollCallback = callback;
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if(self.scrollCallback){
self.scrollCallback(scrollView);
}
}
#pragma mark - Getters And Setters
- (UITableView *)tableView {

View File

@@ -7,6 +7,7 @@
#import "MvpViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
#import <JXPagingView/JXPagerView.h>
#import "YUMINNNN.h"
NS_ASSUME_NONNULL_BEGIN
@class XPMineFansViewController, FansInfoModel;
@@ -16,9 +17,11 @@ NS_ASSUME_NONNULL_BEGIN
@end
@interface XPMineFansViewController : MvpViewController<JXCategoryListContentViewDelegate>
@interface XPMineFansViewController : MvpViewController<JXPagerViewListViewDelegate,JXCategoryListContentViewDelegate>
///类型
@property (nonatomic,assign) ContactUseingType type;
///背景色是否为透明
@property (nonatomic,assign) BOOL isClearColor;
///代理
@property (nonatomic,weak) id<XPMineFansViewControllerDelegate> delegate;
/** 控制器 因为房间内聊天没有控制器去push 或者做其他的操作*/

View File

@@ -36,12 +36,14 @@
@property (nonatomic,assign) int page;
///
@property (nonatomic,assign) BOOL hasNoMoreData;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@end
@implementation XPMineFansViewController
- (BOOL)isHiddenNavBar {
return self.type == ContactUseingType_In_Room ? YES : NO;
return self.type == ContactUseingType_In_Room || self.type == ContactUseingType_In_Session ? YES : NO;
}
- (XPMineFansPresenter *)createPresenter {
@@ -94,6 +96,9 @@
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
self.view.backgroundColor = [UIColor clearColor];
}
self.title = YMLocalizedString(@"XPMineFansViewController1");
[self.view addSubview:self.tableView];
}
@@ -207,7 +212,18 @@
- (UIView *)listView {
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
}
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
self.scrollCallback = callback;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if(self.scrollCallback){
self.scrollCallback(scrollView);
}
}
#pragma mark - mark
- (void)xPMineFansTableViewCell:(XPMineFansTableViewCell *)view didClickAttention:(NSString *)uid {
if (uid.length > 0) {

View File

@@ -8,6 +8,7 @@
#import "MvpViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
#import "YUMINNNN.h"
#import <JXPagingView/JXPagerView.h>
NS_ASSUME_NONNULL_BEGIN
@class XPMineFriendViewController, UserInfoModel;
@protocol XPMineFriendViewControllerDelegate <NSObject>
@@ -15,9 +16,11 @@ NS_ASSUME_NONNULL_BEGIN
- (void)xPMineFriendViewController:(XPMineFriendViewController *)viewController didSelectItem:(UserInfoModel *)userInfo;
@end
@interface XPMineFriendViewController : MvpViewController<JXCategoryListContentViewDelegate>
@interface XPMineFriendViewController : MvpViewController<JXPagerViewListViewDelegate,JXCategoryListContentViewDelegate>
///类型
@property (nonatomic,assign) ContactUseingType type;
///背景色是否为透明
@property (nonatomic,assign) BOOL isClearColor;
///代理
@property (nonatomic,weak) id<XPMineFriendViewControllerDelegate> delegate;
/** 控制器 因为房间内聊天没有控制器去push 或者做其他的操作*/

View File

@@ -33,6 +33,7 @@
@property (nonatomic,assign) int page;
///
@property (nonatomic,assign) BOOL hasNoMoreData;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@end
@implementation XPMineFriendViewController
@@ -42,11 +43,12 @@
}
- (BOOL)isHiddenNavBar {
return self.type == ContactUseingType_In_Room ? YES : NO;
return self.type == ContactUseingType_In_Room || self.type == ContactUseingType_In_Session ? YES : NO;
}
- (void)viewDidLoad {
[super viewDidLoad];
NSArray * array = [[NIMSDK sharedSDK].userManager myFriends];
if (array.count > 0) {
NSMutableArray * uids = [NSMutableArray array];
@@ -61,6 +63,9 @@
}
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
self.view.backgroundColor = [UIColor clearColor];
}
[self.view addSubview:self.tableView];
}
@@ -134,6 +139,18 @@
- (UIView *)listView {
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
}
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
self.scrollCallback = callback;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if(self.scrollCallback){
self.scrollCallback(scrollView);
}
}
#pragma mark - Getters And Setters

View File

@@ -8,6 +8,7 @@
#import "XPNewHomePartyAudioView.h"
#import "XPSkillCardPlayerManager.h"
#import <AFNetworking.h>
#import <SVGA.h>
@interface XPNewHomePartyAudioView ()
///
@property(nonatomic,strong) UIView *bgView;
@@ -19,7 +20,9 @@
@property(nonatomic,strong) UIImageView *audioBgView;
///
@property(nonatomic,strong) UILabel *timeView;
///
@property(nonatomic,strong) SVGAParser *parser;
@property(nonatomic,strong) SVGAImageView *playImageView;
@end
@implementation XPNewHomePartyAudioView
@@ -41,8 +44,17 @@
[self.bgView addSubview:self.signatureView];
[self.bgView addSubview:self.playBnt];
[self.bgView addSubview:self.audioBgView];
[self.bgView addSubview:self.playImageView];
[self.bgView addSubview:self.timeView];
@kWeakify(self);
[self.parser parseWithNamed:@"pi_home_new_play" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.playImageView.loops = INT_MAX;
self.playImageView.clearsAfterStop = NO;
self.playImageView.videoItem = videoItem;
[self.playImageView startAnimation];
} failureBlock:^(NSError * _Nullable error) {
}];
}
-(void)installConstraints{
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -60,6 +72,9 @@
make.width.mas_equalTo(kGetScaleWidth(22));
make.height.mas_equalTo(kGetScaleWidth(10));
}];
[self.playImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.audioBgView);
}];
[self.timeView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(54));
make.height.mas_equalTo(kGetScaleWidth(15));make.centerY.equalTo(self.bgView);
@@ -71,6 +86,8 @@
}
-(void)playAudioAction:(UIButton *)sender{
_playBnt.selected = !_playBnt.selected;
_audioBgView.hidden = _playBnt.selected;
_playImageView.hidden = !_playBnt.selected;
if(self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomePartyAudioView:didClickPlaySound:)]){
[self.delegate xPNewHomePartyAudioView:self didClickPlaySound:_playBnt.selected];
}
@@ -79,6 +96,7 @@
_userVoice = userVoice;
_playBnt.hidden = NO;
_audioBgView.hidden = NO;
_playImageView.hidden = NO;
_timeView.hidden = NO;
_signatureView.hidden = YES;
_signatureView.text = @"";
@@ -92,6 +110,7 @@
_userDesc = userDesc;
_playBnt.hidden = YES;
_audioBgView.hidden = YES;
_playImageView.hidden = YES;
_timeView.hidden = YES;
_signatureView.hidden = NO;
_signatureView.text = _userDesc;
@@ -113,6 +132,8 @@
- (void)setIsPlay:(BOOL)isPlay{
_isPlay = isPlay;
_playBnt.selected = _isPlay;
_playImageView.hidden = !_isPlay;
_audioBgView.hidden = _isPlay;
}
#pragma mark -
- (UIView *)bgView{
@@ -153,4 +174,19 @@
}
return _timeView;
}
- (SVGAParser *)parser{
if(!_parser){
_parser = [SVGAParser new];
}
return _parser;
}
- (SVGAImageView *)playImageView {
if (_playImageView == nil) {
_playImageView = [[SVGAImageView alloc]init];
_playImageView.contentMode = UIViewContentModeScaleToFill;
_playImageView.backgroundColor = [UIColor clearColor];
_playImageView.hidden = NO;
}
return _playImageView;
}
@end

View File

@@ -8,6 +8,7 @@
#import "XPNewHomePartyTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
#import <SVGA.h>
///Tool
#import "DJDKMIMOMColor.h"
#import "NetImageView.h"
@@ -49,6 +50,8 @@
///
@property(nonatomic,strong) NetImageView *charmView;
@property(nonatomic,strong) NSDateFormatter *dateFormatter;
@end
@implementation XPNewHomePartyTableViewCell

View File

@@ -110,10 +110,14 @@
}
#pragma mark -UITextFieldDelegate
- (void)textFieldDidChange:(UITextField *)textField {
if(textField.text.integerValue <= 1){
textField.text = @"1";
if(textField.text.integerValue <= 0){
textField.text = @"";
}else if(textField.text.integerValue > 200){
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPCandyTreeViewController5")];
textField.text = @"200";
}
self.chooseNum = textField.text;
NSArray *btnArr = @[self.oneTapBtn,self.tenTapBtn,self.hundredTapBtn];
for (UIButton *btn in btnArr) {
btn.backgroundColor = [UIColor clearColor];
@@ -121,8 +125,11 @@
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
if(textField.text.length <= 1){
textField.text = @"1";
if(textField.text.length <= 0){
textField.text = @"";
}else if(textField.text.integerValue > 200){
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPCandyTreeViewController5")];
textField.text = @"200";
}
self.chooseNum = textField.text;
NSArray *btnArr = @[self.oneTapBtn,self.tenTapBtn,self.hundredTapBtn];

View File

@@ -15,7 +15,7 @@
@property(nonatomic,strong) UIImageView *bgView;
///
@property(nonatomic,strong) UITextField *textFiled;
@property(nonatomic,assign) NSInteger count;
@end
@implementation XPCandyTreeConfirmBuyNumView
@@ -62,29 +62,31 @@
-(void)setLoveNum:(NSString *)loveNum{
_loveNum = loveNum;
_textFiled.text = _loveNum;
NSInteger count = self.textFiled.text.integerValue/10;
self.count = 10 * count;
}
#pragma mark -UITextFieldDelegate
- (void)textFieldDidChanged:(UITextField *)textField {
if(textField.text.integerValue <= 1){
textField.text = @"1";
if(textField.text.integerValue <= 0){
textField.text = @"";
}else if(textField.text.integerValue > 200){
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPCandyTreeViewController5")];
textField.text = @"200";
}
NSInteger count = textField.text.integerValue/10;
self.count = 10 * count;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:textField.text];
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
if(textField.text.length <= 1){
textField.text = @"1";
if(textField.text.length <= 0){
textField.text = @"";
}else if(textField.text.integerValue > 200){
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPCandyTreeViewController5")];
textField.text = @"200";
}
NSInteger count = textField.text.integerValue/10;
self.count = 10 * count;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:textField.text];
}
@@ -110,22 +112,26 @@
}
-(void)addBtnAction{
NSInteger num = self.count + 10;
self.count = num;
NSInteger num = self.textFiled.text.integerValue + 10;
if(num > 200){
num = 200;
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPCandyTreeViewController5")];
}
self.textFiled.text = @(num).stringValue;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:self.textFiled.text];
}
}
-(void)subtractAction{
NSInteger num = self.count - 10;
if(num <= 1){
num = 1;
NSInteger num = self.textFiled.text.integerValue - 10;
if(num < 0){
self.textFiled.text = @"0";
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:self.textFiled.text];
}
return;
}
NSInteger count = num/10;
self.count = 10 * count;
self.textFiled.text = @(num).stringValue;
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:self.textFiled.text];

View File

@@ -482,6 +482,10 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey;
[self pickCandyPay];
return;
}
if(num.integerValue <= 0){
[self showErrorToast:YMLocalizedString(@"XPCandyTreeViewController2")];
return;
}
[self.presenter buyLoveTicket:num];
return;
};
@@ -499,8 +503,8 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey;
[self pickCandyPay];
return;
}
if(type == 0){
[self.presenter buyLoveTicket:num];
if(num.integerValue <= 0){
[self showErrorToast:YMLocalizedString(@"XPCandyTreeViewController2")];
return;
}
[self.presenter buyLoveTicket:num];

View File

@@ -56,7 +56,7 @@
#import "LoginBindPhoneViewController.h"
#import "LoginFullInfoViewController.h"
#import "XPMineViewController.h"
#import "SessionListViewController.h"
#import "XPSessionMainViewController.h"
#import "XPNewHomeViewController.h"
#import "XPMiniRoomView.h"
#import "XPRoomViewController.h"
@@ -262,6 +262,18 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
self.inviteCode = nil;
}
[self monentsUnReadCount];
NSArray *recentList = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy];
__block NSInteger unreadCount = 0;
NSMutableArray<NSString *> * uids = [[NSMutableArray alloc] init];
[recentList enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[uids addObject:obj.session.sessionId];
unreadCount += obj.unreadCount;
}];
if(unreadCount > 0){
NSUInteger index = 2;
UITabBarItem *item = self.tabBar.items.count > index ? self.tabBar.items[index] : nil;
[item setBadgeValue:[NSString stringWithFormat:@"%ld",unreadCount]];
}
}
self.parentMode = userInfo.parentMode;
for (BaseViewController *vc in self.viewControllers) {
@@ -287,6 +299,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
- (void)bindCodeSuccess{
[self completeUserInfo];
}
///
-(void)requestGiftList{
[self dealWithDefaultSvga];
@@ -665,7 +678,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
UIViewController * home;
UIViewController * monents;
if (logined) {
msg = [[SessionListViewController alloc] init];
msg = [[XPSessionMainViewController alloc] init];
if ([ClientConfig shareConfig].canOpen) {
home = [[XPNewHomeViewController alloc] init];
@@ -678,7 +691,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
}
} else {
game = [[XPBlankViewController alloc]init];
msg = [[SessionListViewController alloc]init];
msg = [[XPSessionMainViewController alloc]init];
me = [[XPBlankViewController alloc]init];
home = [[XPBlankViewController alloc] init];
monents = [[XPBlankViewController alloc] init];

Binary file not shown.

View File

@@ -24,7 +24,7 @@
///XPCandyTreeViewController.m
"XPCandyTreeViewController0" = "%@钻/次";
"XPCandyTreeViewController2" = "开启数量不能为0";
"XPCandyTreeViewController2" = "购买爱心数量不能为0";
"XPCandyTreeViewController4" = "去参与";
"XPCandyTreeViewController5" = "一次只能选择200次";
"XPCandyTreeViewController7" = "排行榜";
@@ -3049,6 +3049,11 @@
///XPHomeGameView
"XPHomeGameView0"="新建房间";
"XPHomeGameView1"="创建房间";
///XPSessionMainViewController.m
"XPSessionMainViewController0" = "消息";
"XPSessionMainViewController1" = "好友";
"XPSessionMainViewController2" = "关注";
"XPSessionMainViewController3" = "粉丝";
///不能脚本生成的
"App_Common_And" = "和";
"App_Common_Male" = "男";

View File

@@ -24,7 +24,7 @@
///XPCandyTreeViewController.m
"XPCandyTreeViewController0" = "%@鉆/次";
"XPCandyTreeViewController2" = "開啟數量不能為0";
"XPCandyTreeViewController2" = "購買愛心數量不能為0";
"XPCandyTreeViewController4" = "去參與";
"XPCandyTreeViewController5" = "一次只能選擇200次";
"XPCandyTreeViewController7" = "排行榜";
@@ -3059,6 +3059,11 @@
"XPHomeGameView0"="新建房間";
"XPHomeGameView1"="創建房間";
///XPSessionMainViewController.m
"XPSessionMainViewController0" = "消息";
"XPSessionMainViewController1" = "好友";
"XPSessionMainViewController2" = "關註";
"XPSessionMainViewController3" = "粉絲";
///不能腳本生成的
"App_Common_And" = "和";
"App_Common_Male" = "男";