Files
TIMSDK/iOS/TUIKit/TUIChat/Cell/CellData/Base/TUIBubbleMessageCellData.m
T
2022-01-25 21:03:58 +08:00

148 lines
5.8 KiB
Objective-C

//
// TUIBubbleMessageCellData.m
// TXIMSDK_TUIKit_iOS
//
// Created by annidyfeng on 2019/5/30.
//
#import "TUIBubbleMessageCellData.h"
#import "TUIDefine.h"
#import "TUIThemeManager.h"
@implementation TUIBubbleMessageCellData
+ (void)initialize
{
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(onThemeChanged:) name:TUIDidApplyingThemeChangedNotfication object:nil];
}
- (instancetype)initWithDirection:(TMsgDirection)direction
{
self = [super initWithDirection:direction];
if (self) {
if (direction == MsgDirectionIncoming) {
_bubble = [[self class] incommingBubble];
_highlightedBubble = [[self class] incommingHighlightedBubble];
_bubbleTop = [[self class] incommingBubbleTop];
UIImage *alpha50 = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"ReceiverTextNodeBkg_alpha50")];
_animateHighlightBubble_alpha50 = [TUIChatDynamicImage(@"chat_bubble_receive_alpha50_img", alpha50) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}")
resizingMode:UIImageResizingModeStretch];
UIImage *alpha20 = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"ReceiverTextNodeBkg_alpha20")];
_animateHighlightBubble_alpha20 = [TUIChatDynamicImage(@"chat_bubble_receive_alpha20_img", alpha20) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}")
resizingMode:UIImageResizingModeStretch];
} else {
_bubble = [[self class] outgoingBubble];
_highlightedBubble = [[self class] outgoingHighlightedBubble];
_bubbleTop = [[self class] outgoingBubbleTop];
UIImage *alpha50 = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"SenderTextNodeBkg_alpha50")];
_animateHighlightBubble_alpha50 = [TUIChatDynamicImage(@"chat_bubble_send_alpha50_img", alpha50) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}")
resizingMode:UIImageResizingModeStretch];
UIImage *alpha20 = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"SenderTextNodeBkg_alpha20")];
_animateHighlightBubble_alpha20 = [TUIChatDynamicImage(@"chat_bubble_send_alpha20_img", alpha20) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}")
resizingMode:UIImageResizingModeStretch];
}
}
return self;
}
static UIImage *sOutgoingBubble;
+ (UIImage *)outgoingBubble
{
if (!sOutgoingBubble) {
UIImage *defaultImage = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"SenderTextNodeBkg")];
sOutgoingBubble = [TUIChatDynamicImage(@"chat_bubble_send_img", defaultImage) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}") resizingMode:UIImageResizingModeStretch];
}
return sOutgoingBubble;
}
+ (void)setOutgoingBubble:(UIImage *)outgoingBubble
{
sOutgoingBubble = outgoingBubble;
}
static UIImage *sOutgoingHighlightedBubble;
+ (UIImage *)outgoingHighlightedBubble
{
if (!sOutgoingHighlightedBubble) {
UIImage *defaultImage = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"SenderTextNodeBkgHL")];
sOutgoingHighlightedBubble = [TUIChatDynamicImage(@"chat_bubble_send_img", defaultImage) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}") resizingMode:UIImageResizingModeStretch];
}
return sOutgoingHighlightedBubble;
}
+ (void)setOutgoingHighlightedBubble:(UIImage *)outgoingHighlightedBubble
{
sOutgoingHighlightedBubble = outgoingHighlightedBubble;
}
static UIImage *sIncommingBubble;
+ (UIImage *)incommingBubble
{
if (!sIncommingBubble) {
UIImage *defaultImage = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"ReceiverTextNodeBkg")];
sIncommingBubble = [TUIChatDynamicImage(@"chat_bubble_receive_img", defaultImage) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}") resizingMode:UIImageResizingModeStretch];
}
return sIncommingBubble;
}
+ (void)setIncommingBubble:(UIImage *)incommingBubble
{
sIncommingBubble = incommingBubble;
}
static UIImage *sIncommingHighlightedBubble;
+ (UIImage *)incommingHighlightedBubble
{
if (!sIncommingHighlightedBubble) {
UIImage *defaultImage = [[TUIImageCache sharedInstance] getResourceFromCache:TUIChatImagePath(@"ReceiverTextNodeBkgHL")];
sIncommingHighlightedBubble =[TUIChatDynamicImage(@"chat_bubble_receive_img", defaultImage) resizableImageWithCapInsets:UIEdgeInsetsFromString(@"{12,12,12,12}") resizingMode:UIImageResizingModeStretch];
}
return sIncommingHighlightedBubble;
}
+ (void)setIncommingHighlightedBubble:(UIImage *)incommingHighlightedBubble
{
sIncommingHighlightedBubble = incommingHighlightedBubble;
}
static CGFloat sOutgoingBubbleTop = 0;
+ (CGFloat)outgoingBubbleTop
{
return sOutgoingBubbleTop;
}
+ (void)setOutgoingBubbleTop:(CGFloat)outgoingBubble
{
sOutgoingBubbleTop = outgoingBubble;
}
static CGFloat sIncommingBubbleTop = 0;
+ (CGFloat)incommingBubbleTop
{
return sIncommingBubbleTop;
}
+ (void)setIncommingBubbleTop:(CGFloat)incommingBubbleTop
{
sIncommingBubbleTop = incommingBubbleTop;
}
+ (void)onThemeChanged:(NSNotification *)notice
{
// 重新加载皮肤
sOutgoingBubble = nil;
sOutgoingHighlightedBubble = nil;
sIncommingBubble = nil;
sIncommingHighlightedBubble = nil;
}
@end