Files
peko-ios/YuMi/Modules/YMRoom/View/SendGiftView/GiftComboUIAdapter.m

68 lines
1.7 KiB
Objective-C

//
// GiftComboUIAdapter.m
// YuMi
//
// Created by AI Assistant on 2024/8/18.
//
#import "GiftComboUIAdapter.h"
#import "GiftComboConfig.h"
@interface GiftComboUIAdapter ()
@property (nonatomic, copy) void(^actionCallback)(ComboActionType type);
@property (nonatomic, copy) void(^roomUIChangedCallback)(BOOL comboViewDisplay);
@end
@implementation GiftComboUIAdapter
+ (instancetype)sharedAdapter {
static GiftComboUIAdapter *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[GiftComboUIAdapter alloc] init];
});
return instance;
}
- (instancetype)init {
self = [super init];
if (self) {
// 初始化
}
return self;
}
- (void)emitAction:(ComboActionType)action withState:(NSDictionary *)state {
NSLog(@"%@ 🎨 发送UI事件 - action: %ld, state: %@", kComboLogPrefix, (long)action, state);
// 确保在主线程执行UI回调
dispatch_async(dispatch_get_main_queue(), ^{
if (self.actionCallback) {
self.actionCallback(action);
}
// 根据动作类型决定是否改变房间UI
if (action == ComboAction_ShowPanel) {
if (self.roomUIChangedCallback) {
self.roomUIChangedCallback(YES);
}
} else if (action == ComboAction_RemovePanel) {
if (self.roomUIChangedCallback) {
self.roomUIChangedCallback(NO);
}
}
});
}
- (void)setActionCallback:(void(^)(ComboActionType type))callback {
self.actionCallback = callback;
}
- (void)setRoomUIChangedCallback:(void(^)(BOOL comboViewDisplay))callback {
self.roomUIChangedCallback = callback;
}
@end