15 #import <Foundation/Foundation.h>
17 #import "EMMessageBody.h"
18 #import "EMCursorResult.h"
27 typedef NS_ENUM(NSInteger, EMConversationType) {
28 EMConversationTypeChat = 0,
29 EMConversationTypeGroupChat,
30 EMConversationTypeChatRoom,
44 typedef NS_ENUM(NSInteger, EMMarkType) {
85 typedef NS_ENUM(NSInteger, EMMessageSearchDirection) {
86 EMMessageSearchDirectionUp = 0,
87 EMMessageSearchDirectionDown
97 typedef NS_ENUM(NSInteger, EMMessageSearchScope) {
98 EMMessageSearchScopeContent = 0,
99 EMMessageSearchScopeExt,
100 EMMessageSearchScopeAll
137 @property (nonatomic, assign, readonly) EMConversationType
type;
168 @property (nonatomic, copy) NSDictionary *
ext;
221 @property (nonatomic, readonly) NSArray<NSNumber*>*
marks;
259 error:(
EMError ** _Nullable)pError;
284 error:(
EMError **_Nullable)pError;
300 - (void)deleteMessageWithId:(NSString *_Nonnull)aMessageId
301 error:(
EMError ** _Nullable)pError;
314 - (void)deleteAllMessages:(
EMError ** _Nullable)pError;
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;
372 - (void)updateMessageChange:(
EMChatMessage *_Nonnull)aMessage
373 error:(
EMError ** _Nullable)pError;
389 - (void)markMessageAsReadWithId:(NSString *_Nonnull)aMessageId
390 error:(
EMError ** _Nullable)pError;
404 - (void)markAllMessagesAsRead:(
EMError ** _Nullable)pError;
416 #pragma mark - Load Messages Methods
432 - (
EMChatMessage * _Nullable)loadMessageWithId:(NSString * _Nonnull)aMessageId
433 error:(
EMError ** _Nullable)pError;
465 - (NSArray<
EMChatMessage *> * _Nullable)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
467 searchDirection:(EMMessageSearchDirection)aDirection;
495 - (void)loadMessagesStartFromId:(NSString * _Nullable)aMessageId
497 searchDirection:(EMMessageSearchDirection)aDirection
498 completion:(
void (^ _Nullable)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
528 - (NSArray<
EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
529 timestamp:(
long long)aTimestamp
531 fromUser:(NSString* _Nullable)aUsername
532 searchDirection:(EMMessageSearchDirection)aDirection;
556 - (void)loadMessagesWithType:(EMMessageBodyType)aType
557 timestamp:(
long long)aTimestamp
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
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
623 fromUser:(NSString* _Nullable)aSender
624 searchDirection:(EMMessageSearchDirection)aDirection;
649 - (void)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
650 timestamp:(
long long)aTimestamp
652 fromUser:(NSString* _Nullable)aSender
653 searchDirection:(EMMessageSearchDirection)aDirection
654 completion:(
void (^ _Nullable)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
687 - (void)loadMessagesWithKeyword:(NSString* _Nullable)aKeyword
688 timestamp:(
long long)aTimestamp
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;
724 - (NSArray<
EMChatMessage *> * _Nullable)loadCustomMsgWithKeyword:(NSString*)aKeyword
725 timestamp:(
long long)aTimestamp
727 fromUser:(NSString* _Nullable)aSender
728 searchDirection:(EMMessageSearchDirection)aDirection;
753 - (void)loadCustomMsgWithKeyword:(NSString* _Nullable)aKeyword
754 timestamp:(
long long)aTimestamp
756 fromUser:(NSString* _Nullable)aSender
757 searchDirection:(EMMessageSearchDirection)aDirection
758 completion:(
void (^ _Nullable)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
789 - (NSArray<
EMChatMessage *> * _Nullable)loadMessagesFrom:(
long long)aStartTimestamp
790 to:(
long long)aEndTimestamp
811 - (void)loadMessagesFrom:(
long long)aStartTimestamp
812 to:(
long long)aEndTimestamp
814 completion:(
void (^ _Nullable)(NSArray<
EMChatMessage *> * _Nullable aMessages,
EMError * _Nullable aError))aCompletionBlock;
836 - (
EMError* _Nullable)removeMessagesStart:(NSInteger)aStartTimestamp
837 to:(NSInteger)aEndTimestamp;
NSArray< EMChatMessage * > *_Nullable pinnedMessages()
NSString * conversationId
Definition: EMConversation.h:128
Definition: EMConversation.h:113
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()