68 lines
1.7 KiB
Objective-C
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
|