HyphenateChatSDK 4.1.0
EMConversation.h
1
15#import <Foundation/Foundation.h>
16
17#import "EMMessageBody.h"
18#import "EMCursorResult.h"
19
27typedef NS_ENUM(NSInteger, EMConversationType) {
28 EMConversationTypeChat = 0,
29 EMConversationTypeGroupChat,
30 EMConversationTypeChatRoom,
31};
32
51typedef NS_ENUM(NSInteger, EMMessageSearchDirection) {
52 EMMessageSearchDirectionUp = 0,
53 EMMessageSearchDirectionDown
54};
55
56@class EMChatMessage;
57@class EMError;
58
66@interface EMConversation : NSObject
67
81@property (nonatomic, copy, readonly) NSString *conversationId;
82
90@property (nonatomic, assign, readonly) EMConversationType type;
91
99@property (nonatomic, assign, readonly) int unreadMessagesCount;
100
108@property (nonatomic, assign, readonly) int messagesCount;
109
121@property (nonatomic, copy) NSDictionary *ext;
122
134@property (nonatomic, assign) BOOL isChatThread;
135
147@property (readonly) BOOL isPinned;
148
156@property (readonly) int64_t pinnedTime;
157
165@property (nonatomic, strong, readonly) EMChatMessage *latestMessage;
166
179
202- (void)insertMessage:(EMChatMessage *_Nonnull)aMessage
203 error:(EMError ** _Nullable)pError;
204
227- (void)appendMessage:(EMChatMessage *_Nonnull)aMessage
228 error:(EMError **_Nullable)pError;
229
244- (void)deleteMessageWithId:(NSString *_Nonnull)aMessageId
245 error:(EMError ** _Nullable)pError;
246
258- (void)deleteAllMessages:(EMError ** _Nullable)pError;
259
260
277- (void)removeMessagesFromServerMessageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
294- (void)removeMessagesFromServerWithTimeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
295
316- (void)updateMessageChange:(EMChatMessage *_Nonnull)aMessage
317 error:(EMError ** _Nullable)pError;
318
333- (void)markMessageAsReadWithId:(NSString *_Nonnull)aMessageId
334 error:(EMError ** _Nullable)pError;
335
348- (void)markAllMessagesAsRead:(EMError ** _Nullable)pError;
349
350
351#pragma mark - Load Messages Methods
352
367- (EMChatMessage * _Nullable)loadMessageWithId:(NSString * _Nonnull)aMessageId
368 error:(EMError ** _Nullable)pError;
369
400- (NSArray<EMChatMessage *> * _Nullable)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
401 count:(int)aCount
402 searchDirection:(EMMessageSearchDirection)aDirection;
403
430- (void)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
431 count:(int)aCount
432 searchDirection:(EMMessageSearchDirection)aDirection
433 completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
434
463- (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
464 timestamp:(long long)aTimestamp
465 count:(int)aCount
466 fromUser:(NSString* _Nullable)aUsername
467 searchDirection:(EMMessageSearchDirection)aDirection;
468
491- (void)loadMessagesWithType:(EMMessageBodyType)aType
492 timestamp:(long long)aTimestamp
493 count:(int)aCount
494 fromUser:(NSString* _Nullable)aUsername
495 searchDirection:(EMMessageSearchDirection)aDirection
496 completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
497
528- (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
529 timestamp:(long long)aTimestamp
530 count:(int)aCount
531 fromUser:(NSString* _Nullable)aSender
532 searchDirection:(EMMessageSearchDirection)aDirection;
533
557- (void)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
558 timestamp:(long long)aTimestamp
559 count:(int)aCount
560 fromUser:(NSString* _Nullable)aSender
561 searchDirection:(EMMessageSearchDirection)aDirection
562 completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
563
593- (NSArray<EMChatMessage *> * _Nullable)loadCustomMsgWithKeyword:(NSString*)aKeyword
594 timestamp:(long long)aTimestamp
595 count:(int)aCount
596 fromUser:(NSString* _Nullable)aSender
597 searchDirection:(EMMessageSearchDirection)aDirection;
598
622- (void)loadCustomMsgWithKeyword:(NSString* _Nullable)aKeyword
623 timestamp:(long long)aTimestamp
624 count:(int)aCount
625 fromUser:(NSString* _Nullable)aSender
626 searchDirection:(EMMessageSearchDirection)aDirection
627 completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
628
658- (NSArray<EMChatMessage *> * _Nullable)loadMessagesFrom:(long long)aStartTimestamp
659 to:(long long)aEndTimestamp
660 count:(int)aCount;
661
680- (void)loadMessagesFrom:(long long)aStartTimestamp
681 to:(long long)aEndTimestamp
682 count:(int)aCount
683 completion:(void (^ _Nullable)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
684
705- (EMError* _Nullable)removeMessagesStart:(NSInteger)aStartTimestamp
706 to:(NSInteger)aEndTimestamp;
707@end
Definition: EMChatMessage.h:82
Definition: EMConversation.h:67
NSDictionary * ext
Definition: EMConversation.h:121
int64_t pinnedTime
Definition: EMConversation.h:156
int messagesCount
Definition: EMConversation.h:108
BOOL isChatThread
Definition: EMConversation.h:134
EMChatMessage * latestMessage
Definition: EMConversation.h:165
EMConversationType type
Definition: EMConversation.h:90
BOOL isPinned
Definition: EMConversation.h:147
int unreadMessagesCount
Definition: EMConversation.h:99
NSString * conversationId
Definition: EMConversation.h:81
EMChatMessage *_Nullable lastReceivedMessage()
Definition: EMError.h:27