chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:35:01 +08:00
commit a2e318a963
2974 changed files with 158180 additions and 0 deletions
@@ -0,0 +1,20 @@
//
// TLEmojiKBHelper.h
// TLChat
//
// Created by 李伯坤 on 16/2/20.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "TLExpressionGroupModel.h"
@interface TLEmojiKBHelper : NSObject
+ (TLEmojiKBHelper *)sharedKBHelper;
- (void)emojiGroupDataByUserID:(NSString *)userID complete:(void (^)(NSMutableArray *))complete;
- (void)updateEmojiGroupData;
@end
@@ -0,0 +1,87 @@
//
// TLEmojiKBHelper.m
// TLChat
//
// Created by 李伯坤 on 16/2/20.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import "TLEmojiKBHelper.h"
#import "TLExpressionHelper.h"
#import "TLExpressionGroupModel.h"
static TLEmojiKBHelper *helper;
@interface TLEmojiKBHelper ()
@property (nonatomic, strong) NSString *userID;
@property (nonatomic, strong) TLExpressionGroupModel *systemEditGroup;
@property (nonatomic, strong) void (^complete)(NSMutableArray *);
@end
@implementation TLEmojiKBHelper
+ (TLEmojiKBHelper *)sharedKBHelper
{
static dispatch_once_t once;
dispatch_once(&once, ^{
helper = [[TLEmojiKBHelper alloc] init];
});
return helper;
}
- (void)updateEmojiGroupData
{
if (self.userID && self.complete) {
[self emojiGroupDataByUserID:self.userID complete:self.complete];
}
}
- (void)emojiGroupDataByUserID:(NSString *)userID complete:(void (^)(NSMutableArray *))complete
{
self.userID = userID;
self.complete = complete;
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSMutableArray *emojiGroupData = [[NSMutableArray alloc] init];
// 默认表情包
[emojiGroupData addObject:[TLExpressionHelper sharedHelper].defaultFaceGroup];
[emojiGroupData addObject:[TLExpressionHelper sharedHelper].defaultSystemEmojiGroup];
// 用户收藏的表情包
TLExpressionGroupModel *preferEmojiGroup = [TLExpressionHelper sharedHelper].userPreferEmojiGroup;
if (preferEmojiGroup && preferEmojiGroup.count > 0) {
[emojiGroupData addObject:preferEmojiGroup];
}
// 用户的表情包
NSArray *userGroups = [TLExpressionHelper sharedHelper].userEmojiGroups;
if (userGroups && userGroups.count > 0) {
[emojiGroupData addObjectsFromArray:userGroups];
}
// 系统设置
[emojiGroupData addObject:self.systemEditGroup];
dispatch_async(dispatch_get_main_queue(), ^{
complete(emojiGroupData);
});
});
}
#pragma mark - # Getter
- (TLExpressionGroupModel *)systemEditGroup
{
if (_systemEditGroup == nil) {
_systemEditGroup = [[TLExpressionGroupModel alloc] init];
_systemEditGroup.type = TLEmojiTypeOther;
_systemEditGroup.iconPath = @"emojiKB_settingBtn";
}
return _systemEditGroup;
}
@end
@@ -0,0 +1,15 @@
//
// TLMoreKBHelper.h
// TLChat
//
// Created by 李伯坤 on 16/2/18.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface TLMoreKBHelper : NSObject
@property (nonatomic, strong) NSMutableArray *chatMoreKeyboardData;
@end
@@ -0,0 +1,61 @@
//
// TLMoreKBHelper.m
// TLChat
//
// Created by 李伯坤 on 16/2/18.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import "TLMoreKBHelper.h"
#import "TLMoreKeyboardItem.h"
@implementation TLMoreKBHelper
- (id)init
{
if (self = [super init]) {
self.chatMoreKeyboardData = [[NSMutableArray alloc] init];
[self p_initTestData];
}
return self;
}
- (void)p_initTestData
{
TLMoreKeyboardItem *imageItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeImage
title:@"照片"
imagePath:@"moreKB_image"];
TLMoreKeyboardItem *cameraItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeCamera
title:@"拍摄"
imagePath:@"moreKB_video"];
TLMoreKeyboardItem *videoItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeVideo
title:@"小视频"
imagePath:@"moreKB_sight"];
TLMoreKeyboardItem *videoCallItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeVideoCall
title:@"视频聊天"
imagePath:@"moreKB_video_call"];
TLMoreKeyboardItem *walletItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeWallet
title:@"红包"
imagePath:@"moreKB_wallet"];
TLMoreKeyboardItem *transferItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeTransfer
title:@"转账"
imagePath:@"moreKB_pay"];
TLMoreKeyboardItem *positionItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypePosition
title:@"位置"
imagePath:@"moreKB_location"];
TLMoreKeyboardItem *favoriteItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeFavorite
title:@"收藏"
imagePath:@"moreKB_favorite"];
TLMoreKeyboardItem *businessCardItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeBusinessCard
title:@"个人名片"
imagePath:@"moreKB_friendcard" ];
TLMoreKeyboardItem *voiceItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeVoice
title:@"语音输入"
imagePath:@"moreKB_voice"];
TLMoreKeyboardItem *cardsItem = [TLMoreKeyboardItem createByType:TLMoreKeyboardItemTypeCards
title:@"卡券"
imagePath:@"moreKB_wallet"];
[self.chatMoreKeyboardData addObjectsFromArray:@[imageItem, cameraItem, videoItem, videoCallItem, walletItem, transferItem, positionItem, favoriteItem, businessCardItem, voiceItem, cardsItem]];
}
@end