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,57 @@
//
// TLEmojiGroupDisplayModel.h
// TLChat
//
// Created by 李伯坤 on 16/9/27.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "TLExpressionGroupModel.h"
@interface TLEmojiGroupDisplayModel : NSObject
@property (nonatomic, assign) TLEmojiType type;
@property (nonatomic, strong) NSString *groupID;
@property (nonatomic, strong) NSString *groupName;
@property (nonatomic, strong) NSString *groupIconPath;
@property (nonatomic, assign) NSUInteger count;
@property (nonatomic, strong) NSArray *data;
#pragma mark - 标记
@property (nonatomic, assign) NSInteger emojiGroupIndex;
@property (nonatomic, assign) NSInteger pageIndex;
#pragma mark - 展示用
/// 每页个数
@property (nonatomic, assign) NSUInteger pageItemCount;
/// 页数
@property (nonatomic, assign) NSUInteger pageNumber;
/// 行数
@property (nonatomic, assign) NSUInteger rowNumber;
/// 列数
@property (nonatomic, assign) NSUInteger colNumber;
@property (nonatomic, assign) CGSize cellSize;
@property (nonatomic, assign) UIEdgeInsets sectionInsets;
- (id)initWithEmojiGroup:(TLExpressionGroupModel *)emojiGroup pageNumber:(NSInteger)pageNumber andCount:(NSInteger)count;
- (id)objectAtIndex:(NSUInteger)index;
- (void)addEmoji:(TLExpressionModel *)emoji;
@end
@@ -0,0 +1,44 @@
//
// TLEmojiGroupDisplayModel.m
// TLChat
//
// Created by 李伯坤 on 16/9/27.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import "TLEmojiGroupDisplayModel.h"
#import "TLExpressionGroupModel+TLEmojiKB.h"
@implementation TLEmojiGroupDisplayModel
- (id)initWithEmojiGroup:(TLExpressionGroupModel *)emojiGroup pageNumber:(NSInteger)pageNumber andCount:(NSInteger)count
{
if (self = [super init]) {
self.groupID = emojiGroup.gId;
self.groupName = emojiGroup.name;
self.type = emojiGroup.type;
self.rowNumber = emojiGroup.rowNumber;
self.colNumber = emojiGroup.colNumber;
self.pageItemCount = emojiGroup.pageItemCount;
NSInteger start = pageNumber * count;
if (emojiGroup.data.count > start) {
NSInteger len = MIN(count, emojiGroup.count - start);
self.data = [emojiGroup.data subarrayWithRange:NSMakeRange(pageNumber * count, len)];
}
}
return self;
}
- (id)objectAtIndex:(NSUInteger)index
{
return index < self.data.count ? [self.data objectAtIndex:index] : nil;
}
- (void)addEmoji:(TLExpressionModel *)emoji
{
NSMutableArray *emojis = [NSMutableArray arrayWithArray:self.data];
[emojis addObject:emoji];
self.data = emojis;
}
@end
@@ -0,0 +1,59 @@
//
// TLEmojiKeyboardDelegate.h
// TLChat
//
// Created by 李伯坤 on 16/2/20.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "TLExpressionModel.h"
@class TLEmojiKeyboard;
@protocol TLEmojiKeyboardDelegate <NSObject>
- (BOOL)chatInputViewHasText;
@optional
/**
* 长按某个表情(展示)
*/
- (void)emojiKeyboard:(TLEmojiKeyboard *)emojiKB didTouchEmojiItem:(TLExpressionModel *)emoji atRect:(CGRect)rect;
/**
* 取消长按某个表情(停止展示)
*/
- (void)emojiKeyboardCancelTouchEmojiItem:(TLEmojiKeyboard *)emojiKB;
/**
* 点击事件 —— 选中某个表情
*/
- (void)emojiKeyboard:(TLEmojiKeyboard *)emojiKB didSelectedEmojiItem:(TLExpressionModel *)emoji;
/**
* 点击事件 —— 表情发送按钮
*/
- (void)emojiKeyboardSendButtonDown;
/**
* 点击事件 —— 删除按钮
*/
- (void)emojiKeyboardDeleteButtonDown;
/**
* 点击事件 —— 表情编辑按钮
*/
- (void)emojiKeyboardEmojiEditButtonDown;
/**
* 点击事件 —— 我的表情按钮
*/
- (void)emojiKeyboardMyEmojiEditButtonDown;
/**
* 选中不同类型的表情组回调
* 用于改变chatBar状态(个性表情组展示时textView不可用)
*/
- (void)emojiKeyboard:(TLEmojiKeyboard *)emojiKB selectedEmojiGroupType:(TLEmojiType)type;
@end
@@ -0,0 +1,26 @@
//
// TLExpressionGroupModel+TLEmojiKB.h
// TLChat
//
// Created by 李伯坤 on 2018/1/2.
// Copyright © 2018年 李伯坤. All rights reserved.
//
#import "TLExpressionGroupModel.h"
@interface TLExpressionGroupModel (TLEmojiKB)
/// 每页个数
@property (nonatomic, assign, readonly) NSUInteger pageItemCount;
/// 页数
@property (nonatomic, assign, readonly) NSUInteger pageNumber;
/// 行数
@property (nonatomic, assign, readonly) NSUInteger rowNumber;
/// 列数
@property (nonatomic, assign, readonly) NSUInteger colNumber;
@end
@@ -0,0 +1,42 @@
//
// TLExpressionGroupModel+TLEmojiKB.m
// TLChat
//
// Created by 李伯坤 on 2018/1/2.
// Copyright © 2018年 李伯坤. All rights reserved.
//
#import "TLExpressionGroupModel+TLEmojiKB.h"
@implementation TLExpressionGroupModel (TLEmojiKB)
- (NSUInteger)rowNumber
{
if (self.type == TLEmojiTypeFace || self.type == TLEmojiTypeEmoji) {
return 3;
}
return 2;
}
- (NSUInteger)colNumber
{
if (self.type == TLEmojiTypeFace || self.type == TLEmojiTypeEmoji) {
return 7;
}
return 4;
}
- (NSUInteger)pageItemCount
{
if (self.type == TLEmojiTypeFace || self.type == TLEmojiTypeEmoji) {
return self.rowNumber * self.colNumber - 1;
}
return self.rowNumber * self.colNumber;
}
- (NSUInteger)pageNumber
{
return self.count / self.pageItemCount + (self.count % self.pageItemCount == 0 ? 0 : 1);
}
@end