mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			117 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Objective-C
		
	
| //
 | |
| //  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import "ContactTableViewCell.h"
 | |
| #import "ContactCellView.h"
 | |
| #import "OWSTableViewController.h"
 | |
| #import "UIColor+OWS.h"
 | |
| #import "UIFont+OWS.h"
 | |
| #import "UIView+OWS.h"
 | |
| #import <SignalServiceKit/SignalAccount.h>
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| @interface ContactTableViewCell ()
 | |
| 
 | |
| @property (nonatomic) ContactCellView *cellView;
 | |
| 
 | |
| @end
 | |
| 
 | |
| #pragma mark -
 | |
| 
 | |
| @implementation ContactTableViewCell
 | |
| 
 | |
| - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier
 | |
| {
 | |
|     if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
 | |
|         [self configure];
 | |
|     }
 | |
|     return self;
 | |
| }
 | |
| 
 | |
| + (NSString *)reuseIdentifier
 | |
| {
 | |
|     return NSStringFromClass(self.class);
 | |
| }
 | |
| 
 | |
| - (void)setAccessoryView:(nullable UIView *)accessoryView
 | |
| {
 | |
|     OWSFailDebug(@"use ows_setAccessoryView instead.");
 | |
| }
 | |
| 
 | |
| - (void)configure
 | |
| {
 | |
|     OWSAssertDebug(!self.cellView);
 | |
| 
 | |
|     self.preservesSuperviewLayoutMargins = YES;
 | |
|     self.contentView.preservesSuperviewLayoutMargins = YES;
 | |
| 
 | |
|     self.cellView = [ContactCellView new];
 | |
|     [self.contentView addSubview:self.cellView];
 | |
|     [self.cellView autoPinEdgesToSuperviewMargins];
 | |
|     self.cellView.userInteractionEnabled = NO;
 | |
| }
 | |
| 
 | |
| - (void)configureWithRecipientId:(NSString *)recipientId
 | |
| {
 | |
|     [OWSTableItem configureCell:self];
 | |
| 
 | |
|     [self.cellView configureWithRecipientId:recipientId];
 | |
| 
 | |
|     // Force layout, since imageView isn't being initally rendered on App Store optimized build.
 | |
|     [self layoutSubviews];
 | |
| }
 | |
| 
 | |
| - (void)configureWithThread:(TSThread *)thread
 | |
| {
 | |
|     OWSAssertDebug(thread);
 | |
| 
 | |
|     [OWSTableItem configureCell:self];
 | |
| 
 | |
|     [self.cellView configureWithThread:thread];
 | |
| 
 | |
|     // Force layout, since imageView isn't being initally rendered on App Store optimized build.
 | |
|     [self layoutSubviews];
 | |
| }
 | |
| 
 | |
| - (void)setAccessoryMessage:(nullable NSString *)accessoryMessage
 | |
| {
 | |
|     OWSAssertDebug(self.cellView);
 | |
| 
 | |
|     self.cellView.accessoryMessage = accessoryMessage;
 | |
| }
 | |
| 
 | |
| - (NSAttributedString *)verifiedSubtitle
 | |
| {
 | |
|     return self.cellView.verifiedSubtitle;
 | |
| }
 | |
| 
 | |
| - (void)setAttributedSubtitle:(nullable NSAttributedString *)attributedSubtitle
 | |
| {
 | |
|     [self.cellView setAttributedSubtitle:attributedSubtitle];
 | |
| }
 | |
| 
 | |
| - (void)prepareForReuse
 | |
| {
 | |
|     [super prepareForReuse];
 | |
| 
 | |
|     [self.cellView prepareForReuse];
 | |
| 
 | |
|     self.accessoryType = UITableViewCellAccessoryNone;
 | |
| }
 | |
| 
 | |
| - (BOOL)hasAccessoryText
 | |
| {
 | |
|     return [self.cellView hasAccessoryText];
 | |
| }
 | |
| 
 | |
| - (void)ows_setAccessoryView:(UIView *)accessoryView
 | |
| {
 | |
|     return [self.cellView setAccessoryView:accessoryView];
 | |
| }
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |