// // EMMsgExtSmartBubbleView.m // smartRhino // // Created by niuzhen on 2020/4/7. // Copyright © 2020 tederen. All rights reserved. // #import "EMMsgExtSmartBubbleView.h" @implementation EMMsgExtSmartBubbleView - (instancetype)initWithDirection:(EMMessageDirection)aDirection type:(EMMessageType)aType { self = [super initWithDirection:aDirection type:aType]; if (self) { [self _setupSubviews]; } return self; } #pragma mark - Subviews - (void)_setupSubviews { [self setupAppBackgroundImage]; self.iconView = [[UIImageView alloc] init]; self.iconView.contentMode = UIViewContentModeScaleAspectFill; self.iconView.layer.cornerRadius = 4.f; self.iconView.layer.masksToBounds = YES; self.iconView.clipsToBounds = YES; [self addSubview:self.iconView]; self.textLabel = [[UILabel alloc] init]; self.textLabel.font = [UIFont systemFontOfSize:18]; self.textLabel.numberOfLines = 1; self.textLabel.textColor = UIColorHex(0x0A0A0A); [self addSubview:self.textLabel]; self.detailLabel = [[UILabel alloc] init]; self.detailLabel.font = [UIFont systemFontOfSize:12]; self.detailLabel.numberOfLines = 2; self.detailLabel.textColor = UIColorHex(0x999999); [self addSubview:self.detailLabel]; [self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.textLabel.mas_bottom).offset(5); make.bottom.equalTo(self).offset(-10); make.left.equalTo(self.textLabel); make.right.equalTo(self.textLabel); }]; if (self.direction == EMMessageDirectionSend) { [self.iconView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self).offset(10); make.centerY.equalTo(self); make.width.equalTo(@40); make.height.equalTo(@40); }]; [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self).offset(10); make.left.equalTo(self.iconView.mas_right).offset(5); make.right.equalTo(self).offset(-15); }]; } else { [self.iconView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self).offset(13); make.centerY.equalTo(self); make.width.equalTo(@40); make.height.equalTo(@40); }]; [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self).offset(10); make.left.equalTo(self.iconView.mas_right).offset(5); make.right.equalTo(self).offset(-10); }]; } } #pragma mark - Setter - (void)setModel:(EMMessageModel *)model { if (model.type != EMMessageTypeExtApp) { return; } WS(weakSelf); NSDictionary * extDcit = model.emModel.ext; NSString * imageStr = [ZYCTool getFileNameImage:[extDcit objectForKey:@"app_title"]]; self.textLabel.text = [extDcit objectForKey:@"app_title"]; NSString * detail = [extDcit objectForKey:@"app_content"]; self.detailLabel.text = detail; [self.iconView removeAllSubviews]; switch ([[extDcit objectForKey:@"app_type"] integerValue]) { case CollectModel_Aritle: { self.iconView.image = IMG(@"文章"); } break; case CollectModel_Text: { self.iconView.image = IMG(@"文章"); } break; case CollectModel_Notice: { self.iconView.image = IMG(@"通知图标"); } break; case CollectModel_NoteBook: { self.iconView.image = IMG(@"noteBook_icon"); } break; case CollectModel_NewTopic: { self.iconView.image = IMG(@"话题"); } break; case CollectModel_Toipc: { detail = [NSString stringWithFormat:@"%@ 来自-%@",[extDcit objectForKey:@"app_content"],[extDcit objectForKey:@"app_groupname"]]; self.detailLabel.attributedText = [ZYCTool checkOfString:detail withSearchText:[extDcit objectForKey:@"app_groupname"] withColor:UIColorHex(0x1F87DB)]; self.iconView.image = IMG(@"话题"); } break; case CollectModel_InterMail: { self.iconView.image = IMG(@"站内信"); } break; case CollectModel_NoSignMail: { self.iconView.image = IMG(@"站内信"); } break; case CollectModel_CollectFile: { self.iconView.image = IMG(@"find_1"); } break; case CollectModel_NoteFile: { self.iconView.image = IMG(@"find_1"); } break; case CollectModel_meetMian: { self.iconView.image = IMG(@"会议纪要"); } break; case CollectModel_meetDetail: { self.iconView.image = IMG(@"会议"); } break; case CollectModel_Image: { [self.iconView setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholder:nil]; } break; case CollectModel_file: { if(imageStr.length > 0){ self.iconView.image = IMG(imageStr); }else{ [self.iconView setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholder:nil]; } } break; case CollectModel_work: { self.iconView.image = IMG(@"审批"); } break; case CollectModel_StoreBook: { [self.iconView sd_setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholderImage:IMG(@"default_audio")]; } break; case CollectModel_StoreSound: { [self.iconView sd_setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholderImage:IMG(@"default_audio")]; if ([[extDcit objectForKey:@"app_min_url"] length] > 0) { UIImageView * clearV = [UIImageView new]; [self.iconView addSubview:clearV]; clearV.image = IMG(@"clear_audio"); [clearV mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.iconView); }]; } } break; case CollectModel_StoreVideo: { [self.iconView sd_setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholderImage:IMG(@"default_video")]; if ([[extDcit objectForKey:@"app_min_url"] length] > 0) { UIImageView * clearV = [UIImageView new]; [self.iconView addSubview:clearV]; clearV.image = IMG(@"clear_video"); [clearV mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.iconView); }]; } } break; case CollectModel_StoreCousre: { [self.iconView sd_setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholderImage:IMG(@"icon_weizhiwenjian")]; } break; case CollectModel_MediaAritle: { [self.iconView sd_setImageWithURL:[NSURL URLWithString:[extDcit objectForKey:@"app_min_url"]] placeholderImage:IMG(@"文章")]; } break; case CollectModel_financeCount: { self.iconView.image = IMG(@"报表"); } break; case CollectModel_affairsCount: { self.iconView.image = IMG(@"报表"); } break; case CollectModel_publishCount: { self.iconView.image = IMG(@"报表"); } break; case CollectModel_TopicBooK: { self.iconView.image = IMG(@"topicBook"); } break; case CollectModel_TopicSubBooK: { self.iconView.image = IMG(@"find_1"); } break; default: break; } } @end