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.
		
		
		
		
		
			
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Objective-C
		
	
| //
 | |
| //  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import <SessionUtilitiesKit/TSYapDatabaseObject.h>
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| BOOL IsNoteToSelfEnabled(void);
 | |
| 
 | |
| @class OWSDisappearingMessagesConfiguration;
 | |
| @class TSInteraction;
 | |
| 
 | |
| /**
 | |
|  *  TSThread is the superclass of TSContactThread and TSGroupThread
 | |
|  */
 | |
| @interface TSThread : TSYapDatabaseObject
 | |
| 
 | |
| @property (nonatomic) BOOL shouldBeVisible;
 | |
| @property (nonatomic, readonly) NSDate *creationDate;
 | |
| @property (nonatomic, readonly) TSInteraction *lastInteraction;
 | |
| @property (atomic, readonly) BOOL isMuted;
 | |
| @property (atomic, readonly, nullable) NSDate *mutedUntilDate;
 | |
| 
 | |
| /**
 | |
|  *  Whether the object is a group thread or not.
 | |
|  *
 | |
|  *  @return YES if is a group thread, NO otherwise.
 | |
|  */
 | |
| - (BOOL)isGroupThread;
 | |
| 
 | |
| /**
 | |
|  *  Returns the name of the thread.
 | |
|  *
 | |
|  *  @return The name of the thread.
 | |
|  */
 | |
| - (NSString *)name;
 | |
| 
 | |
| /**
 | |
|  * @returns recipientId for each recipient in the thread
 | |
|  */
 | |
| @property (nonatomic, readonly) NSArray<NSString *> *recipientIdentifiers;
 | |
| 
 | |
| - (BOOL)isNoteToSelf;
 | |
| 
 | |
| #pragma mark Interactions
 | |
| 
 | |
| - (void)enumerateInteractionsWithTransaction:(YapDatabaseReadTransaction *)transaction usingBlock:(void (^)(TSInteraction *interaction, BOOL *stop))block;
 | |
| 
 | |
| - (void)enumerateInteractionsUsingBlock:(void (^)(TSInteraction *interaction))block;
 | |
| 
 | |
| /**
 | |
|  *  @return The number of interactions in this thread.
 | |
|  */
 | |
| - (NSUInteger)numberOfInteractions;
 | |
| 
 | |
| - (NSUInteger)unreadMessageCountWithTransaction:(YapDatabaseReadTransaction *)transaction
 | |
|     NS_SWIFT_NAME(unreadMessageCount(transaction:));
 | |
| 
 | |
| - (void)markAllAsReadWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| /**
 | |
|  *  Returns the string that will be displayed typically in a conversations view as a preview of the last message
 | |
|  *  received in this thread.
 | |
|  *
 | |
|  *  @return Thread preview string.
 | |
|  */
 | |
| - (NSString *)lastMessageTextWithTransaction:(YapDatabaseReadTransaction *)transaction
 | |
|     NS_SWIFT_NAME(lastMessageText(transaction:));
 | |
| 
 | |
| - (nullable TSInteraction *)lastInteractionForInboxWithTransaction:(YapDatabaseReadTransaction *)transaction
 | |
|     NS_SWIFT_NAME(lastInteractionForInbox(transaction:));
 | |
| 
 | |
| /**
 | |
|  *  Updates the thread's caches of the latest interaction.
 | |
|  *
 | |
|  *  @param lastMessage Latest Interaction to take into consideration.
 | |
|  *  @param transaction Database transaction.
 | |
|  */
 | |
| - (void)updateWithLastMessage:(TSInteraction *)lastMessage transaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| - (void)removeAllThreadInteractionsWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| - (TSInteraction *)getLastInteractionWithTransaction:(YapDatabaseReadTransaction *)transaction;
 | |
| 
 | |
| #pragma mark Disappearing Messages
 | |
| 
 | |
| - (OWSDisappearingMessagesConfiguration *)disappearingMessagesConfigurationWithTransaction:
 | |
|     (YapDatabaseReadTransaction *)transaction;
 | |
| 
 | |
| - (uint32_t)disappearingMessagesDurationWithTransaction:(YapDatabaseReadTransaction *)transaction;
 | |
| 
 | |
| #pragma mark Drafts
 | |
| 
 | |
| /**
 | |
|  *  Returns the last known draft for that thread. Always returns a string. Empty string if nil.
 | |
|  *
 | |
|  *  @param transaction Database transaction.
 | |
|  *
 | |
|  *  @return Last known draft for that thread.
 | |
|  */
 | |
| - (NSString *)currentDraftWithTransaction:(YapDatabaseReadTransaction *)transaction;
 | |
| 
 | |
| /**
 | |
|  *  Sets the draft of a thread. Typically called when leaving a conversation view.
 | |
|  *
 | |
|  *  @param draftString Draft string to be saved.
 | |
|  *  @param transaction Database transaction.
 | |
|  */
 | |
| - (void)setDraft:(NSString *)draftString transaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| #pragma mark Muting
 | |
| 
 | |
| - (void)updateWithMutedUntilDate:(NSDate *)mutedUntilDate transaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |