修复 Turbo Mode 相关逻辑,确保使用正确的公开接口获取开关状态,优化代码结构和可读性。更新 RoomHeaderView 中的礼物特效显示逻辑,添加 Turbo Mode 状态变化的通知处理,提升用户体验。
This commit is contained in:
@@ -40,6 +40,8 @@
|
||||
|
||||
#import "ShareHelder.h"
|
||||
#import "XPRoomPresenter.h"
|
||||
#import "TurboModeStateManager.h"
|
||||
#import "XPTurboModeConstants.h"
|
||||
|
||||
|
||||
@interface RoomHeaderView ()<XPRoomRecommendViewDelegate>
|
||||
@@ -53,7 +55,7 @@
|
||||
@property (nonatomic,strong) MarqueeLabel *titleLabel;
|
||||
@property(nonatomic, strong) NetImageView *levelImageView;
|
||||
///礼物特效
|
||||
@property (nonatomic,strong) UIImageView *giftEffectImageView;
|
||||
@property (nonatomic,strong) UIImageView *noGiftEffectImageView;
|
||||
///锁房标识
|
||||
@property (nonatomic,strong) UIImageView *lockRoomImageView;
|
||||
///
|
||||
@@ -86,6 +88,7 @@
|
||||
_hostDelegate = delegate;
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self setupTurboModeNotifications];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -183,7 +186,7 @@
|
||||
[self.onlineStackView addArrangedSubview:self.idLabel];
|
||||
|
||||
[self.titleStackView addArrangedSubview:self.titleLabel];
|
||||
[self.titleStackView addArrangedSubview:self.giftEffectImageView];
|
||||
[self.titleStackView addArrangedSubview:self.noGiftEffectImageView];
|
||||
[self.titleStackView addArrangedSubview:self.lockRoomImageView];
|
||||
[self.titleStackView addArrangedSubview:self.levelImageView];
|
||||
}
|
||||
@@ -236,7 +239,7 @@
|
||||
make.height.mas_equalTo(7);
|
||||
}];
|
||||
|
||||
[self.giftEffectImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
[self.noGiftEffectImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20,20));
|
||||
}];
|
||||
|
||||
@@ -274,7 +277,7 @@
|
||||
self.idLabel.text = [NSString stringWithFormat:@"ID:%ld",(long)roomInfo.erbanNo];
|
||||
self.avatarView.imageUrl = roomInfo.avatar;
|
||||
self.titleLabel.text = roomInfo.title;
|
||||
self.giftEffectImageView.hidden = roomInfo.hasAnimationEffect;
|
||||
[self updateGiftEffectImageViewVisibility];
|
||||
if (roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
|
||||
self.collectButton.hidden = YES;
|
||||
} else {
|
||||
@@ -444,14 +447,14 @@
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)giftEffectImageView {
|
||||
if (!_giftEffectImageView) {
|
||||
_giftEffectImageView = [[UIImageView alloc] init];
|
||||
_giftEffectImageView.userInteractionEnabled = YES;
|
||||
_giftEffectImageView.image = [UIImage imageNamed:@"room_info_gift_effect"];
|
||||
_giftEffectImageView.hidden = YES;
|
||||
- (UIImageView *)noGiftEffectImageView {
|
||||
if (!_noGiftEffectImageView) {
|
||||
_noGiftEffectImageView = [[UIImageView alloc] init];
|
||||
_noGiftEffectImageView.userInteractionEnabled = YES;
|
||||
_noGiftEffectImageView.image = [UIImage imageNamed:@"room_info_disable_gift_effect"];
|
||||
_noGiftEffectImageView.hidden = YES;
|
||||
}
|
||||
return _giftEffectImageView;
|
||||
return _noGiftEffectImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)lockRoomImageView {
|
||||
@@ -524,4 +527,38 @@
|
||||
return _levelImageView;
|
||||
}
|
||||
|
||||
#pragma mark - Turbo Mode Methods
|
||||
|
||||
- (void)setupTurboModeNotifications {
|
||||
// 监听 Turbo Mode 礼物特效开关状态变化
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(handleTurboGiftEffectsStateChanged:)
|
||||
name:kTurboGiftEffectsEnabledChanged
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)updateGiftEffectImageViewVisibility {
|
||||
RoomInfoModel* roomInfo = self.hostDelegate.getRoomInfo;
|
||||
if (!roomInfo) return;
|
||||
|
||||
NSString *roomId = @(roomInfo.roomId).stringValue;
|
||||
BOOL turboGiftEffectsEnabled = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomId];
|
||||
|
||||
// TODO: 1. 直接使用 isGiftEffectsEnabledForRoom: 的状态,NO = hidden;2. 当 TurboModeStateManager isGiftEffectsEnabledForRoom 值有改变时,需要通知同步
|
||||
BOOL shouldShow = turboGiftEffectsEnabled && !roomInfo.hasAnimationEffect;
|
||||
self.noGiftEffectImageView.hidden = !shouldShow;
|
||||
|
||||
NSLog(@"🎮 RoomHeaderView: giftEffectImageView 显示状态更新 - 房间ID: %@, turboGiftEffects: %@, hasAnimationEffect: %@, 显示: %@",
|
||||
roomId, turboGiftEffectsEnabled ? @"开启" : @"关闭", roomInfo.hasAnimationEffect ? @"有" : @"无", shouldShow ? @"是" : @"否");
|
||||
}
|
||||
|
||||
- (void)handleTurboGiftEffectsStateChanged:(NSNotification *)notification {
|
||||
NSLog(@"🎮 RoomHeaderView: 收到 Turbo Mode 礼物特效状态变化通知");
|
||||
[self updateGiftEffectImageViewVisibility];
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
@end
|
||||
|
Reference in New Issue
Block a user