HyphenateChatSDK  4.7.0
EMConversation.h
1 
15 #import <Foundation/Foundation.h>
16 
17 #import "EMMessageBody.h"
18 #import "EMCursorResult.h"
19 
27 typedef NS_ENUM(NSInteger, EMConversationType) {
28  EMConversationTypeChat = 0,
29  EMConversationTypeGroupChat,
30  EMConversationTypeChatRoom,
31 };
32 
44 typedef NS_ENUM(NSInteger, EMMarkType) {
45  EMMarkType0 = 0,
46  EMMarkType1 = 1,
47  EMMarkType2 = 2,
48  EMMarkType3 = 3,
49  EMMarkType4 = 4,
50  EMMarkType5 = 5,
51  EMMarkType6 = 6,
52  EMMarkType7 = 7,
53  EMMarkType8 = 8,
54  EMMarkType9 = 9,
55  EMMarkType10 = 10,
56  EMMarkType11 = 11,
57  EMMarkType12 = 12,
58  EMMarkType13 = 13,
59  EMMarkType14 = 14,
60  EMMarkType15 = 15,
61  EMMarkType16 = 16,
62  EMMarkType17 = 17,
63  EMMarkType18 = 18,
64  EMMarkType19 = 19,
65 };
66 
85 typedef NS_ENUM(NSInteger, EMMessageSearchDirection) {
86  EMMessageSearchDirectionUp = 0,
87  EMMessageSearchDirectionDown
88 };
89 
97 typedef NS_ENUM(NSInteger, EMMessageSearchScope) {
98  EMMessageSearchScopeContent = 0,
99  EMMessageSearchScopeExt,
100  EMMessageSearchScopeAll
101 };
102 
103 @class EMChatMessage;
104 @class EMError;
105 
113 @interface EMConversation : NSObject
114 
128 @property (nonatomic, copy, readonly) NSString *conversationId;
129 
137 @property (nonatomic, assign, readonly) EMConversationType type;
138 
146 @property (nonatomic, assign, readonly) int unreadMessagesCount;
147 
155 @property (nonatomic, assign, readonly) int messagesCount;
156 
168 @property (nonatomic, copy) NSDictionary *ext;
169 
181 @property (nonatomic, assign) BOOL isChatThread;
182 
194 @property (readonly) BOOL isPinned;
195 
203 @property (readonly) int64_t pinnedTime;
204 
212 @property (nonatomic, strong, readonly) EMChatMessage *latestMessage;
213 
221 @property (nonatomic, readonly) NSArray<NSNumber*>* marks;
222 
234 - (EMChatMessage * _Nullable)lastReceivedMessage;
235 
258 - (void)insertMessage:(EMChatMessage *_Nonnull)aMessage
259  error:(EMError ** _Nullable)pError;
260 
283 - (void)appendMessage:(EMChatMessage *_Nonnull)aMessage
284  error:(EMError **_Nullable)pError;
285 
300 - (void)deleteMessageWithId:(NSString *_Nonnull)aMessageId
301  error:(EMError ** _Nullable)pError;
302 
314 - (void)deleteAllMessages:(EMError ** _Nullable)pError;
315 
316 
333 - (void)removeMessagesFromServerMessageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
350 - (void)removeMessagesFromServerWithTimeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
351 
372 - (void)updateMessageChange:(EMChatMessage *_Nonnull)aMessage
373  error:(EMError ** _Nullable)pError;
374 
389 - (void)markMessageAsReadWithId:(NSString *_Nonnull)aMessageId
390  error:(EMError ** _Nullable)pError;
391 
404 - (void)markAllMessagesAsRead:(EMError ** _Nullable)pError;
405 
413 - (NSArray<EMChatMessage*>* _Nullable)pinnedMessages;
414 
415 
416 #pragma mark - Load Messages Methods
417 
432 - (EMChatMessage * _Nullable)loadMessageWithId:(NSString * _Nonnull)aMessageId
433  error:(EMError ** _Nullable)pError;
434 
465 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
466  count:(int)aCount
467  searchDirection:(EMMessageSearchDirection)aDirection;
468 
495 - (void)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
496  count:(int)aCount
497  searchDirection:(EMMessageSearchDirection)aDirection
498  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
499 
528 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
529  timestamp:(long long)aTimestamp
530  count:(int)aCount
531  fromUser:(NSString* _Nullable)aUsername
532  searchDirection:(EMMessageSearchDirection)aDirection;
533 
556 - (void)loadMessagesWithType:(EMMessageBodyType)aType
557  timestamp:(long long)aTimestamp
558  count:(int)aCount
559  fromUser:(NSString* _Nullable)aUsername
560  searchDirection:(EMMessageSearchDirection)aDirection
561  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
584 - (void)searchMessagesWithTypes:(NSArray <NSNumber*> *_Nonnull)aTypes
585  timestamp:(long long)aTimestamp
586  count:(int)aCount
587  fromUser:(NSString* _Nullable)aUsername
588  searchDirection:(EMMessageSearchDirection)aDirection
589  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
620 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
621  timestamp:(long long)aTimestamp
622  count:(int)aCount
623  fromUser:(NSString* _Nullable)aSender
624  searchDirection:(EMMessageSearchDirection)aDirection;
625 
649 - (void)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
650  timestamp:(long long)aTimestamp
651  count:(int)aCount
652  fromUser:(NSString* _Nullable)aSender
653  searchDirection:(EMMessageSearchDirection)aDirection
654  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
655 
687 - (void)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
688  timestamp:(long long)aTimestamp
689  count:(int)aCount
690  fromUser:(NSString* _Nullable)aSender
691  searchDirection:(EMMessageSearchDirection)aDirection
692  scope:(EMMessageSearchScope)aScope
693  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
694 
724 - (NSArray<EMChatMessage *> * _Nullable)loadCustomMsgWithKeyword:(NSString*)aKeyword
725  timestamp:(long long)aTimestamp
726  count:(int)aCount
727  fromUser:(NSString* _Nullable)aSender
728  searchDirection:(EMMessageSearchDirection)aDirection;
729 
753 - (void)loadCustomMsgWithKeyword:(NSString* _Nullable)aKeyword
754  timestamp:(long long)aTimestamp
755  count:(int)aCount
756  fromUser:(NSString* _Nullable)aSender
757  searchDirection:(EMMessageSearchDirection)aDirection
758  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
759 
789 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesFrom:(long long)aStartTimestamp
790  to:(long long)aEndTimestamp
791  count:(int)aCount;
792 
811 - (void)loadMessagesFrom:(long long)aStartTimestamp
812  to:(long long)aEndTimestamp
813  count:(int)aCount
814  completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
815 
836 - (EMError* _Nullable)removeMessagesStart:(NSInteger)aStartTimestamp
837  to:(NSInteger)aEndTimestamp;
838 @end
NSArray< EMChatMessage * > *_Nullable pinnedMessages()
NSString * conversationId
Definition: EMConversation.h:128
Definition: EMConversation.h:113
Definition: EMError.h:26
Definition: EMChatMessage.h:113
int unreadMessagesCount
Definition: EMConversation.h:146
EMChatMessage * latestMessage
Definition: EMConversation.h:212
EMConversationType type
Definition: EMConversation.h:137
NSArray< NSNumber * > * marks
Definition: EMConversation.h:221
NSDictionary * ext
Definition: EMConversation.h:168
int64_t pinnedTime
Definition: EMConversation.h:203
BOOL isPinned
Definition: EMConversation.h:194
BOOL isChatThread
Definition: EMConversation.h:181
int messagesCount
Definition: EMConversation.h:155
EMChatMessage *_Nullable lastReceivedMessage()