粉丝团开通特权弹窗

This commit is contained in:
chenguilong
2022-04-07 15:02:22 +08:00
parent 3df8f50081
commit a1cbfcc2af
38 changed files with 964 additions and 21 deletions

View File

@@ -182,6 +182,8 @@
9BB5495F2782E9DB0090CD26 /* NobleAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB5495E2782E9DB0090CD26 /* NobleAuthInfo.m */; };
9BB549622782EA1D0090CD26 /* NobleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB549612782EA1D0090CD26 /* NobleInfo.m */; };
9BB54966278303EB0090CD26 /* XPNobleCenterNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB54965278303EB0090CD26 /* XPNobleCenterNavView.m */; };
9BB89DC327FE7F3A00586A83 /* XPAnchorFansRelationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB89DC227FE7F3A00586A83 /* XPAnchorFansRelationModel.m */; };
9BB89DC627FEB9E100586A83 /* XPAnchorFansTaskViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB89DC527FEB9E100586A83 /* XPAnchorFansTaskViewController.m */; };
9BBC02872786D75C0007C24B /* XPNobleUpgradeLevelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBC02862786D75C0007C24B /* XPNobleUpgradeLevelView.m */; };
9BBC028B2786E05A0007C24B /* XPNobleCenterEntranceView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBC028A2786E05A0007C24B /* XPNobleCenterEntranceView.m */; };
9BBC028E2786FA060007C24B /* NobleCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBC028D2786FA060007C24B /* NobleCardModel.m */; };
@@ -208,6 +210,9 @@
9BD9A18027A0EFC7004186FE /* XPMineVisitorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17F27A0EFC7004186FE /* XPMineVisitorTableViewCell.m */; };
9BD9A18427A0F128004186FE /* XPMineVisitorItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A18327A0F128004186FE /* XPMineVisitorItemModel.m */; };
9BD9A18727A120FD004186FE /* XPMineVisitorUnReadModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A18627A120FD004186FE /* XPMineVisitorUnReadModel.m */; };
9BDA3E7727FD41C200517FE6 /* XPAnchorFansTeamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7627FD41C200517FE6 /* XPAnchorFansTeamViewController.m */; };
9BDA3E7A27FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7927FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m */; };
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7C27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m */; };
9BE29A6B27D1BFF700446AB5 /* anchor_room_speak.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */; };
9BE29A6D27D210A500446AB5 /* anchor_room_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */; };
9BEE3D0E27853BD000C83219 /* ThemeColor+NobleCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D0D27853BD000C83219 /* ThemeColor+NobleCenter.m */; };
@@ -951,6 +956,10 @@
9BB54964278303EB0090CD26 /* XPNobleCenterNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleCenterNavView.h; sourceTree = "<group>"; };
9BB54965278303EB0090CD26 /* XPNobleCenterNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleCenterNavView.m; sourceTree = "<group>"; };
9BB865B4272076140029CDE0 /* RtcImplDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RtcImplDelegate.h; sourceTree = "<group>"; };
9BB89DC127FE7F3A00586A83 /* XPAnchorFansRelationModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansRelationModel.h; sourceTree = "<group>"; };
9BB89DC227FE7F3A00586A83 /* XPAnchorFansRelationModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansRelationModel.m; sourceTree = "<group>"; };
9BB89DC427FEB9E100586A83 /* XPAnchorFansTaskViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTaskViewController.h; sourceTree = "<group>"; };
9BB89DC527FEB9E100586A83 /* XPAnchorFansTaskViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTaskViewController.m; sourceTree = "<group>"; };
9BBC02852786D75C0007C24B /* XPNobleUpgradeLevelView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleUpgradeLevelView.h; sourceTree = "<group>"; };
9BBC02862786D75C0007C24B /* XPNobleUpgradeLevelView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleUpgradeLevelView.m; sourceTree = "<group>"; };
9BBC02892786E05A0007C24B /* XPNobleCenterEntranceView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleCenterEntranceView.h; sourceTree = "<group>"; };
@@ -1006,6 +1015,13 @@
9BD9A18327A0F128004186FE /* XPMineVisitorItemModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineVisitorItemModel.m; sourceTree = "<group>"; };
9BD9A18527A120FD004186FE /* XPMineVisitorUnReadModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineVisitorUnReadModel.h; sourceTree = "<group>"; };
9BD9A18627A120FD004186FE /* XPMineVisitorUnReadModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineVisitorUnReadModel.m; sourceTree = "<group>"; };
9BDA3E7527FD41C200517FE6 /* XPAnchorFansTeamViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTeamViewController.h; sourceTree = "<group>"; };
9BDA3E7627FD41C200517FE6 /* XPAnchorFansTeamViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTeamViewController.m; sourceTree = "<group>"; };
9BDA3E7827FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTeamEntranceView.h; sourceTree = "<group>"; };
9BDA3E7927FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTeamEntranceView.m; sourceTree = "<group>"; };
9BDA3E7B27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTeamPresenter.h; sourceTree = "<group>"; };
9BDA3E7C27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorFansTeamPresenter.m; sourceTree = "<group>"; };
9BDA3E7F27FD480D00517FE6 /* XPAnchorFansTeamProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorFansTeamProtocol.h; sourceTree = "<group>"; };
9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_speak.svga; sourceTree = "<group>"; };
9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_bg.svga; sourceTree = "<group>"; };
9BEE3D0C27853BD000C83219 /* ThemeColor+NobleCenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+NobleCenter.h"; sourceTree = "<group>"; };
@@ -2526,6 +2542,7 @@
9B7B605827BB52FD0070BB72 /* AnchorView */ = {
isa = PBXGroup;
children = (
9BDA3E7227FD40DC00517FE6 /* FansTeam */,
9B7B606327BBA0D40070BB72 /* Model */,
9B7B606027BB96E40070BB72 /* XPRoomAnchorInfoCardView.h */,
9B7B606127BB96E40070BB72 /* XPRoomAnchorInfoCardView.m */,
@@ -2983,6 +3000,64 @@
path = Visitor;
sourceTree = "<group>";
};
9BDA3E6F27FD401100517FE6 /* Api */ = {
isa = PBXGroup;
children = (
);
path = Api;
sourceTree = "<group>";
};
9BDA3E7027FD401700517FE6 /* View */ = {
isa = PBXGroup;
children = (
9BDA3E7527FD41C200517FE6 /* XPAnchorFansTeamViewController.h */,
9BDA3E7627FD41C200517FE6 /* XPAnchorFansTeamViewController.m */,
9BDA3E7827FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.h */,
9BDA3E7927FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m */,
9BB89DC427FEB9E100586A83 /* XPAnchorFansTaskViewController.h */,
9BB89DC527FEB9E100586A83 /* XPAnchorFansTaskViewController.m */,
);
path = View;
sourceTree = "<group>";
};
9BDA3E7127FD401C00517FE6 /* Presenter */ = {
isa = PBXGroup;
children = (
9BDA3E7B27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.h */,
9BDA3E7C27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
};
9BDA3E7227FD40DC00517FE6 /* FansTeam */ = {
isa = PBXGroup;
children = (
9BDA3E7E27FD47FB00517FE6 /* Protocol */,
9BDA3E7327FD417900517FE6 /* Model */,
9BDA3E7127FD401C00517FE6 /* Presenter */,
9BDA3E6F27FD401100517FE6 /* Api */,
9BDA3E7027FD401700517FE6 /* View */,
);
path = FansTeam;
sourceTree = "<group>";
};
9BDA3E7327FD417900517FE6 /* Model */ = {
isa = PBXGroup;
children = (
9BB89DC127FE7F3A00586A83 /* XPAnchorFansRelationModel.h */,
9BB89DC227FE7F3A00586A83 /* XPAnchorFansRelationModel.m */,
);
path = Model;
sourceTree = "<group>";
};
9BDA3E7E27FD47FB00517FE6 /* Protocol */ = {
isa = PBXGroup;
children = (
9BDA3E7F27FD480D00517FE6 /* XPAnchorFansTeamProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
};
BFB922F5D81845AC32D1E1ED /* Frameworks */ = {
isa = PBXGroup;
children = (
@@ -5166,6 +5241,7 @@
E89D60BD271D647A001F8895 /* XPRoomPresenter.m in Sources */,
E80DE4072775665000BE5BCB /* XPFirstRechargeCollectionViewCell.m in Sources */,
E8899C822785A694007944BE /* DatingInfoModel.m in Sources */,
9BB89DC327FE7F3A00586A83 /* XPAnchorFansRelationModel.m in Sources */,
E8C6FFD72754BC61004DC9F0 /* XPHomeNavView.m in Sources */,
E8AC723226F49710007D6E91 /* XPMineNotificationTableViewCell.m in Sources */,
E8AC722926F488DA007D6E91 /* XPMineFeedbackProtocol.h in Sources */,
@@ -5188,6 +5264,7 @@
9BB54966278303EB0090CD26 /* XPNobleCenterNavView.m in Sources */,
9B92A36327980DCC00AD168F /* Api+SkillCard.m in Sources */,
E88B5CB526FB20B800DA9178 /* XPMineTeenagerPwdView.m in Sources */,
9BDA3E7A27FD43EF00517FE6 /* XPAnchorFansTeamEntranceView.m in Sources */,
E81C279826EB3AC40031E639 /* LoginForgetPasswordProtocol.h in Sources */,
E8C6FFD42754AA87004DC9F0 /* XPNoteView.m in Sources */,
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
@@ -5387,6 +5464,7 @@
186A534B26FC6ED900D67B2C /* TTPopupManagerService.m in Sources */,
18E7B1B226E8AF980064BC9B /* MainPresenter.m in Sources */,
E81366F626F0C0DF0076364C /* LoginFullInfoPresenter.m in Sources */,
9BDA3E7727FD41C200517FE6 /* XPAnchorFansTeamViewController.m in Sources */,
18A61BE8274F9CF000A09A54 /* SessionListViewController.m in Sources */,
E8C1CD6A27D8937800376F83 /* XPRoomFaceCollectionViewCell.m in Sources */,
E8DBB6F927B639A300AA285D /* LittleGameStageView.m in Sources */,
@@ -5412,6 +5490,7 @@
E8B846D626FDE01B00A777FE /* XPMineRechargePresenter.m in Sources */,
E8EEB91426FC7786007C6EBA /* XPMineUserInfoNickViewController.m in Sources */,
18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */,
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */,
E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */,
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */,
E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */,
@@ -5437,6 +5516,7 @@
E8AEAEF327141C7C0017FCE0 /* XPRoomMessageContainerView.m in Sources */,
E8C6FFE02754EEF9004DC9F0 /* XPHomeSearchViewController.m in Sources */,
E8AE427327153A3500BEEBB2 /* XPRoomActivityContainerView.m in Sources */,
9BB89DC627FEB9E100586A83 /* XPAnchorFansTaskViewController.m in Sources */,
E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */,
E8ACEFE927C8BC1600F66D1A /* XPHomeRecommendHeaderView.m in Sources */,
18486217271EAB8C005FC5DC /* BaseRtcImpl.m in Sources */,

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

View File

@@ -54,6 +54,14 @@ typedef NS_ENUM(NSUInteger, URLType) {
kCommunitySpecURL,
///账号注销协议
kAccountlogoutAgrURL,
///主播粉丝团-铭牌申请
kAnchorFansOpenURL,
///主播粉丝团-粉丝列表
kAnchorFansListURL,
///主播粉丝团-粉丝排行
kAnchorFansRankURL,
///主播粉丝团-粉丝团规则
kAnchorFansRuleURL,
};
NSString * const URLWithType(URLType type);

View File

@@ -39,6 +39,10 @@ NSString * const URLWithType(URLType type) {
@(kLiveServiceAgrURL) : @"modules/rule/live-protocol.html", ///
@(kCommunitySpecURL) : @"modules/rule/community-norms.html", ///
@(kAccountlogoutAgrURL) : @"modules/rule/logout-agreement.html", ///
@(kAnchorFansOpenURL) : @"modules/fans_club/nameplate.html", ///-
@(kAnchorFansListURL) : @"modules/fans_club/myfans.html", ///-
@(kAnchorFansRankURL) : @"modules/fans_club/fans_rank.html", ///-
@(kAnchorFansRuleURL) : @"modules/fans_club/rule.html" ///-
};
NSString * url = [dic objectForKey:@(type)];

View File

@@ -141,9 +141,8 @@ NS_ASSUME_NONNULL_BEGIN
/// 进房初始化当前用户与房间粉丝团关系
/// @param completion 完成
/// @param uid 用户uid
/// @param roomUid 房间uid
+ (void)requestInRoomFansTeam:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid;
/// @param teamUid 房间uid
+ (void)requestInRoomFansTeam:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -155,10 +155,9 @@
///
/// @param completion
/// @param uid uid
/// @param roomUid uid
+ (void)requestInRoomFansTeam:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid {
[self makeRequest:@"anchorFansTeam/initInRoomFansTeam" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, roomUid, nil];
/// @param teamUid uid
+ (void)requestInRoomFansTeam:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid {
[self makeRequest:@"anchorFansTeam/initInRoomFansTeam" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, teamUid, nil];
}
@end

View File

@@ -126,6 +126,10 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
@property (nonatomic, assign) int64_t mgId;
///小游戏名称
@property (nonatomic, copy) NSString *mgName;
///是否开通了粉丝团(本地字段)
@property (nonatomic, assign) BOOL hadOpenAnchorFans;
///开通粉丝团红点(本地字段)
@property (nonatomic, assign) BOOL anchorFansRedDot;
@end
NS_ASSUME_NONNULL_END

View File

@@ -48,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN
///进房初始化当前用户与房间粉丝团关系
/// @param uid 用户uid
- (void)getInRoomFansTeamWithUid:(NSString *)uid roomUid:(NSString *)roomUid ;
//- (void)getInRoomFansTeamWithUid:(NSString *)uid roomUid:(NSString *)roomUid ;
@end
NS_ASSUME_NONNULL_END

View File

@@ -186,10 +186,10 @@
///
/// @param uid uid
- (void)getInRoomFansTeamWithUid:(NSString *)uid roomUid:(NSString *)roomUid {
[Api requestInRoomFansTeam:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSLog(@"%@", data);
}] uid:uid roomUid:roomUid];
}
//- (void)getInRoomFansTeamWithUid:(NSString *)uid roomUid:(NSString *)roomUid {
// [Api requestInRoomFansTeam:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
// NSLog(@"%@", data);
// }] uid:uid roomUid:roomUid];
//}
@end

View File

@@ -0,0 +1,25 @@
//
// XPAnchorFansRelationModel.h
// xplan-ios
//
// Created by GreenLand on 2022/4/7.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorFansRelationModel : NSObject
///当前房间是否开通粉丝团
@property (nonatomic, assign) BOOL hasFansTeamCurrentRoom;
///是否为粉丝团成员
@property (nonatomic, assign) BOOL isAnchorFans;
///是否为当前房间的主播
@property (nonatomic, assign) BOOL isCurrentRoomAnchor;
///菜单栏入口是否展示红点提示
@property (nonatomic, assign) BOOL isRedPop;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// XPAnchorFansRelationModel.m
// xplan-ios
//
// Created by GreenLand on 2022/4/7.
//
#import "XPAnchorFansRelationModel.h"
@implementation XPAnchorFansRelationModel
@end

View File

@@ -0,0 +1,16 @@
//
// XPAnchorFansTeamPresenter.h
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorFansTeamPresenter : BaseMvpPresenter
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// XPAnchorFansTeamPresenter.m
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import "XPAnchorFansTeamPresenter.h"
@implementation XPAnchorFansTeamPresenter
@end

View File

@@ -0,0 +1,12 @@
//
// XPAnchorFansTeamProtocol.h
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
@protocol XPAnchorFansTeamProtocol <NSObject>
@end

View File

@@ -0,0 +1,18 @@
//
// XPAnchorFansTaskViewController.h
// xplan-ios
//
// Created by GreenLand on 2022/4/7.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorFansTaskViewController : MvpViewController
- (instancetype)initWithRoomUid:(NSString *)roomUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,12 @@
//
// XPAnchorFansTaskViewController.m
// xplan-ios
//
// Created by GreenLand on 2022/4/7.
//
#import "XPAnchorFansTaskViewController.h"
@implementation XPAnchorFansTaskViewController
@end

View File

@@ -0,0 +1,16 @@
//
// XPAnchorFansTeamEntranceView.h
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorFansTeamEntranceView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,105 @@
//
// XPAnchorFansTeamEntranceView.m
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import "XPAnchorFansTeamEntranceView.h"
///Third
#import <Masonry/Masonry.h>
#import "UIImage+Utils.h"
#import "ThemeColor.h"
@interface XPAnchorFansTeamEntranceView()
///
@property (nonatomic, strong) UIImageView *bgImageView;
///
@property (nonatomic, strong) UIImageView *iconImageView;
///
@property (nonatomic, strong) UILabel *valueLabel;
@end
@implementation XPAnchorFansTeamEntranceView
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.bgImageView];
[self.bgImageView addSubview:self.iconImageView];
[self.bgImageView addSubview:self.valueLabel];
}
- (void)initSubViewConstraints {
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.bgImageView);
}];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(self);
make.left.mas_equalTo(self.valueLabel.mas_left).mas_offset(-8);
make.right.mas_equalTo(self.iconImageView.mas_right).mas_offset(8);
}];
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.bgImageView);
make.width.height.mas_equalTo(13);
}];
[self.valueLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.bgImageView);
make.right.mas_equalTo(self.iconImageView.mas_left).mas_offset(-2);
}];
}
#pragma mark - Getters And Setters
- (void)setGiftValue:(long long)giftValue {
NSString *value;
if (giftValue < 1000000) {
value = @(giftValue).stringValue;
} else if (giftValue >= 100000000) {
value = @"9999万+";
} else {
value = [NSString stringWithFormat:@"%lld万", giftValue/10000];
}
self.valueLabel.text = value;
}
- (UIImageView *)bgImageView {
if (_bgImageView == nil) {
_bgImageView = [[UIImageView alloc] init];
_bgImageView.image = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0xFF2D7C), UIColorFromRGB(0xFF8BB2)] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(20, 50)];
_bgImageView.userInteractionEnabled = YES;
}
return _bgImageView;
}
- (UIImageView *)iconImageView {
if (_iconImageView == nil) {
_iconImageView = [[UIImageView alloc] init];
_iconImageView.userInteractionEnabled = YES;
_iconImageView.image = [UIImage imageNamed:@"room_position_giftValue_heart"];
_iconImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _iconImageView;
}
- (UILabel *)valueLabel {
if (_valueLabel == nil) {
_valueLabel = [[UILabel alloc] init];
_valueLabel.textColor = UIColor.whiteColor;
_valueLabel.font = [UIFont systemFontOfSize:14];
_valueLabel.text = @"0";
}
return _valueLabel;
}
@end

View File

@@ -0,0 +1,18 @@
//
// XPAnchorFansTeamViewController.h
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPAnchorFansTeamViewController : MvpViewController
- (instancetype)initWithRoomUid:(NSString *)roomUid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,433 @@
//
// XPAnchorFansTeamViewController.m
// xplan-ios
//
// Created by GreenLand on 2022/4/6.
//
#import "XPAnchorFansTeamViewController.h"
///P
#import "XPAnchorFansTeamPresenter.h"
#import "XPAnchorFansTeamProtocol.h"
///Third
#import "NetImageView.h"
#import <Masonry/Masonry.h>
///Tool
#import "XPMacro.h"
#import "UIImage+Utils.h"
#import "ThemeColor.h"
@interface XPAnchorFansTeamViewController()<XPAnchorFansTeamProtocol>
///Uid
@property (nonatomic, strong) NSString *roomUid;
///view
@property (nonatomic, strong) UIView *topView;
///view
@property (nonatomic, strong) UIView *contentView;
///
@property (nonatomic, strong) UIImageView *bgImageView;
///
@property (nonatomic, strong) UIButton *helpButton;
///
@property (nonatomic, strong) NetImageView *avatarImageView;
///
@property (nonatomic, strong) UILabel *nameLabel;
///
@property (nonatomic, strong) UILabel *countLabel;
@property (nonatomic, strong) UIStackView *stackView;
///
@property (nonatomic, strong) UIImageView *privilegeTitleImageView;
///
@property (nonatomic, strong) UIView *nameplateBgView;
///
@property (nonatomic, strong) NetImageView *nameplateImageView;
///
@property (nonatomic, strong) UILabel *nameplateLabel;
///
@property (nonatomic, strong) UILabel *nameplateDescLabel;
///
@property (nonatomic, strong) UIView *giftBgView;
///
@property (nonatomic, strong) NetImageView *giftImageView;
///
@property (nonatomic, strong) UILabel *giftLabel;
///
@property (nonatomic, strong) UILabel *giftDescLabel;
///icon
@property (nonatomic, strong) UIImageView *iconImageView;
///
@property (nonatomic, strong) UIButton *joinButton;
@end
@implementation XPAnchorFansTeamViewController
- (instancetype)initWithRoomUid:(NSString *)roomUid {
if (self = [super init]) {
self.roomUid = roomUid;
self.modalPresentationStyle = UIModalPresentationOverFullScreen;
}
return self;
}
- (XPAnchorFansTeamPresenter *)createPresenter {
return [[XPAnchorFansTeamPresenter alloc] init];;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initSubViews];
[self initSubViewConstraints];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
#pragma mark - Private Method
- (void)initSubViews {
self.view.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.topView];
[self.view addSubview:self.contentView];
[self.contentView addSubview:self.bgImageView];
[self.contentView addSubview:self.helpButton];
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.countLabel];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.privilegeTitleImageView];
[self.contentView addSubview:self.nameplateBgView];
[self.nameplateBgView addSubview:self.nameplateImageView];
[self.nameplateBgView addSubview:self.nameplateLabel];
[self.nameplateBgView addSubview:self.nameplateDescLabel];
[self.contentView addSubview:self.giftBgView];
[self.giftBgView addSubview:self.giftImageView];
[self.giftBgView addSubview:self.giftLabel];
[self.giftBgView addSubview:self.giftDescLabel];
[self.contentView addSubview:self.joinButton];
[self.contentView addSubview:self.iconImageView];
}
- (void)initSubViewConstraints {
[self.topView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.contentView.mas_top);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.view);
make.height.mas_equalTo(416);
}];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make){
make.edges.mas_equalTo(0);
}];
[self.helpButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.top.mas_equalTo(15);
make.width.height.mas_equalTo(20);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.width.height.mas_equalTo(64);
make.top.mas_equalTo(36);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(21);
make.left.mas_equalTo(self.avatarImageView).mas_offset(8);
make.top.mas_equalTo(self.avatarImageView).offset(6);
make.right.mas_equalTo(self.countLabel.mas_left).mas_offset(-4);
}];
[self.countLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.nameLabel);
make.right.mas_equalTo(-26);
make.height.mas_equalTo(15);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).mas_offset(8);
make.bottom.mas_equalTo(self.avatarImageView).mas_offset(-3);
}];
[self.privilegeTitleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.avatarImageView.mas_bottom).mas_offset(15);
make.centerX.mas_equalTo(self.contentView);
make.width.mas_equalTo(103);
make.height.mas_equalTo(38);
}];
[self.nameplateBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.privilegeTitleImageView.mas_bottom).offset(7);
make.height.mas_equalTo(58);
}];
[self.nameplateImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(10);
make.centerY.mas_equalTo(self.nameplateBgView);
make.width.height.mas_equalTo(38);
}];
[self.nameplateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameplateImageView.mas_right).mas_offset(8);
make.top.mas_equalTo(self.nameplateImageView).mas_offset(1);
make.height.mas_equalTo(21);
}];
[self.nameplateDescLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.nameplateLabel.mas_bottom);
make.left.mas_equalTo(self.nameplateLabel);
make.height.mas_equalTo(15);
}];
[self.giftBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.top.mas_equalTo(self.nameplateBgView.mas_bottom).offset(12);
make.height.mas_equalTo(58);
}];
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(10);
make.centerY.mas_equalTo(self.giftBgView);
make.width.height.mas_equalTo(38);
}];
[self.giftLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.giftImageView.mas_right).mas_offset(8);
make.top.mas_equalTo(self.giftImageView).mas_offset(1);
make.height.mas_equalTo(21);
}];
[self.giftDescLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.giftLabel.mas_bottom);
make.left.mas_equalTo(self.giftLabel);
make.height.mas_equalTo(15);
}];
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.joinButton);
make.left.mas_equalTo(self.joinButton).mas_offset(15);
make.width.height.mas_equalTo(75);
}];
[self.joinButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView).inset(15);
make.height.mas_equalTo(48);
make.bottom.mas_equalTo(-kSafeAreaBottomHeight - 14);
}];
}
#pragma mark - private
- (void)onDismiss:(UITapGestureRecognizer *)ges {
[self dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark - getter
- (UIView *)topView {
if (!_topView) {
_topView = [[UIView alloc] init];
_topView.backgroundColor = UIColor.blackColor;
_topView.alpha = 0.3;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDismiss:)];
[_topView addGestureRecognizer:tap];
}
return _topView;
}
- (UIView *)contentView {
if (!_contentView) {
_contentView = [[UIView alloc] init];
CAShapeLayer * layer = [CAShapeLayer layer];
layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,416) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath;
_contentView.layer.mask = layer;
}
return _contentView;
}
- (UIImageView *)bgImageView {
if (!_bgImageView) {
_bgImageView = [[UIImageView alloc] init];
_bgImageView.image = [UIImage imageNamed:@"join_anchor_fansTeam_bg"];
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _bgImageView;
}
- (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 = 64 / 2;
}
return _avatarImageView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [UIColor whiteColor];
label.textAlignment = NSTextAlignmentRight;
label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_nameLabel = label;
}
return _nameLabel;
}
- (UILabel *)countLabel {
if (!_countLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [UIColor whiteColor];
label.textAlignment = NSTextAlignmentRight;
label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
_countLabel = label;
}
return _countLabel;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 16;
}
return _stackView;
}
- (UIImageView *)privilegeTitleImageView {
if (!_privilegeTitleImageView) {
_privilegeTitleImageView = [[UIImageView alloc] init];
_privilegeTitleImageView.image = [UIImage imageNamed:@"anchor_fansTeam_nameplate"];
_privilegeTitleImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _privilegeTitleImageView;
}
- (UIView *)nameplateBgView {
if (!_nameplateBgView) {
_nameplateBgView = [[UIView alloc] init];
_nameplateBgView.backgroundColor = [UIColor whiteColor];
_nameplateBgView.layer.cornerRadius = 8;
_nameplateBgView.layer.masksToBounds = YES;
}
return _nameplateBgView;
}
- (NetImageView *)nameplateImageView {
if (!_nameplateImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_nameplateImageView = [[NetImageView alloc] initWithConfig:config];
_nameplateImageView.layer.masksToBounds = YES;
_nameplateImageView.layer.cornerRadius = 8;
}
return _nameplateImageView;
}
- (UILabel *)nameplateLabel; {
if (!_nameplateLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [ThemeColor mainTextColor];
label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
_nameplateLabel = label;
}
return _nameplateLabel;
}
- (UILabel *)nameplateDescLabel; {
if (!_nameplateDescLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [ThemeColor textThirdColor];
label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
_nameplateDescLabel = label;
}
return _nameplateDescLabel;
}
- (UIView *)giftBgView {
if (!_giftBgView) {
_giftBgView = [[UIView alloc] init];
_giftBgView.backgroundColor = [UIColor whiteColor];
_giftBgView.layer.cornerRadius = 8;
_giftBgView.layer.masksToBounds = YES;
}
return _giftBgView;
}
- (NetImageView *)giftImageView {
if (!_giftImageView) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftImageView = [[NetImageView alloc] initWithConfig:config];
_giftImageView.layer.masksToBounds = YES;
_giftImageView.layer.cornerRadius = 8;
}
return _giftImageView;
}
- (UILabel *)giftLabel; {
if (!_giftLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [ThemeColor mainTextColor];
label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
_giftLabel = label;
}
return _giftLabel;
}
- (UILabel *)giftDescLabel; {
if (!_giftDescLabel) {
UILabel *label = [[UILabel alloc] init];
label.textColor = [ThemeColor textThirdColor];
label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
_giftDescLabel = label;
}
return _giftDescLabel;
}
- (UIImageView *)iconImageView {
if (!_iconImageView) {
_iconImageView = [[UIImageView alloc] init];
_iconImageView.image = [UIImage imageNamed:@"anchor_fansTeam_join"];
}
return _iconImageView;
}
- (UIButton *)joinButton {
if (!_joinButton) {
_joinButton = [[UIButton alloc] init];
[_joinButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[UIColorFromRGB(0xFF49A3), UIColorFromRGB(0xFF2B4C)] gradientType:GradientTypeTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
[_joinButton setTitle:@"送入团礼物加入主播粉丝团10钻" forState:UIControlStateNormal];
_joinButton.layer.masksToBounds = YES;
_joinButton.layer.cornerRadius = 24;
_joinButton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
[_joinButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_joinButton addTarget:self action:@selector(doneButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _joinButton;
}
- (UIButton *)helpButton {
if (!_helpButton) {
_helpButton = [[UIButton alloc] init];
[_helpButton addTarget:self action:@selector(helpButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_helpButton setBackgroundImage:[UIImage imageNamed:@"anchor_fansTeam_help"] forState:UIControlStateNormal];
}
return _helpButton;
}
@end

View File

@@ -32,6 +32,7 @@
#import "GiftValueInfoModel.h"
#import "AcrossRoomPKPanelModel.h"
#import "LittleGameInfoModel.h"
#import "XPAnchorFansRelationModel.h"
///View
#import "XPRoomHalfWebView.h"
#import "XPAnchorAudienceUpMicView.h"
@@ -49,6 +50,11 @@
#import "XPRoomViewController.h"
#import "XPLittleGameMiniStageView.h"
#import "XPLittleGameRoomListView.h"
#import "XPAnchorFansTeamEntranceView.h"
#import "XPAnchorFansTeamViewController.h"
#import "XPAnchorFansTaskViewController.h"
#import "XPWebViewController.h"
@interface XPRoomFunctionContainerView ()<XPAcrpssRoomPKPanelViewDelegate, XPRoomLittleGameListViewDelegate>
///host
@property (nonatomic,weak) id<RoomHostDelegate>delegate;
@@ -60,6 +66,8 @@
@property (nonatomic, strong) dispatch_source_t followAnchorTimer;
///
@property (nonatomic, strong) AnchorGiftValueView *anchorGiftValueView;
///
@property (nonatomic, strong) XPAnchorFansTeamEntranceView *fansTeamEntranceView;
///
@property (nonatomic,strong) UIStackView *topicStackView;
///
@@ -113,6 +121,7 @@
[self addSubview:self.contributionButton];
[self addSubview:self.anchorGiftValueView];
[self addSubview:self.topicStackView];
[self addSubview:self.fansTeamEntranceView];
[self.topicStackView addArrangedSubview:self.topicLabel];
[self.topicStackView addArrangedSubview:self.editButton];
}
@@ -129,7 +138,12 @@
make.centerY.mas_equalTo(self.contributionButton);
make.height.mas_equalTo(26);
}];
[self.fansTeamEntranceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.contributionButton.mas_bottom).mas_offset(5);
make.left.mas_equalTo(-12);
make.height.mas_equalTo(26);
make.width.mas_equalTo(90);
}];
[self.topicStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.height.mas_equalTo(15);
@@ -256,6 +270,13 @@
[self.contributionButton mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(statusbarHeight+49);
}];
if (roomInfo.hadChangeRoomType) {
///
[Api requestInRoomFansTeam:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
XPAnchorFansRelationModel *model = [XPAnchorFansRelationModel modelWithJSON:data.data];
[self updateFansTeamEntranceView:model];
} teamUid:[NSString stringWithFormat:@"%ld", roomInfo.uid]];
}
} else {
[self.contributionButton setTitle:@"房间榜" forState:UIControlStateNormal];
self.anchorGiftValueView.hidden = YES;
@@ -280,7 +301,12 @@
[self setFollowAnchorTimer];
}
} uid:uid isLikeUid:roomUid];
}
}
///
[Api requestInRoomFansTeam:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
XPAnchorFansRelationModel *model = [XPAnchorFansRelationModel modelWithJSON:data.data];
[self updateFansTeamEntranceView:model];
} teamUid:roomUid];
}
if (roomInfo.roomModeType == RoomModeType_Open_AcrossRoomPK_mode) {
@@ -600,6 +626,31 @@
}
}
- (void)tapFansTeamRecognizer {
if (self.fansTeamEntranceView.hidden) {
return;
}
NSString *roomUid = [NSString stringWithFormat:@"%zd", self.delegate.getRoomInfo.uid];
RoomInfoModel *roomInfo = self.delegate.getRoomInfo;
if ([[[AccountInfoStorage instance] getUid] isEqualToString:roomUid]) {///
if (roomInfo.hadOpenAnchorFans) {
} else {
XPWebViewController * webVC =[[XPWebViewController alloc] init];
webVC.url = URLWithType(kAnchorFansOpenURL);
[self.delegate.getCurrentNav pushViewController:webVC animated:YES];
}
} else {
// XPAnchorFansTeamViewController *fansTeamVc = [[XPAnchorFansTeamViewController alloc] initWithRoomUid:roomUid];
// [self.delegate.getCurrentNav presentViewController:fansTeamVc animated:YES completion:nil];
XPAnchorFansTaskViewController *fansTaskVc = [[XPAnchorFansTaskViewController alloc] initWithRoomUid:roomUid];
[self.delegate.getCurrentNav presentViewController:fansTaskVc animated:YES completion:nil];
}
}
#pragma mark -
- (void)updateRoomTopicViewConstraint {
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
@@ -742,6 +793,22 @@
}
}
#pragma mark -
- (void)updateFansTeamEntranceView:(XPAnchorFansRelationModel *)model {
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
if ([[[AccountInfoStorage instance] getUid] integerValue] == roomInfo.uid) {
roomInfo.hadOpenAnchorFans = model.hasFansTeamCurrentRoom;
roomInfo.anchorFansRedDot = model.isRedPop;
if (model.hasFansTeamCurrentRoom) {//
self.fansTeamEntranceView.hidden = NO;
} else {
// self.fansTeamEntranceView.hidden = YES;
}
} else {
}
}
#pragma mark - XPRoomLittleGameListViewDelegate
- (void)xPRoomLittleGameListView:(XPLittleGameRoomListView *)view didSelectItem:(LittleGameInfoModel *)itemInfo {
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
@@ -834,6 +901,16 @@
return _anchorGiftValueView;
}
- (XPAnchorFansTeamEntranceView *)fansTeamEntranceView {
if (!_fansTeamEntranceView) {
_fansTeamEntranceView = [[XPAnchorFansTeamEntranceView alloc]init];
// _fansTeamEntranceView.hidden = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapFansTeamRecognizer)];
[_fansTeamEntranceView addGestureRecognizer:tap];
}
return _fansTeamEntranceView;
}
- (UIStackView *)topicStackView {
if (!_topicStackView) {
_topicStackView = [[UIStackView alloc] init];

View File

@@ -51,6 +51,8 @@ typedef NS_ENUM(NSInteger, RoomMoreMenuType) {
@property (nonatomic,strong) UIColor *titleColor;
///类型
@property (nonatomic,assign) RoomMoreMenuType type;
///是否显示红点
@property (nonatomic, assign) BOOL showRedDot;
+(XPRoomMoreItemModel *)initWithTitle:(NSString *)title imageName:(NSString *)imageName type:(RoomMoreMenuType)type titleColor:(UIColor *)titleColor;

View File

@@ -82,6 +82,7 @@
anchorFansClub.imageName = @"room_more_menu_fansTeam";
anchorFansClub.type = RoomMoreMenuType_Room_OpenFansClub;
anchorFansClub.titleColor = [ThemeColor roomMoreMenuTextColor];
anchorFansClub.showRedDot = roomInfo.anchorFansRedDot;
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
@@ -112,7 +113,7 @@
}
}
[array addObject:trumpet];
if (isCreator && roomInfo.type == RoomType_Anchor) {
if (isCreator && roomInfo.type == RoomType_Anchor && !roomInfo.hadOpenAnchorFans) {
[array addObject:anchorFansClub];
}
}

View File

@@ -63,6 +63,7 @@
self.logoImageView.image = [UIImage imageNamed:_itemModel.imageName];
self.titleLabel.text = _itemModel.title;
self.titleLabel.textColor = _itemModel.titleColor ? _itemModel.titleColor : [ThemeColor mainTextColor];
self.redDotView.hidden = !itemModel.showRedDot;
}
}

View File

@@ -291,8 +291,6 @@ UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey;
case RoomMoreMenuType_Room_OpenFansClub:
{
[self dismissViewControllerAnimated:NO completion:nil];
// self.currentNav pushViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#>
}
break;
default:

View File

@@ -479,9 +479,6 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
if (self.roomInfo != nil) {
[self.presenter reportUserInterRoom:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]];
}
if (self.roomInfo.type == RoomType_Anchor) {
[self.presenter getInRoomFansTeamWithUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] roomUid:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]];
}
}
- (void)enterRoomFail:(NSInteger)code {