Files
peko-ios/YuMi/Modules/YMRoom/View/MoreView/Manager/TurboModeStateManager.h

64 lines
2.4 KiB
C
Raw Normal View History

//
// TurboModeStateManager.h
// YuMi
//
// Created by Linus on 2025/1/13.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TurboModeStateManager : NSObject
+ (instancetype)sharedManager;
// 全局 turbo mode 开关(不按房间)
- (void)setTurboModeEnabled:(BOOL)enabled;
- (void)setTurboModeEnabledSilently:(BOOL)enabled; // 🔧 新增:静默设置,不发送通知
- (BOOL)isTurboModeEnabled;
// 将当前全局 turbo mode 应用到指定房间的三个开关(礼物特效临时、两全局屏幕持久化)
- (void)applyTurboModeToSwitchesForRoom:(NSString *)roomId;
// 获取应用全局 turbo 后的房间三开关视图态
- (NSDictionary<NSString *, NSNumber *> *)getSwitchStatesAfterTurboModeForRoom:(NSString *)roomId;
// 重置全局 turbo mode
- (void)resetTurboMode;
// 🔧 新增:启动 TurboModeStateManager在用户登录成功后调用
- (void)startupWithCurrentUser:(NSString *)userId;
// 🔧 新增:更新礼物特效开关状态(通过 RoomInfo.hasAnimationEffect 更新)
- (void)updateGiftEffectsForRoom:(NSString *)roomId enabled:(BOOL)enabled;
// 支持来源标记fromUser=YES 表示用户手动开关,打上覆盖标记
- (void)updateGiftEffectsForRoom:(NSString *)roomId enabled:(BOOL)enabled fromUser:(BOOL)fromUser;
// 用户覆盖标记:用于阻止服务端推送覆盖用户选择
- (void)setGiftEffectsOverrideForRoom:(NSString *)roomId enabled:(BOOL)enabled;
- (BOOL)isGiftEffectsUserOverriddenForRoom:(NSString *)roomId;
// 🔧 新增:获取各开关状态
- (BOOL)isGiftEffectsEnabledForRoom:(NSString *)roomId;
- (BOOL)isGlobalGiftScreenEnabledForRoom:(NSString *)roomId;
- (BOOL)isGlobalGameScreenEnabledForRoom:(NSString *)roomId;
- (BOOL)isCpMicEnabledForRoom:(NSString *)roomId;
// 🔧 新增:设置各开关状态
- (void)setGlobalGiftScreenEnabledForRoom:(NSString *)roomId enabled:(BOOL)enabled;
- (void)setGlobalGameScreenEnabledForRoom:(NSString *)roomId enabled:(BOOL)enabled;
- (void)setCpMicEnabledForRoom:(NSString *)roomId enabled:(BOOL)enabled;
// 🔧 新增设置当前房间ID进房成功后调用
- (void)setCurrentRoomId:(NSString *)roomId;
- (NSString *)loadCurrentRoomId;
// 🔧 新增:强制打开/关闭当前房间的所有开关(含通知与缓存更新)
- (void)forceCloseAllSwitches:(NSString *)roomId;
- (void)forceOpenAllSwitches:(NSString *)roomId;
@end
NS_ASSUME_NONNULL_END