123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- //
- // FriendRequestTableViewCell.m
- // WFChat UIKit
- //
- // Created by WF Chat on 2017/10/23.
- // Copyright © 2017年 WildFireChat. All rights reserved.
- //
- #import "WFCUFriendRequestTableViewCell.h"
- #import <SDWebImage/SDWebImage.h>
- #import <WFChatClient/WFCChatClient.h>
- #import "WFCUConfigManager.h"
- #import "UIFont+YH.h"
- #import "UIColor+YH.h"
- #import "WFCUImage.h"
- @interface WFCUFriendRequestTableViewCell()
- @property (nonatomic, strong)UIImageView *portraitView;
- @property (nonatomic, strong)UILabel *nameLabel;
- @property (nonatomic, strong)UILabel *reasonLabel;
- @property (nonatomic, strong)UIButton *acceptBtn;
- @end
- @implementation WFCUFriendRequestTableViewCell
- - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
- self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
- if (self) {
- [self initSubViews];
- }
- return self;
- }
- - (void)awakeFromNib {
- [super awakeFromNib];
- // Initialization code
- [self initSubViews];
- }
- - (void)initSubViews {
- for (UIView *view in self.contentView.subviews) {
- [view removeFromSuperview];
- }
- CGFloat width = [UIScreen mainScreen].bounds.size.width;
- self.separatorInset = UIEdgeInsetsMake(0, 76, 0, 0);
- self.portraitView = [[UIImageView alloc] initWithFrame:CGRectMake(16, 10, 40, 40)];
- self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(16 + 40 + 20,11, width - 128, 16)];
- self.nameLabel.font = [UIFont pingFangSCWithWeight:FontWeightStyleRegular size:15];
- self.nameLabel.textColor = [UIColor colorWithHexString:@"0x1d1d1d"];
- self.reasonLabel = [[UILabel alloc] initWithFrame:CGRectMake(16 + 40 + 20, 11 + 15 + 6, width - 128, 14)];
- self.reasonLabel.font = [UIFont pingFangSCWithWeight:FontWeightStyleRegular size:12];
- self.reasonLabel.textColor = [UIColor colorWithHexString:@"0xb3b3b3"];
-
- self.acceptBtn = [[UIButton alloc] initWithFrame:CGRectMake(width - (46 + 16), 16, 46, 28)];
- [self.acceptBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- [self.acceptBtn setTitle:WFCString(@"Accept") forState:UIControlStateNormal];
- [self.acceptBtn setBackgroundColor:[UIColor colorWithHexString:@"0x4764DC"]];
- self.acceptBtn.layer.cornerRadius = 4.f;
- self.acceptBtn.layer.masksToBounds = YES;
- [self.acceptBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- self.acceptBtn.titleLabel.font = [UIFont pingFangSCWithWeight:FontWeightStyleRegular size:12];
-
- [self.contentView addSubview:self.portraitView];
- [self.contentView addSubview:self.nameLabel];
- [self.contentView addSubview:self.reasonLabel];
- [self.contentView addSubview:self.acceptBtn];
-
- [self.acceptBtn addTarget:self action:@selector(onAddBtn:) forControlEvents:UIControlEventTouchDown];
- self.selectionStyle = UITableViewCellSelectionStyleNone;
-
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onUserInfoUpdated:) name:kUserInfoUpdated object:nil];
- }
- - (void)onAddBtn:(id)sender {
- [self.delegate onAcceptBtn:self.friendRequest.target];
- }
- - (void)onUserInfoUpdated:(NSNotification *)notification {
- NSArray<WFCCUserInfo *> *userInfoList = notification.userInfo[@"userInfoList"];
- for (WFCCUserInfo *userInfo in userInfoList) {
- if ([self.friendRequest.target isEqualToString:userInfo.userId]) {
- self.friendRequest = _friendRequest;
- break;
- }
- }
- }
- - (void)setFriendRequest:(WFCCFriendRequest *)friendRequest {
- _friendRequest = friendRequest;
- WFCCUserInfo *userInfo = [[WFCCIMService sharedWFCIMService] getUserInfo:friendRequest.target refresh:NO];
- [self.portraitView sd_setImageWithURL:[NSURL URLWithString:[userInfo.portrait stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] placeholderImage: [WFCUImage imageNamed:@"PersonalChat"]];
- self.nameLabel.text = userInfo.displayName;
- if([WFCCUtilities isExternalTarget:friendRequest.target]) {
- NSString *domainId = [WFCCUtilities getExternalDomain:friendRequest.target];
- self.nameLabel.attributedText = [WFCCUtilities getExternal:domainId withName:self.nameLabel.text withColor:[WFCUConfigManager globalManager].externalNameColor withSize:12];
- }
- self.reasonLabel.text = friendRequest.reason;
- BOOL expired = NO;
- NSDate *date = [[NSDate alloc] init];
- if (date.timeIntervalSince1970*1000 - friendRequest.timestamp > 7 * 24 * 60 * 60 * 1000) {
- expired = YES;
- }
- if (friendRequest.status == 0 && !expired) {
- [self.acceptBtn setTitle:WFCString(@"Accept") forState:UIControlStateNormal];
- [self.acceptBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- [self.acceptBtn setBackgroundColor:[UIColor colorWithHexString:@"0x4764DC"]];
- [self.acceptBtn setEnabled:YES];
- } else if (friendRequest.status == 1) {
- [self.acceptBtn setTitle:WFCString(@"Accepted") forState:UIControlStateNormal];
- [self.acceptBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
- [self.acceptBtn setBackgroundColor:self.backgroundColor];
- [self.acceptBtn setEnabled:NO];
- } else if (friendRequest.status == 2) {
- [self.acceptBtn setTitle:WFCString(@"Rejected") forState:UIControlStateNormal];
- [self.acceptBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
- [self.acceptBtn setBackgroundColor:self.backgroundColor];
- [self.acceptBtn setEnabled:NO];
- } else { //expired
- [self.acceptBtn setTitle:WFCString(@"Expired") forState:UIControlStateNormal];
- [self.acceptBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
- [self.acceptBtn setBackgroundColor:self.backgroundColor];
- [self.acceptBtn setEnabled:NO];
- }
- }
- - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
- [super setSelected:selected animated:animated];
- // Configure the view for the selected state
- }
- - (void)dealloc {
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- }
- @end
|