优化派对页面

This commit is contained in:
liyuhua
2023-10-10 11:19:56 +08:00
parent 4c7e41c3de
commit c376a59d66
14 changed files with 110 additions and 56 deletions

View File

@@ -142,6 +142,8 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo;
///个人详情资料的点单游戏信息
@property(nonatomic,strong) NSArray<UserGameInfoVo *> *userGamePartner;
///pk时不能禁麦
@property(nonatomic,assign) BOOL isNoProhibitMic;
@end
NS_ASSUME_NONNULL_END

View File

@@ -48,7 +48,7 @@ NSString * const KeyWithType(KeyType type) {
@(KeyType_QQSecret) : @"715dd2601777347cd57af77c3e28402f",
@(KeyType_WechatAppid) : @"wx4b772d5ebc964a38",
@(KeyType_WechatSecret) : @"f045979c311e13725cbb9aa87c265668",
@(KeyType_Agora) : @"f045979c311e13725cbb9aa87c265668",
@(KeyType_Agora) : @"36c31139d7b242d98e24c865df14b272",
@(KeyType_TRTC) : @"1400798783",
@(KeyType_NetEase) : @"5e76ec47632d86c30ce18eabfa332b6a",
@(KeyType_APNSCer) : @"yinyouApnsRelease",

View File

@@ -29,7 +29,7 @@
[[self getView] getHomeRecommendRoomListSuccess:array state:state];
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] getHomeRecommendRoomListFail:msg state:state];
}] uid:uid tabId:tabId pageNum:pageStr pageSize:pageSizeStr];
}showLoading:NO] uid:uid tabId:tabId pageNum:pageStr pageSize:pageSizeStr];
}
///
@@ -76,7 +76,7 @@
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView] getPartyRecommendDataFail];
}] uid:uid];
}showLoading:NO] uid:uid];
}
///

View File

@@ -8,9 +8,14 @@
#import "MvpViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
NS_ASSUME_NONNULL_BEGIN
@protocol XPHomeLittleGameViewControllerDelegate <NSObject>
-(void)headerRefreshComplete;
@end
@interface XPHomeLittleGameViewController : MvpViewController<JXCategoryListContentViewDelegate>
@property(nonatomic,weak) id<XPHomeLittleGameViewControllerDelegate>delegate;
- (void)headerRefresh;
@end
NS_ASSUME_NONNULL_END

View File

@@ -71,12 +71,7 @@
}
- (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 = [ThemeColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [ThemeColor secondTextColor];
@@ -147,7 +142,10 @@
if (state == 0) {
self.hasNoMoreData = NO;
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
if(self.delegate && [self.delegate respondsToSelector:@selector(headerRefreshComplete)]){
[self.delegate headerRefreshComplete];
}
} else {
[self.tableView.mj_footer endRefreshing];
}
@@ -162,7 +160,9 @@
- (void)getHomeLittleGameRoomListFail:(NSString *)message state:(int)state {
if (state) {
[self.tableView.mj_header endRefreshing];
if(self.delegate && [self.delegate respondsToSelector:@selector(headerRefreshComplete)]){
[self.delegate headerRefreshComplete];
}
} else {
[self.tableView.mj_footer endRefreshing];
}

View File

@@ -7,12 +7,21 @@
#import "MvpViewController.h"
@protocol XPPartyListViewControllerDelegate <NSObject>
-(void)headerRefreshComplete;
@end
NS_ASSUME_NONNULL_BEGIN
@interface XPPartyListViewController : MvpViewController
///模块的 ID
@property (nonatomic,copy) NSString *tabId;
@property(nonatomic,weak) id<XPPartyListViewControllerDelegate>delegate;
- (void)headerRefresh;
@end

View File

@@ -38,7 +38,7 @@
///
@property (nonatomic,assign) BOOL hasNoMoreData;
@property (nonatomic, assign) BOOL hadLoad;
@end
@@ -61,20 +61,11 @@
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (!self.hadLoad) {
self.hadLoad = YES;
[XCHUDTool showAnchorLoading];
}
[self headerRefresh];
}
- (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 = [ThemeColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
self.collectionView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [ThemeColor secondTextColor];
@@ -84,6 +75,7 @@
}
#pragma mark - fangfa
- (void)headerRefresh {
if ([self.tabId isEqualToString:@"recommend"]) {
[self.presenter getPartyRecommendRoomList];
@@ -134,7 +126,10 @@
if (state == 0) {
self.hasNoMoreData = NO;
[self.dataSource removeAllObjects];
[self.collectionView.mj_header endRefreshing];
if(self.delegate && [self.delegate respondsToSelector:@selector(headerRefreshComplete)]){
[self.delegate headerRefreshComplete];
}
} else {
[self.collectionView.mj_footer endRefreshing];
}
@@ -153,7 +148,11 @@
}
- (void)getHomeRecommendRoomListFail:(NSString *)message state:(BOOL)state {
if (state == 0) {
[self.collectionView.mj_header endRefreshing];
if(self.delegate && [self.delegate respondsToSelector:@selector(headerRefreshComplete)]){
[self.delegate headerRefreshComplete];
}
} else {
[self.collectionView.mj_footer endRefreshing];
}
@@ -165,7 +164,11 @@
[self.dataSource removeAllObjects];
[self.dataSource addObjectsFromArray:list];
[self.collectionView reloadData];
[self.collectionView.mj_header endRefreshing];
if(self.delegate && [self.delegate respondsToSelector:@selector(headerRefreshComplete)]){
[self.delegate headerRefreshComplete];
}
[self.collectionView.mj_footer endRefreshing];
[XCHUDTool hideHUD];
}

View File

@@ -33,7 +33,7 @@
#import "HomeTagModel.h"
#import "HomePlayRoomModel.h"
@interface XPPartyViewController ()<JXCategoryViewDelegate,JXPagerViewDelegate,XPHomeContainerProtocol,XPPartyHeaderViewDelegate>
@interface XPPartyViewController ()<JXCategoryViewDelegate,JXPagerViewDelegate,XPHomeContainerProtocol,XPPartyHeaderViewDelegate,XPPartyListViewControllerDelegate,XPHomeLittleGameViewControllerDelegate>
{
NSTimer * timer;
}
@@ -49,7 +49,7 @@
@property (nonatomic,copy) NSArray<HomeTagModel *> *tagList;
///view
@property (nonatomic, strong) XPTeenagerHomeView *teenagerView;
@property(nonatomic,assign) NSInteger selectedIndex;
@end
@implementation XPPartyViewController
@@ -79,6 +79,8 @@
- (void)viewDidLoad {
[super viewDidLoad];
self.selectedIndex = 0;
[self initHttp];
[self initSubViews];
[self addTimer];
[self initHeaderAndFooterRrfresh];
@@ -105,12 +107,26 @@
[self headerRefresh];
} userInfo:nil repeats:YES];
}
#pragma mark - InitHttp
- (void)headerRefresh {
- (void)initHttp {
if (_parentMode) return;
[self.presenter getHomeTagList];
[self requestBanner];
}
#pragma mark - InitHttp
- (void)headerRefresh {
if (_parentMode) return;
HomeTagModel *tag = [self.tagList safeObjectAtIndex1:self.selectedIndex];
if ([tag.name isEqualToString:@"小游戏"]) {
XPHomeLittleGameViewController<JXPagerViewListViewDelegate> * homeV = (XPHomeLittleGameViewController<JXPagerViewListViewDelegate> *)[self.pagingView.validListDict objectForKey:[NSNumber numberWithInteger:self.selectedIndex]];
[homeV headerRefresh];
} else {
XPPartyListViewController<JXPagerViewListViewDelegate> * homeV = (XPPartyListViewController<JXPagerViewListViewDelegate> *)[self.pagingView.validListDict objectForKey:[NSNumber numberWithInteger:self.selectedIndex]];
[homeV headerRefresh];
}
}
- (void)initHeaderAndFooterRrfresh {
@@ -123,6 +139,8 @@
}
- (void)requestBanner {
self.pagingView.hidden = YES;
[self showAnchorLoading];
NSString * uid = [AccountInfoStorage instance].getUid;
[Api homePlayGameTeam:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
@@ -135,7 +153,9 @@
}
}
[self hideHUD];
self.pagingView.hidden = NO;
[self.pagingView reloadData];
[self.pagingView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0];
}else{
}
@@ -146,20 +166,17 @@
- (void)initSubViews {
self.view.backgroundColor = UIColor.whiteColor;
[self.view addSubview:self.pagingView];
[self.pagingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.view);
make.top.mas_equalTo(kStatusBarHeight);
}];
}
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
CGRect frame = self.view.bounds;
frame.origin.y = kStatusBarHeight;
frame.size.height = frame.size.height - frame.origin.y;
self.pagingView.frame = frame;
}
#pragma mark - XPHomeContainerProtocol
- (void)getHomeTagListSuccess:(NSArray<HomeTagModel *> *)array {
[self.pagingView.mainTableView.mj_header endRefreshing];
NSMutableArray<HomeTagModel *> *tempArr = [array mutableCopy];
if (tempArr) {
HomeTagModel *recommend = [[HomeTagModel alloc] init];
@@ -178,7 +195,10 @@
self.titleView.titles = self.titles;
[self.titleView reloadData];
}
#pragma mark- XPPartyListViewControllerDelegate
- (void)headerRefreshComplete{
[self.pagingView.mainTableView.mj_header endRefreshing];
}
#pragma mark - XPPartyHeaderViewDelegate
/// banner
- (void)partyHeaderViewClickBanner:(HomeBannerInfoModel *)banner {
@@ -230,14 +250,18 @@
HomeTagModel *tag = [self.tagList safeObjectAtIndex1:index];
if ([tag.name isEqualToString:@"小游戏"]) {
XPHomeLittleGameViewController * likeVC = [[XPHomeLittleGameViewController alloc] init];
likeVC.delegate = self;
return (id <JXPagerViewListViewDelegate>)likeVC;
} else {
XPPartyListViewController *listVC = [[XPPartyListViewController alloc] init];
listVC.tabId = tag.tid;
listVC.delegate = self;
return (id <JXPagerViewListViewDelegate>)listVC;
}
}
- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index{
self.selectedIndex = index;
}
#pragma mark - Getters And Setters

View File

@@ -148,15 +148,15 @@
}
-(void)resumeTimer{
if(self.giftEffectTimer != nil){
dispatch_resume(self.giftEffectTimer);
dispatch_cancel(self.giftEffectTimer);
self.giftEffectTimer = nil;
}
if(self.luckyprizeTimer != nil){
dispatch_resume(self.luckyprizeTimer);
dispatch_cancel(self.luckyprizeTimer);
self.luckyprizeTimer = nil;
}
if(self.giftTimer != nil){
dispatch_resume(self.giftTimer);
dispatch_cancel(self.giftTimer);
self.giftTimer = nil;
}
}

View File

@@ -609,7 +609,9 @@
micModel.userInfo.groupType = GroupType_default;
NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init];
request.key = [NSString stringWithFormat:@"%d", micModel.microState.position];
request.value = [[self userInfoToQueueExt:micModel.userInfo] toJSONString];
NSMutableDictionary *curUserInfo = [[NSMutableDictionary alloc]initWithDictionary:[self userInfoToQueueExt:micModel.userInfo]];
[curUserInfo setValue:@(YES) forKey:@"isNoProhibitMic"];
request.value = [curUserInfo toJSONString];
NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId];
request.roomId = roomId;
request.transient = YES;
@@ -797,6 +799,7 @@
[data removeObjectForKey:@"userUrl"];
[data removeObjectForKey:@"isSelect"];
[data removeObjectForKey:@"isEnableChoose"];
[data setValue:@(YES) forKey:@"isNoProhibitMic"];
[dic setValue:data forKey:model.uid];
}
@@ -811,6 +814,7 @@
[data removeObjectForKey:@"userUrl"];
[data removeObjectForKey:@"isSelect"];
[data removeObjectForKey:@"isEnableChoose"];
[data setValue:@(YES) forKey:@"isNoProhibitMic"];
[dic setValue:data forKey:model.uid];
}

View File

@@ -88,8 +88,8 @@
self.duraTime = 30;
self.voteType = RoomPKVoteModeType_GiftValue;
NSArray * array = self.hostDelegate.getRoomPKGroupTeamList;
self.redUserArray = [array safeObjectAtIndex1:0];
self.blueUserArray = [array safeObjectAtIndex1:1];
self.redUserArray = [NSMutableArray arrayWithArray:[array safeObjectAtIndex1:0]];
self.blueUserArray = [NSMutableArray arrayWithArray:[array safeObjectAtIndex1:1]];
for (RoomPKChooseUserModel * userInfo in self.redUserArray) {
userInfo.groupType = GroupType_default;
}
@@ -271,9 +271,9 @@
}
}
for (int i = 0; i < self.redUserArray.count; i++) {
RoomPKChooseUserModel * userInfo = [self.redUserArray safeObjectAtIndex1:i];
NSMutableArray *redArray = [[NSMutableArray alloc]initWithArray:self.redUserArray];
for (int i = 0; i < redArray.count; i++) {
RoomPKChooseUserModel * userInfo = [redArray safeObjectAtIndex1:i];
if (i < self.redTeamViews.count) {
XPRoomPKUserView * userView = [self.redTeamViews safeObjectAtIndex1:i];
if (userInfo.groupType == GroupType_Red) {
@@ -284,14 +284,16 @@
}
}
}
for (int i = 0; i < self.blueUserArray.count; i++) {
RoomPKChooseUserModel * userInfo = [self.blueUserArray safeObjectAtIndex1:i];
NSMutableArray *blueUserArray = [[NSMutableArray alloc]initWithArray:self.blueUserArray];
for (int i = 0; i < blueUserArray.count; i++) {
RoomPKChooseUserModel * userInfo = [blueUserArray safeObjectAtIndex1:i];
if (i < self.blueTeamViews.count) {
XPRoomPKUserView * userView = [self.blueTeamViews safeObjectAtIndex1:i];
if (userInfo.groupType == GroupType_Blue) {
userView.userInfo = userInfo;
} else {
userView.userInfo = nil;
[self.blueUserArray removeObject:userInfo];
}
}

View File

@@ -205,7 +205,9 @@
return;
}
NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
request.value = [[self userInfoToQueueExt:userInfo] toJSONString];
NSMutableDictionary *curUserInfo = [[NSMutableDictionary alloc]initWithDictionary:[self userInfoToQueueExt:userInfo]];
[curUserInfo setValue:@(YES) forKey:@"isNoProhibitMic"];
request.value = [curUserInfo toJSONString];
request.roomId = roomId;
request.transient = YES;
[[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) {

View File

@@ -592,7 +592,7 @@
} roomUid:roomUid micUid:uid position:position uid:uid];
}
//
if (sequence && sequence.userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
if (sequence && sequence.userInfo.uid == [AccountInfoStorage instance].getUid.integerValue && userInfo.isNoProhibitMic == NO) {
[RtcManager instance].localMuted = YES;
}
}
@@ -723,7 +723,9 @@
userInfo.groupType = pkUserInfo.groupType;
NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init];
request.key = position;
request.value = [[self userInfoToQueueExt:userInfo] toJSONString];
NSMutableDictionary *curUserInfo = [[NSMutableDictionary alloc]initWithDictionary:[self userInfoToQueueExt:userInfo]];
[curUserInfo setValue:@(YES) forKey:@"isNoProhibitMic"];
request.value = [curUserInfo toJSONString];
request.roomId = roomId;
request.transient = YES;
[[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) {

View File

@@ -497,6 +497,7 @@ NSString * const kOpenNativeTarotPay = @"openNativeTarotPay";
topicVC.worldId = topicId;
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:topicVC animated:YES];
}
break;
default:
break;
}