Commit d9e1a5b9 by suolong

完成主播端设置礼物互动ui和api

parent e2dba143
Showing with 670 additions and 54 deletions
......@@ -1336,8 +1336,14 @@
BED6586C2C5B745E00668116 /* FUSLiveMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BED655592C5B745D00668116 /* FUSLiveMainViewController.m */; };
BEEF8E4B2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEF8E492F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.h */; };
BEEF8E4C2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEF8E4A2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.m */; };
BEEF8E6C2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEF8E6A2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.h */; };
BEEF8E6D2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEF8E6B2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.m */; };
BEEF8E5A2F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEF8E562F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.h */; };
BEEF8E5B2F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEF8E572F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.m */; };
BEF0A1072F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF0A1012F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.h */; };
BEF0A1052F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BEF0A1022F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.m */; };
BEF0A1082F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF0A1032F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.h */; };
BEF0A1062F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.m in Sources */ = {isa = PBXBuildFile; fileRef = BEF0A1042F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.m */; };
BEEF8E512F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEF8E4D2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.h */; };
BEEF8E522F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEF8E4E2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.m */; };
BEEF8E532F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEF8E4F2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.h */; };
......@@ -3721,12 +3727,18 @@
BED6555B2C5B745D00668116 /* VELPictureInPictureController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VELPictureInPictureController.m; sourceTree = "<group>"; };
BEEF8E492F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractSettingViewController.h; sourceTree = "<group>"; };
BEEF8E4A2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractSettingViewController.m; sourceTree = "<group>"; };
BEEF8E6A2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractSettingItemModel.h; sourceTree = "<group>"; };
BEEF8E6B2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractSettingItemModel.m; sourceTree = "<group>"; };
BEEF8E562F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractAddPopView.h; sourceTree = "<group>"; };
BEEF8E572F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractAddPopView.m; sourceTree = "<group>"; };
BEF0A1032F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractGiftDropdownView.h; sourceTree = "<group>"; };
BEF0A1042F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractGiftDropdownView.m; sourceTree = "<group>"; };
BEEF8E4D2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractSettingEnableCell.h; sourceTree = "<group>"; };
BEEF8E4E2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractSettingEnableCell.m; sourceTree = "<group>"; };
BEEF8E4F2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractSettingItemCell.h; sourceTree = "<group>"; };
BEEF8E502F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractSettingItemCell.m; sourceTree = "<group>"; };
BEF0A1012F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSLiveGiftInteractGiftDropdownCell.h; sourceTree = "<group>"; };
BEF0A1022F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSLiveGiftInteractGiftDropdownCell.m; sourceTree = "<group>"; };
BED6555D2C5B745D00668116 /* FUSBarrageCardModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUSBarrageCardModel.h; sourceTree = "<group>"; };
BED6555E2C5B745D00668116 /* FUSBarrageCardModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUSBarrageCardModel.m; sourceTree = "<group>"; };
BED655612C5B745D00668116 /* FUSGiftSendToModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUSGiftSendToModel.h; sourceTree = "<group>"; };
......@@ -6572,13 +6584,25 @@
BED6555B2C5B745D00668116 /* VELPictureInPictureController.m */,
BEEF8E492F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.h */,
BEEF8E4A2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.m */,
BEEF8E6E2F90000200A1B2C3 /* Model */,
BEEF8E562F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.h */,
BEEF8E572F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.m */,
BEF0A1032F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.h */,
BEF0A1042F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.m */,
BEEF8E552F6F0C7E00A1B2C3 /* cell */,
);
path = Controller;
sourceTree = "<group>";
};
BEEF8E6E2F90000200A1B2C3 /* Model */ = {
isa = PBXGroup;
children = (
BEEF8E6A2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.h */,
BEEF8E6B2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.m */,
);
path = Model;
sourceTree = "<group>";
};
BEEF8E552F6F0C7E00A1B2C3 /* cell */ = {
isa = PBXGroup;
children = (
......@@ -6586,6 +6610,8 @@
BEEF8E4E2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.m */,
BEEF8E4F2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.h */,
BEEF8E502F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.m */,
BEF0A1012F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.h */,
BEF0A1022F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.m */,
);
path = cell;
sourceTree = "<group>";
......@@ -8797,9 +8823,12 @@
BED65A322C5B745F00668116 /* FUSLiveShareToChatView.h in Headers */,
BED6586B2C5B745E00668116 /* FUSLiveMainViewController.h in Headers */,
BEEF8E4B2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.h in Headers */,
BEEF8E6C2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.h in Headers */,
BEEF8E5A2F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.h in Headers */,
BEF0A1082F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.h in Headers */,
BEEF8E512F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.h in Headers */,
BEEF8E532F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.h in Headers */,
BEF0A1072F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.h in Headers */,
BE189DC12C733B460008418B /* FSRActiveViewController.h in Headers */,
BED658F72C5B745E00668116 /* FUSLiveChatFastInputCell.h in Headers */,
BED65AAA2C5B745F00668116 /* FUSHomeView.h in Headers */,
......@@ -10955,9 +10984,12 @@
BED658CA2C5B745E00668116 /* FUSContributeListModel.m in Sources */,
BED6586C2C5B745E00668116 /* FUSLiveMainViewController.m in Sources */,
BEEF8E4C2F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingViewController.m in Sources */,
BEEF8E6D2F90000100A1B2C3 /* FUSLiveGiftInteractSettingItemModel.m in Sources */,
BEEF8E5B2F7B000100A1B2C3 /* FUSLiveGiftInteractAddPopView.m in Sources */,
BEF0A1062F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownView.m in Sources */,
BEEF8E522F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingEnableCell.m in Sources */,
BEEF8E542F6F0C7E00A1B2C3 /* FUSLiveGiftInteractSettingItemCell.m in Sources */,
BEF0A1052F86AA0100ABCDEF /* FUSLiveGiftInteractGiftDropdownCell.m in Sources */,
BED659A82C5B745F00668116 /* FUSLinkMicSettingView.m in Sources */,
BED65A3A2C5B745F00668116 /* FUSTreasureBoxInfoModel.m in Sources */,
BED6589E2C5B745E00668116 /* FUSBlurImageView.m in Sources */,
......@@ -9,10 +9,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) void (^saveHandler)(NSString *desc, FUSLiveGiftDataModel *gift, NSInteger count);
@property (nonatomic, copy, nullable) void (^dismissHandler)(void);
- (void)show;
- (void)showInView:(UIView *)view;
- (void)dismiss;
@end
NS_ASSUME_NONNULL_END
#import "FUSLiveGiftInteractAddPopView.h"
#import "FUSGiftDataCenter.h"
#import "FUSDialogView.h"
#import "FUSLiveGiftDataModel.h"
#import "FUSLiveGiftInteractGiftDropdownView.h"
#import "FUSTextField.h"
#import "UIViewController+FUSExpand.h"
@interface FUSLiveGiftInteractAddPopView ()
@interface FUSLiveGiftInteractAddPopView () <UITextFieldDelegate>
@property (nonatomic, strong) UIControl *maskView;
@property (nonatomic, strong) UIView *contentView;
......@@ -19,6 +21,8 @@
@property (nonatomic, strong) UIControl *giftSelectView;
@property (nonatomic, strong) UILabel *giftLabel;
@property (nonatomic, strong) UIImageView *giftArrowView;
@property (nonatomic, strong) FUSLiveGiftInteractGiftDropdownView *giftDropdownView;
@property (nonatomic, assign) BOOL giftDropdownVisible;
@property (nonatomic, strong) UILabel *countTitleLabel;
@property (nonatomic, strong) UILabel *countLabel;
......@@ -47,6 +51,15 @@
return self;
}
- (void)show {
UIViewController *topVC = [UIViewController fus_topViewController];
UIView *container = topVC.navigationController ? topVC.navigationController.view : topVC.view;
if (!container) {
container = [UIViewController fus_topMostWindow];
}
[self showInView:container];
}
- (void)showInView:(UIView *)view {
if (!view) {
return;
......@@ -63,7 +76,9 @@
self.giftLabel.textColor = [UIColor colorWithHex:@"#999999"];
self.giftLabel.text = [NSString fus_localString:@"请选择礼物"];
self.descField.text = @"";
[self.descField resignFirstResponder];
[self fus_setGiftArrowExpanded:NO];
[self fus_hideGiftDropdown];
self.countOptions = @[@(1)];
self.countIndex = 0;
[self fus_applyCountIndex:0];
......@@ -78,6 +93,7 @@
return;
}
self.isDismissing = YES;
[self fus_hideGiftDropdown];
[self endEditing:YES];
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
self.maskView.alpha = 0;
......@@ -124,6 +140,12 @@
self.giftSelectView.frame = CGRectMake(padding, y, fieldW, fieldH);
self.giftLabel.frame = CGRectMake(12, 0, fieldW - 12 - 12 - 14, fieldH);
self.giftArrowView.frame = CGRectMake(fieldW - 12 - 14, (fieldH - 14) / 2.0, 14, 14);
CGFloat dropdownY = CGRectGetMaxY(self.giftSelectView.frame) + 4;
CGFloat dropdownMaxH = MAX(0, contentH - 8 - dropdownY);
CGFloat dropdownH = [self.giftDropdownView fus_preferredHeightWithMaxHeight:dropdownMaxH];
self.giftDropdownView.frame = CGRectMake(padding, dropdownY, fieldW, dropdownH);
y = CGRectGetMaxY(self.giftSelectView.frame) + sectionGap;
self.countTitleLabel.frame = CGRectMake(padding, y, fieldW, labelH);
......@@ -134,11 +156,13 @@
self.plusBtn.frame = CGRectMake(padding + fieldW - btnSize, y, btnSize, btnSize);
self.countLabel.frame = CGRectMake(CGRectGetMaxX(self.minusBtn.frame), y, fieldW - btnSize * 2, btnSize);
CGFloat btnW = (contentW - padding * 2 - 14) / 2.0;
CGFloat bottomBtnH = 44;
CGFloat bottomY = contentH - 16 - bottomBtnH;
CGFloat btnW = (contentW - padding * 2 - 14) / 2.0;
self.cancelBtn.frame = CGRectMake(padding, bottomY, btnW, bottomBtnH);
self.saveBtn.frame = CGRectMake(CGRectGetMaxX(self.cancelBtn.frame) + 14, bottomY, btnW, bottomBtnH);
self.giftDropdownView.hidden = !self.giftDropdownVisible || dropdownH <= 0;
}
- (void)fus_buildUI {
......@@ -180,6 +204,9 @@
descField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:[NSString fus_localString:@"例如:做鬼脸"] attributes:@{NSForegroundColorAttributeName:[UIColor colorWithHex:@"#999999"], NSFontAttributeName:[UIFont fus_themeFont:14]}];
descField.checkChineseLen = NO;
descField.textMaxLength = 6;
descField.returnKeyType = UIReturnKeyDone;
descField.enablesReturnKeyAutomatically = YES;
descField.delegate = self;
descField.contentEdgeInsets = UIEdgeInsetsMake(0, 12, 0, 12);
[content addSubview:descField];
self.descField = descField;
......@@ -212,6 +239,20 @@
[giftSelect addSubview:arrow];
self.giftArrowView = arrow;
FUSLiveGiftInteractGiftDropdownView *dropdown = [[FUSLiveGiftInteractGiftDropdownView alloc] initWithFrame:CGRectZero];
dropdown.hidden = YES;
__weak typeof(self) weakSelf = self;
dropdown.selectHandler = ^(FUSLiveGiftDataModel *gift) {
weakSelf.selectedGift = gift;
NSString *name = gift.name.length ? gift.name : [NSString fus_localString:@"礼物"];
weakSelf.giftLabel.textColor = [UIColor colorWithHex:@"#22222B"];
weakSelf.giftLabel.text = name;
[weakSelf fus_hideGiftDropdown];
[weakSelf fus_updateCountOptionsForGift:gift];
};
[content addSubview:dropdown];
self.giftDropdownView = dropdown;
UILabel *countTitle = [[UILabel alloc] initWithFrame:CGRectZero];
countTitle.font = [UIFont fus_themeFont:12];
countTitle.textColor = [UIColor colorWithHex:@"#666666"];
......@@ -277,6 +318,7 @@
}
- (void)fus_onMaskTouchDown {
[self fus_hideGiftDropdown];
[self endEditing:YES];
}
......@@ -303,6 +345,7 @@
}
- (void)fus_onTapGiftSelect {
[self endEditing:YES];
if (self.giftList.count > 0) {
[self fus_presentGiftPicker];
return;
......@@ -336,40 +379,33 @@
}
- (void)fus_presentGiftPicker {
if (self.giftList.count == 0) {
[FUSDialogView fus_showDialog:[NSString fus_localString:@"暂无可选礼物"]];
if (self.giftDropdownVisible) {
[self fus_hideGiftDropdown];
return;
}
[self fus_showGiftDropdown];
}
[self fus_setGiftArrowExpanded:YES];
UIAlertController *ac = [UIAlertController alertControllerWithTitle:[NSString fus_localString:@"请选择礼物"] message:nil preferredStyle:UIAlertControllerStyleActionSheet];
__weak typeof(self) weakSelf = self;
NSInteger maxCount = MIN(self.giftList.count, 30);
for (NSInteger i = 0; i < maxCount; i++) {
FUSLiveGiftDataModel *model = self.giftList[i];
NSString *name = model.name.length ? model.name : [NSString stringWithFormat:@"%@%ld", [NSString fus_localString:@"礼物"], (long)i];
[ac addAction:[UIAlertAction actionWithTitle:name style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
weakSelf.selectedGift = model;
weakSelf.giftLabel.textColor = [UIColor colorWithHex:@"#22222B"];
weakSelf.giftLabel.text = name;
[weakSelf fus_setGiftArrowExpanded:NO];
[weakSelf fus_updateCountOptionsForGift:model];
}]];
- (void)fus_showGiftDropdown {
if (self.giftList.count == 0) {
return;
}
self.giftDropdownVisible = YES;
[self fus_setGiftArrowExpanded:YES];
self.giftDropdownView.giftList = self.giftList;
self.giftDropdownView.selectedGift = self.selectedGift;
[self.giftDropdownView fus_reload];
[self.contentView bringSubviewToFront:self.giftDropdownView];
[self setNeedsLayout];
}
[ac addAction:[UIAlertAction actionWithTitle:[NSString fus_localString:@"取消"] style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
[weakSelf fus_setGiftArrowExpanded:NO];
}]];
UIPopoverPresentationController *pop = ac.popoverPresentationController;
if (pop && self.giftSelectView) {
pop.sourceView = self.giftSelectView;
pop.sourceRect = self.giftSelectView.bounds;
- (void)fus_hideGiftDropdown {
if (!self.giftDropdownVisible) {
return;
}
UIViewController *topVC = [UIViewController fus_topViewController];
[topVC presentViewController:ac animated:YES completion:nil];
self.giftDropdownVisible = NO;
[self fus_setGiftArrowExpanded:NO];
[self setNeedsLayout];
}
- (void)fus_onClickSave {
......@@ -478,4 +514,15 @@
button.layer.borderColor = (enabled ? [UIColor colorWithHex:@"#DADDE1"] : [UIColor colorWithHex:@"#EFEFEF"]).CGColor;
}
#pragma mark - UITextFieldDelegate
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[self fus_hideGiftDropdown];
}
@end
#import <UIKit/UIKit.h>
@class FUSLiveGiftDataModel;
NS_ASSUME_NONNULL_BEGIN
@interface FUSLiveGiftInteractGiftDropdownView : UIView
@property (nonatomic, copy) NSArray<FUSLiveGiftDataModel *> *giftList;
@property (nonatomic, strong, nullable) FUSLiveGiftDataModel *selectedGift;
@property (nonatomic, copy, nullable) void (^selectHandler)(FUSLiveGiftDataModel *gift);
- (CGFloat)fus_preferredHeightWithMaxHeight:(CGFloat)maxHeight;
- (void)fus_reload;
@end
NS_ASSUME_NONNULL_END
#import "FUSLiveGiftInteractGiftDropdownView.h"
#import "FUSLiveGiftDataModel.h"
#import "FUSLiveGiftInteractGiftDropdownCell.h"
@interface FUSLiveGiftInteractGiftDropdownView () <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, strong) UITableView *tableView;
@end
@implementation FUSLiveGiftInteractGiftDropdownView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (!self) {
return nil;
}
self.backgroundColor = [UIColor colorWithHex:@"#F5F5F5"];
self.layer.cornerRadius = 8;
self.clipsToBounds = YES;
self.layer.borderWidth = 1;
self.layer.borderColor = [UIColor colorWithHex:@"#EFEFEF"].CGColor;
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.tableView.backgroundColor = UIColor.clearColor;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.rowHeight = 40;
self.tableView.showsVerticalScrollIndicator = YES;
self.tableView.contentInset = UIEdgeInsetsZero;
self.tableView.scrollIndicatorInsets = UIEdgeInsetsZero;
[self.tableView registerClass:FUSLiveGiftInteractGiftDropdownCell.class forCellReuseIdentifier:@"FUSLiveGiftInteractGiftDropdownCell"];
[self addSubview:self.tableView];
self.giftList = @[];
return self;
}
- (void)layoutSubviews {
[super layoutSubviews];
self.tableView.frame = self.bounds;
}
- (CGFloat)fus_preferredHeightWithMaxHeight:(CGFloat)maxHeight {
return MAX(0, maxHeight);
}
- (void)fus_reload {
[self.tableView reloadData];
}
#pragma mark - UITableViewDataSource / UITableViewDelegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.giftList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
FUSLiveGiftInteractGiftDropdownCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FUSLiveGiftInteractGiftDropdownCell" forIndexPath:indexPath];
if (indexPath.row < self.giftList.count) {
FUSLiveGiftDataModel *model = self.giftList[indexPath.row];
BOOL selected = (self.selectedGift && [self.selectedGift.gid isEqualToString:model.gid]);
[cell fus_setupWithModel:model selected:selected];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row >= self.giftList.count) {
return;
}
FUSLiveGiftDataModel *model = self.giftList[indexPath.row];
self.selectedGift = model;
[self.tableView reloadData];
if (self.selectHandler) {
self.selectHandler(model);
}
}
@end
#import "FUSBaseModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface FUSLiveGiftInteractSettingItemModel : FUSBaseModel
/// 配置ID
@property (nonatomic, copy) NSString *sid;
/// 互动描述
@property (nonatomic, copy) NSString *name;
/// 礼物ID
@property (nonatomic, copy) NSString *giftId;
/// 礼物图标URL
@property (nonatomic, copy) NSString *giftIcon;
/// 礼物名称
@property (nonatomic, copy) NSString *giftName;
/// 礼物数量
@property (nonatomic, assign) NSInteger giftNum;
/// 状态(0:关闭,1:开启)
@property (nonatomic, assign) NSInteger status;
/// 添加时间(服务器返回原始字符串)
@property (nonatomic, copy) NSString *addtime;
@end
NS_ASSUME_NONNULL_END
#import "FUSLiveGiftInteractSettingItemModel.h"
@implementation FUSLiveGiftInteractSettingItemModel
@end
#import <UIKit/UIKit.h>
@class FUSLiveGiftDataModel;
NS_ASSUME_NONNULL_BEGIN
@interface FUSLiveGiftInteractGiftDropdownCell : UITableViewCell
- (void)fus_setupWithModel:(FUSLiveGiftDataModel *)model selected:(BOOL)selected;
@end
NS_ASSUME_NONNULL_END
#import "FUSLiveGiftInteractGiftDropdownCell.h"
#import "FUSLiveGiftDataModel.h"
@interface FUSLiveGiftInteractGiftDropdownCell ()
@property (nonatomic, strong) UIImageView *giftImageView;
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UIButton *priceButton;
@end
@implementation FUSLiveGiftInteractGiftDropdownCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
if (!self) {
return nil;
}
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = UIColor.clearColor;
self.contentView.backgroundColor = UIColor.clearColor;
self.giftImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
self.giftImageView.contentMode = UIViewContentModeScaleAspectFit;
self.giftImageView.clipsToBounds = YES;
[self.contentView addSubview:self.giftImageView];
self.nameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
self.nameLabel.font = [UIFont fus_themeFont:14];
self.nameLabel.textColor = [UIColor colorWithHex:@"#22222B"];
[self.contentView addSubview:self.nameLabel];
self.priceButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.priceButton.userInteractionEnabled = NO;
self.priceButton.titleLabel.font = [UIFont fus_themeFont:12];
[self.priceButton setTitleColor:[UIColor colorWithHex:@"#58DBD7"] forState:UIControlStateNormal];
[self.priceButton setImage:UIImage.fus_diamonIcon forState:UIControlStateNormal];
self.priceButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
self.priceButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
[self.contentView addSubview:self.priceButton];
UIView *selectedBg = [[UIView alloc] initWithFrame:CGRectZero];
selectedBg.backgroundColor = [UIColor colorWithHex:@"#F5F5F5"];
self.selectedBackgroundView = selectedBg;
return self;
}
- (void)layoutSubviews {
[super layoutSubviews];
CGFloat h = self.contentView.bounds.size.height;
CGFloat w = self.contentView.bounds.size.width;
CGFloat padding = 12;
CGFloat icon = 24;
self.giftImageView.frame = CGRectMake(padding, (h - icon) / 2.0, icon, icon);
CGFloat priceW = 78;
self.priceButton.frame = CGRectMake(w - padding - priceW, 0, priceW, h);
CGFloat nameX = CGRectGetMaxX(self.giftImageView.frame) + 10;
CGFloat nameW = CGRectGetMinX(self.priceButton.frame) - 8 - nameX;
self.nameLabel.frame = CGRectMake(nameX, 0, MAX(0, nameW), h);
}
- (void)prepareForReuse {
[super prepareForReuse];
self.giftImageView.image = nil;
self.nameLabel.text = nil;
[self.priceButton setTitle:nil forState:UIControlStateNormal];
}
- (void)fus_setupWithModel:(FUSLiveGiftDataModel *)model selected:(BOOL)selected {
NSString *name = model.name.length ? model.name : [NSString fus_localString:@"礼物"];
self.nameLabel.text = name;
[self.giftImageView setWebImageWithSubURLString:model.resource];
NSString *price = model.price.length ? model.price : @"";
[self.priceButton setTitle:price forState:UIControlStateNormal];
self.selectedBackgroundView.hidden = !selected;
}
@end
......@@ -8,7 +8,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)fus_setupWithEnabled:(BOOL)isEnabled;
- (void)fus_setSwitchUserInteractionEnabled:(BOOL)enabled;
@end
NS_ASSUME_NONNULL_END
......@@ -60,6 +60,10 @@
[self.enableSwitch setOn:isEnabled animated:NO];
}
- (void)fus_setSwitchUserInteractionEnabled:(BOOL)enabled {
self.enableSwitch.userInteractionEnabled = enabled;
}
- (void)onSwitchChanged:(UISwitch *)sender {
if (self.switchChangedHandler) {
self.switchChangedHandler(sender.isOn);
......@@ -67,4 +71,3 @@
}
@end
......@@ -2,17 +2,16 @@
NS_ASSUME_NONNULL_BEGIN
@class FUSLiveGiftInteractSettingItemModel;
@interface FUSLiveGiftInteractSettingItemCell : UITableViewCell
@property (nonatomic, copy, nullable) void(^switchChangedHandler)(NSInteger index, BOOL isOn);
@property (nonatomic, copy, nullable) void(^deleteHandler)(NSInteger index);
- (void)fus_setupWithTitle:(NSString *)title
subTitle:(NSString *)subTitle
isOn:(BOOL)isOn
- (void)fus_setupWithItemModel:(FUSLiveGiftInteractSettingItemModel *)itemModel
index:(NSInteger)index;
@end
NS_ASSUME_NONNULL_END
#import "FUSLiveGiftInteractSettingItemCell.h"
#import "FUSLiveGiftInteractSettingItemModel.h"
@interface FUSLiveGiftInteractSettingItemCell ()
@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UILabel *subTitleLabel;
@property (nonatomic, strong) UILabel *bindingLabel;
@property (nonatomic, strong) UIImageView *giftIconView;
@property (nonatomic, strong) UILabel *giftInfoLabel;
@property (nonatomic, strong) UISwitch *itemSwitch;
@property (nonatomic, strong) UIButton *deleteBtn;
@property (nonatomic, assign) NSInteger itemIndex;
......@@ -27,10 +30,21 @@
self.titleLabel.textColor = [UIColor colorWithHex:@"#22222B"];
[self.contentView addSubview:self.titleLabel];
self.subTitleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
self.subTitleLabel.font = [UIFont fus_themeFont:12];
self.subTitleLabel.textColor = [UIColor colorWithHex:@"#999999"];
[self.contentView addSubview:self.subTitleLabel];
self.bindingLabel = [[UILabel alloc] initWithFrame:CGRectZero];
self.bindingLabel.font = [UIFont fus_themeFont:12];
self.bindingLabel.textColor = [UIColor colorWithHex:@"#999999"];
self.bindingLabel.numberOfLines = 1;
[self.contentView addSubview:self.bindingLabel];
self.giftIconView = [[UIImageView alloc] initWithFrame:CGRectZero];
self.giftIconView.contentMode = UIViewContentModeScaleAspectFit;
[self.contentView addSubview:self.giftIconView];
self.giftInfoLabel = [[UILabel alloc] initWithFrame:CGRectZero];
self.giftInfoLabel.font = [UIFont fus_themeFont:12];
self.giftInfoLabel.textColor = [UIColor colorWithHex:@"#999999"];
self.giftInfoLabel.numberOfLines = 1;
[self.contentView addSubview:self.giftInfoLabel];
self.itemSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
self.itemSwitch.onTintColor = [UIColor colorWithHex:@"#01D9E0"];
......@@ -73,8 +87,23 @@
switchSize.height);
CGFloat maxTextW = switchX - padding - spacing;
self.titleLabel.frame = CGRectMake(padding, 10, maxTextW, 22);
self.subTitleLabel.frame = CGRectMake(padding, CGRectGetMaxY(self.titleLabel.frame) + 2, maxTextW, 18);
self.titleLabel.frame = CGRectMake(padding, 12, maxTextW, 22);
CGFloat subY = CGRectGetMaxY(self.titleLabel.frame) + 2;
CGFloat iconSize = 12;
CGFloat iconSpace = 4;
CGFloat prefixSpace = 4;
CGSize bindSize = [self.bindingLabel sizeThatFits:CGSizeMake(maxTextW, 18)];
CGFloat bindW = MIN(bindSize.width, maxTextW);
self.bindingLabel.frame = CGRectMake(padding, subY, bindW, 18);
CGFloat iconX = CGRectGetMaxX(self.bindingLabel.frame) + prefixSpace;
self.giftIconView.frame = CGRectMake(iconX, subY + 3, iconSize, iconSize);
CGFloat infoX = CGRectGetMaxX(self.giftIconView.frame) + iconSpace;
CGFloat infoW = MAX(0, padding + maxTextW - infoX);
self.giftInfoLabel.frame = CGRectMake(infoX, subY, infoW, 18);
}
- (void)prepareForReuse {
......@@ -82,16 +111,29 @@
self.itemIndex = NSNotFound;
self.switchChangedHandler = nil;
self.deleteHandler = nil;
self.bindingLabel.text = @"";
self.giftInfoLabel.text = @"";
self.giftIconView.image = nil;
}
- (void)fus_setupWithTitle:(NSString *)title
subTitle:(NSString *)subTitle
isOn:(BOOL)isOn
- (void)fus_setupWithItemModel:(FUSLiveGiftInteractSettingItemModel *)itemModel
index:(NSInteger)index {
self.itemIndex = index;
self.titleLabel.text = title;
self.subTitleLabel.text = subTitle;
[self.itemSwitch setOn:isOn animated:NO];
self.titleLabel.text = itemModel.name;
self.bindingLabel.text = [NSString stringWithFormat:@"%@:", [NSString fus_localString:@"绑定"]];
NSString *giftName = itemModel.giftName.length ? itemModel.giftName : [NSString fus_localString:@"礼物"];
self.giftInfoLabel.text = [NSString stringWithFormat:@"%@ × %ld", giftName, (long)itemModel.giftNum];
UIImage *placeholder = [FUSShowRoomCenterBunble imageNamed:@"icon_gift_placehold"];
if (itemModel.giftIcon.length > 0) {
[self.giftIconView setWebImageWithSubURLString:itemModel.giftIcon placeholder:placeholder];
} else {
self.giftIconView.image = placeholder;
}
[self setNeedsLayout];
[self.itemSwitch setOn:(itemModel.status == 1) animated:NO];
}
- (void)onSwitchChanged:(UISwitch *)sender {
......@@ -107,4 +149,3 @@
}
@end
......@@ -793,6 +793,12 @@ NS_ASSUME_NONNULL_BEGIN
/// switchState:状态(0:关闭,1:开启)
+ (void)fus_setLiveGameStateWithSwitchState:(BOOL)state success:(void(^)(void))success failure:(void(^)(NSString *, int))failure;
/// 设置礼物互动开关
/// switchState:状态(0:关闭,1:开启)
+ (void)fus_requestGiftInteractionStateSwitchSet:(BOOL)switchState
succeed:(void (^)(BOOL switchState))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 直播关闭麦克风数据状态同步
/// behavior 行为(1:关闭、0:取消关闭)
......@@ -1152,6 +1158,66 @@ NS_ASSUME_NONNULL_BEGIN
succeed:(void (^)(NSDictionary *dataDict))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 礼物互动行为-管理获取配置列表
/// @param uid 用户ID
/// @param roomId 房间ID
/// @param channelId 频道ID
/// @param succeed 成功回调(返回 dataList 原始数组)
/// @param failure 失败回调
+ (void)fus_requestGiftInteractManageListWithUid:(NSString *)uid
RoomId:(NSString *)roomId
channelId:(NSString *)channelId
succeed:(void (^)(NSArray *dataList))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 礼物互动行为-管理新增配置
/// @param uid 用户ID
/// @param roomId 房间ID
/// @param channelId 频道ID
/// @param name 行为描述
/// @param giftId 礼物ID
/// @param giftNum 礼物数量
/// @param succeed 成功回调
/// @param failure 失败回调
+ (void)fus_requestGiftInteractManageAddWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
name:(NSString *)name
giftId:(NSString *)giftId
giftNum:(NSInteger)giftNum
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 礼物互动行为-管理删除配置
/// @param uid 用户ID
/// @param roomId 房间ID
/// @param channelId 频道ID
/// @param sid 互动配置ID
/// @param succeed 成功回调
/// @param failure 失败回调
+ (void)fus_requestGiftInteractManageDelWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
sid:(NSString *)sid
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 礼物互动行为-管理更新状态
/// @param uid 用户ID
/// @param roomId 房间ID
/// @param channelId 频道ID
/// @param sid 互动配置ID
/// @param status 状态(0:关闭,1:开启)
/// @param succeed 成功回调(返回服务器实际状态)
/// @param failure 失败回调
+ (void)fus_requestGiftInteractManageUpdateStatusWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
sid:(NSString *)sid
status:(NSInteger)status
succeed:(void (^)(NSInteger serverStatus))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
@end
......
......@@ -335,6 +335,141 @@
}];
}
/// 礼物互动行为-管理获取配置列表
+ (void)fus_requestGiftInteractManageListWithUid:(NSString *)uid
RoomId:(NSString *)roomId
channelId:(NSString *)channelId
succeed:(void (^)(NSArray *dataList))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure {
if ([NSString isNullWithString:uid] ||
[NSString isNullWithString:roomId] ||
[NSString isNullWithString:channelId]) {
if (failure) {
failure(@"参数错误", ERROR_CODE);
}
return;
}
NSDictionary *params = @{@"uid": uid,
@"roomId": roomId,
@"channelId": channelId};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_interactionGiftManageList params:params success:^(NSDictionary *dataDict, int code) {
NSArray *list = [dataDict[@"dataList"] isKindOfClass:NSArray.class] ? dataDict[@"dataList"] : @[];
if (succeed) {
succeed(list);
}
} failure:^(NSDictionary *dataDict, int code) {
if (failure) {
failure(FAILURE_MESSAGE, code);
}
}];
}
/// 礼物互动行为-管理新增配置
+ (void)fus_requestGiftInteractManageAddWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
name:(NSString *)name
giftId:(NSString *)giftId
giftNum:(NSInteger)giftNum
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure {
if ([NSString isNullWithString:uid] ||
[NSString isNullWithString:roomId] ||
[NSString isNullWithString:channelId] ||
[NSString isNullWithString:name] ||
[NSString isNullWithString:giftId] ||
giftNum <= 0) {
if (failure) {
failure(@"参数错误", ERROR_CODE);
}
return;
}
NSDictionary *params = @{@"uid": uid,
@"roomId": roomId,
@"channelId": channelId,
@"name": name,
@"giftId": giftId,
@"giftNum": @(giftNum)};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_interactionGiftManageAdd params:params success:^(NSDictionary *dataDict, int code) {
if (succeed) {
succeed();
}
} failure:^(NSDictionary *dataDict, int code) {
if (failure) {
NSString *msg = [dataDict[@"msg"] isKindOfClass:NSString.class] ? dataDict[@"msg"] : FAILURE_MESSAGE;
failure(msg, code);
}
}];
}
/// 礼物互动行为-管理删除配置
+ (void)fus_requestGiftInteractManageDelWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
sid:(NSString *)sid
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure {
if ([NSString isNullWithString:uid] ||
[NSString isNullWithString:roomId] ||
[NSString isNullWithString:channelId] ||
[NSString isNullWithString:sid]) {
if (failure) {
failure(@"参数错误", ERROR_CODE);
}
return;
}
NSDictionary *params = @{@"uid": uid,
@"roomId": roomId,
@"channelId": channelId,
@"sid": sid};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_interactionGiftManageDel params:params success:^(NSDictionary *dataDict, int code) {
if (succeed) {
succeed();
}
} failure:^(NSDictionary *dataDict, int code) {
if (failure) {
NSString *msg = [dataDict[@"msg"] isKindOfClass:NSString.class] ? dataDict[@"msg"] : FAILURE_MESSAGE;
failure(msg, code);
}
}];
}
/// 礼物互动行为-管理更新状态
+ (void)fus_requestGiftInteractManageUpdateStatusWithUid:(NSString *)uid
roomId:(NSString *)roomId
channelId:(NSString *)channelId
sid:(NSString *)sid
status:(NSInteger)status
succeed:(void (^)(NSInteger serverStatus))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure {
if ([NSString isNullWithString:uid] ||
[NSString isNullWithString:roomId] ||
[NSString isNullWithString:channelId] ||
[NSString isNullWithString:sid]) {
if (failure) {
failure(@"参数错误", ERROR_CODE);
}
return;
}
NSDictionary *params = @{@"uid": uid,
@"roomId": roomId,
@"channelId": channelId,
@"sid": sid,
@"status": @(status)};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_interactionGiftManageUpdStatus params:params success:^(NSDictionary *dataDict, int code) {
if (succeed) {
succeed(status);
}
} failure:^(NSDictionary *dataDict, int code) {
if (failure) {
NSString *msg = [dataDict[@"msg"] isKindOfClass:NSString.class] ? dataDict[@"msg"] : FAILURE_MESSAGE;
failure(msg, code);
}
}];
}
+ (void)fus_getWecomeEnterRoomGiftWithRoomId:(NSString *)roomId success:(void (^)(void))success failure:(void (^)(NSString *, int))failure{
// 空值校验
......@@ -2525,6 +2660,25 @@
}];
}
/// 设置礼物互动开关
/// switchState:状态(0:关闭,1:开启)
+ (void)fus_requestGiftInteractionStateSwitchSet:(BOOL)switchState
succeed:(void (^)(BOOL switchState))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure {
NSString *uid = FUSCacheDataShare.shareStore.userDetailInfo.uid ?: @"";
NSDictionary *parm = @{@"uid": uid,
@"switchState": switchState ? @1 : @0};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_ROOM_Set_Gift_Interaction_Switch params:parm success:^(NSDictionary * _Nullable dataDict, int code) {
BOOL serverState = [dataDict[@"switchState"] boolValue];
if (succeed) {
succeed(serverState);
}
} failure:^(NSDictionary * _Nullable dataDict, int code) {
if (failure) failure(dataDict[@"msg"], code);
}];
}
/// 直播关闭麦克风数据状态同步
/// behavior 行为(1:关闭、0:取消关闭)
......
......@@ -16,18 +16,23 @@ NS_ASSUME_NONNULL_BEGIN
// 推屏记录
+ (NSString *)fus_URL_OPEN_SCREEN_ADD_LOG;
// 获取房间贡献榜
+ (NSString *)fus_URL_RANK_ROOM_DEVOTE_GET;
// Fusi-获取房间真实用户列表
+ (NSString *)fus_URL_Live_Real_Users_GetList;
// 获取房间互动游戏列表
+ (NSString *)fus_URL_ROOM_Interact_Game_List;
// 设置直播游戏开关
+ (NSString *)fus_URL_ROOM_Set_Live_Game_Switch;
+ (NSString *)fus_URL_ROOM_Set_Live_Mute_Close;
// 设置礼物互动开关
+ (NSString *)fus_URL_ROOM_Set_Gift_Interaction_Switch;
// 设置直播静音关闭
+ (NSString *)fus_URL_ROOM_Set_Live_Mute_Close;
#pragma mark -- 包房相关
// 结束直播间推荐热门列表
......@@ -487,6 +492,18 @@ NS_ASSUME_NONNULL_BEGIN
/// 礼物互动行为-主播获取任务列表
+ (NSString *)fus_URL_interactionGiftTaskList;
/// 礼物互动行为-管理获取配置列表
+ (NSString *)fus_URL_interactionGiftManageList;
/// 礼物互动行为-管理新增配置
+ (NSString *)fus_URL_interactionGiftManageAdd;
/// 礼物互动行为-管理删除配置
+ (NSString *)fus_URL_interactionGiftManageDel;
/// 礼物互动行为-管理更新状态
+ (NSString *)fus_URL_interactionGiftManageUpdStatus;
/// 获取模式列表
+ (NSString *)fus_URL_vsTypeGetList;
......
......@@ -36,6 +36,10 @@
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/personal/liveGame/switch/set"];
}
+ (NSString *)fus_URL_ROOM_Set_Gift_Interaction_Switch {
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/personal/giftinteractionstate/switch/set"];
}
+ (NSString *)fus_URL_ROOM_Set_Live_Mute_Close {
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/data/live/mute/close"];
}
......@@ -793,6 +797,26 @@
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/interaction/gift/taskdata/list"];
}
/// 礼物互动行为-管理获取配置列表
+ (NSString *)fus_URL_interactionGiftManageList{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/interaction/gift/manage/list"];
}
/// 礼物互动行为-管理新增配置
+ (NSString *)fus_URL_interactionGiftManageAdd{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/interaction/gift/manage/add"];
}
/// 礼物互动行为-管理删除配置
+ (NSString *)fus_URL_interactionGiftManageDel{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/interaction/gift/manage/del"];
}
/// 礼物互动行为-管理更新状态
+ (NSString *)fus_URL_interactionGiftManageUpdStatus{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/interaction/gift/manage/updstatus"];
}
/// 获取模式列表
+ (NSString *)fus_URL_vsTypeGetList{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/vs/type/getList"];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment