123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- //
- // NTESRedPacketTipAttachment.m
- // NIM
- //
- // Created by chris on 2017/7/17.
- // Copyright © 2017年 Netease. All rights reserved.
- //
- #import "NTESRedPacketTipAttachment.h"
- #import "NTESSessionUtil.h"
- #import "M80AttributedLabel.h"
- #import "NIMKitInfoFetchOption.h"
- @interface NTESRedPacketTipAttachment()
- @property (nonatomic,weak) NIMMessage *message;
- @end
- @implementation NTESRedPacketTipAttachment
- - (NSString *)encodeAttachment {
-
- NSDictionary *dictContent = @{
- CMRedPacketSendId : self.sendPacketId,
- CMRedPacketOpenId : self.openPacketId,
- CMRedPacketId : self.packetId,
- CMRedPacketDone : self.isGetDone,
- };
- NSDictionary *dict = @{CMType: @(CustomMessageTypeRedPacketTip), CMData: dictContent};
-
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict
- options:0
- error:nil];
-
- return [[NSString alloc] initWithData:jsonData
- encoding:NSUTF8StringEncoding];
- }
- - (CGSize)contentSize:(NIMMessage *)message cellWidth:(CGFloat)width{
- self.message = message;
-
- M80AttributedLabel *label = [[M80AttributedLabel alloc] initWithFrame:CGRectZero];
- label.font = [UIFont systemFontOfSize:Notification_Font_Size];
-
- CGFloat messageWidth = width;
-
- [label appendImage:[UIImage imageNamed:@"icon_redpacket_tip"]];
- [label appendText:self.formatedMessage];
- label.autoDetectLinks = NO;
- label.numberOfLines = 0;
-
- CGFloat padding = [NIMKit sharedKit].config.maxNotificationTipPadding;
- CGSize size = [label sizeThatFits:CGSizeMake(width - 2 * padding, CGFLOAT_MAX)];
- CGFloat cellPadding = 11.f;
- CGSize contentSize = CGSizeMake(messageWidth, size.height + 2 * cellPadding);;
- return contentSize;
- }
- - (NSString *)formatedMessage{
- NSString * showContent;
- NSString * currentUserId = [[NIMSDK sharedSDK].loginManager currentAccount];
- // 领取别人的红包
- NIMKitInfoFetchOption *option = [[NIMKitInfoFetchOption alloc] init];
- option.message = self.message;
-
- if ([currentUserId isEqualToString:self.sendPacketId] && [currentUserId isEqualToString:self.openPacketId])
- {
- if ([self.isGetDone boolValue])
- {
- showContent = @"你领取了自己的红包,你的红包已被领完";
- }
- else
- {
- showContent = @"你领取了自己的红包";
- }
- }
- else if ([currentUserId isEqualToString:self.openPacketId])
- {
- NIMKitInfo * sendUserInfo = [[NIMKit sharedKit] infoByUser:self.sendPacketId option:option];
- NSString * name = sendUserInfo.showName;
- showContent = [NSString stringWithFormat:@"你领取了%@的红包", name];
- }
-
- // 他人领取你的红包
- else if ([currentUserId isEqualToString:self.sendPacketId])
- {
- NIMKitInfo * openUserInfo = [[NIMKit sharedKit] infoByUser:self.openPacketId option:option];
- NSString * name = openUserInfo.showName;
-
- if ([self.isGetDone boolValue])
- {
- showContent = [NSString stringWithFormat:@"%@领取了你的红包,你的红包已被领完", name];
- }
- else
- {
- showContent = [NSString stringWithFormat:@"%@领取了你的红包", name];
- }
- }
-
- return [NSString stringWithFormat:@" %@",showContent];
- }
- - (UIEdgeInsets)contentViewInsets:(NIMMessage *)message
- {
- return UIEdgeInsetsZero;
- }
- - (NSString *)cellContent:(NIMMessage *)message
- {
- return @"NTESSessionRedPacketTipContentView";
- }
- - (BOOL)canBeForwarded
- {
- return NO;
- }
- - (BOOL)canBeRevoked
- {
- return NO;
- }
- @end
|