修复 Turbo Mode 相关逻辑,确保使用正确的公开接口获取开关状态,优化代码结构和可读性。更新 RoomHeaderView 中的礼物特效显示逻辑,添加 Turbo Mode 状态变化的通知处理,提升用户体验。

This commit is contained in:
edwinQQQ
2025-09-17 18:44:26 +08:00
parent 67f9fb5113
commit ab5b704866
6 changed files with 145 additions and 116 deletions

View File

@@ -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 = hidden2. 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