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.9 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Objective-C
		
	
//
 | 
						|
//  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_BEGIN
 | 
						|
 | 
						|
@class OWSLinkPreviewDraft;
 | 
						|
@class OWSQuotedReplyModel;
 | 
						|
@class OWSUnreadIndicator;
 | 
						|
@class SignalAttachment;
 | 
						|
@class TSContactThread;
 | 
						|
@class TSGroupThread;
 | 
						|
@class TSInteraction;
 | 
						|
@class TSOutgoingMessage;
 | 
						|
@class TSThread;
 | 
						|
@class YapDatabaseConnection;
 | 
						|
@class YapDatabaseReadTransaction;
 | 
						|
@class YapDatabaseReadWriteTransaction;
 | 
						|
 | 
						|
@interface ThreadDynamicInteractions : NSObject
 | 
						|
 | 
						|
// Represents the "reverse index" of the focus message, if any.
 | 
						|
// The "reverse index" is the distance of this interaction from
 | 
						|
// the last interaction in the thread.  Therefore the last interaction
 | 
						|
// will have a "reverse index" of zero.
 | 
						|
//
 | 
						|
// We use "reverse indices" because (among other uses) we use this to
 | 
						|
// determine the initial load window size.
 | 
						|
@property (nonatomic, nullable, readonly) NSNumber *focusMessagePosition;
 | 
						|
 | 
						|
@property (nonatomic, nullable, readonly) OWSUnreadIndicator *unreadIndicator;
 | 
						|
 | 
						|
- (void)clearUnreadIndicatorState;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
#pragma mark -
 | 
						|
 | 
						|
@interface ThreadUtil : NSObject
 | 
						|
 | 
						|
#pragma mark - dynamic interactions
 | 
						|
 | 
						|
// This method will create and/or remove any offers and indicators
 | 
						|
// necessary for this thread.  This includes:
 | 
						|
//
 | 
						|
// * Block offers.
 | 
						|
// * "Add to contacts" offers.
 | 
						|
// * Unread indicators.
 | 
						|
//
 | 
						|
// Parameters:
 | 
						|
//
 | 
						|
// * hideUnreadMessagesIndicator: If YES, the "unread indicator" has
 | 
						|
//   been cleared and should not be shown.
 | 
						|
// * firstUnseenInteractionTimestamp: A snapshot of unseen message state
 | 
						|
//   when we entered the conversation view.  See comments on
 | 
						|
//   ThreadOffersAndIndicators.
 | 
						|
// * maxRangeSize: Loading a lot of messages in conversation view is
 | 
						|
//   slow and unwieldy.  This number represents the maximum current
 | 
						|
//   size of the "load window" in that view. The unread indicator should
 | 
						|
//   always be inserted within that window.
 | 
						|
+ (ThreadDynamicInteractions *)ensureDynamicInteractionsForThread:(TSThread *)thread
 | 
						|
                                                     dbConnection:(YapDatabaseConnection *)dbConnection
 | 
						|
                                      hideUnreadMessagesIndicator:(BOOL)hideUnreadMessagesIndicator
 | 
						|
                                              lastUnreadIndicator:(nullable OWSUnreadIndicator *)lastUnreadIndicator
 | 
						|
                                                   focusMessageId:(nullable NSString *)focusMessageId
 | 
						|
                                                     maxRangeSize:(int)maxRangeSize;
 | 
						|
 | 
						|
#pragma mark - Delete Content
 | 
						|
 | 
						|
+ (void)deleteAllContent;
 | 
						|
 | 
						|
#pragma mark - Find Content
 | 
						|
 | 
						|
+ (nullable TSInteraction *)findInteractionInThreadByTimestamp:(uint64_t)timestamp
 | 
						|
                                                      authorId:(NSString *)authorId
 | 
						|
                                                threadUniqueId:(NSString *)threadUniqueId
 | 
						|
                                                   transaction:(YapDatabaseReadTransaction *)transaction;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_END
 |