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.
		
		
		
		
		
			
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Objective-C
		
	
| //
 | |
| //  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| @class ConversationStyle;
 | |
| @class ConversationViewCell;
 | |
| @class OWSContactOffersInteraction;
 | |
| @class OWSContactsManager;
 | |
| @class TSAttachmentStream;
 | |
| @class TSCall;
 | |
| @class TSErrorMessage;
 | |
| @class TSInteraction;
 | |
| @class TSInvalidIdentityKeyErrorMessage;
 | |
| @class TSMessage;
 | |
| @class TSOutgoingMessage;
 | |
| @class TSQuotedMessage;
 | |
| 
 | |
| @protocol ConversationViewItem;
 | |
| 
 | |
| @protocol ConversationViewCellDelegate <NSObject>
 | |
| 
 | |
| - (void)conversationCell:(ConversationViewCell *)cell
 | |
|             shouldAllowReply:(BOOL)shouldAllowReply
 | |
|     didLongpressTextViewItem:(id<ConversationViewItem>)viewItem;
 | |
| - (void)conversationCell:(ConversationViewCell *)cell
 | |
|              shouldAllowReply:(BOOL)shouldAllowReply
 | |
|     didLongpressMediaViewItem:(id<ConversationViewItem>)viewItem;
 | |
| - (void)conversationCell:(ConversationViewCell *)cell
 | |
|              shouldAllowReply:(BOOL)shouldAllowReply
 | |
|     didLongpressQuoteViewItem:(id<ConversationViewItem>)viewItem;
 | |
| - (void)conversationCell:(ConversationViewCell *)cell
 | |
|     didLongpressSystemMessageViewItem:(id<ConversationViewItem>)viewItem;
 | |
| 
 | |
| #pragma mark - System Cell
 | |
| 
 | |
| - (void)tappedCorruptedMessage:(TSErrorMessage *)message;
 | |
| - (void)resendGroupUpdateForErrorMessage:(TSErrorMessage *)message;
 | |
| - (void)showConversationSettings;
 | |
| 
 | |
| #pragma mark - Caching
 | |
| 
 | |
| - (NSCache *)cellMediaCache;
 | |
| 
 | |
| #pragma mark - Messages
 | |
| 
 | |
| - (void)didTapFailedOutgoingMessage:(TSOutgoingMessage *)message;
 | |
| 
 | |
| @end
 | |
| 
 | |
| #pragma mark -
 | |
| 
 | |
| // TODO: Consider making this a protocol.
 | |
| @interface ConversationViewCell : UICollectionViewCell
 | |
| 
 | |
| @property (nonatomic, nullable, weak) id<ConversationViewCellDelegate> delegate;
 | |
| 
 | |
| @property (nonatomic, nullable) id<ConversationViewItem> viewItem;
 | |
| 
 | |
| // Cells are prefetched but expensive cells (e.g. media) should only load
 | |
| // when visible and unload when no longer visible.  Non-visible cells can
 | |
| // cache their contents on their ConversationViewItem, but that cache may
 | |
| // be evacuated before the cell becomes visible again.
 | |
| //
 | |
| // ConversationViewController also uses this property to evacuate the cell's
 | |
| // meda views when:
 | |
| //
 | |
| // * App enters background.
 | |
| // * Users enters another view (e.g. conversation settings view, call screen, etc.).
 | |
| @property (nonatomic) BOOL isCellVisible;
 | |
| 
 | |
| @property (nonatomic, nullable) ConversationStyle *conversationStyle;
 | |
| 
 | |
| - (void)loadForDisplay;
 | |
| 
 | |
| - (CGSize)cellSize;
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |