HyphenateChatSDK 5.0.0
IEMChatManager.h
1
15#import <Foundation/Foundation.h>
16
17#import "EMCommonDefs.h"
18#import "EMChatManagerDelegate.h"
19#import "EMConversationDelegate.h"
20#import "EMConversation.h"
21
22#import "EMChatMessage.h"
23#import "EMTextMessageBody.h"
24#import "EMLocationMessageBody.h"
25#import "EMCmdMessageBody.h"
26#import "EMFileMessageBody.h"
27#import "EMImageMessageBody.h"
28#import "EMVoiceMessageBody.h"
29#import "EMVideoMessageBody.h"
30#import "EMCustomMessageBody.h"
31#import "EMCombineMessageBody.h"
32#import "EMCursorResult.h"
33#import "EMPageResult.h"
34
35#import "EMGroupReadReceipt.h"
36#import "EMTranslateLanguage.h"
37#import "EMVoiceParam.h"
38#import "EMFetchServerMessagesOption.h"
39#import "EMMessageSearchOption.h"
40#import "EMSearchServerMessageResult.h"
41#import "EMConversationFilter.h"
42
50typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
51 EMMessageFetchHistoryDirectionUp = 0,
52 EMMessageFetchHistoryDirectionDown
54};
55
56
57@class EMError;
59
71@protocol IEMChatManager <NSObject>
72
73@required
74
75#pragma mark - Delegate
76
90- (void)addDelegate:(id<EMChatManagerDelegate> _Nullable)aDelegate
91 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
92
104- (void)removeDelegate:(id<EMChatManagerDelegate> _Nonnull)aDelegate;
105
119- (void)addConversationDelegate:(id<EMConversationDelegate> _Nullable)aDelegate
120 delegateQueue:(dispatch_queue_t _Nullable)aQueue NS_SWIFT_NAME(addConversation(delegate:queue:));
121
133- (void)removeConversationDelegate:(id<EMConversationDelegate> _Nonnull)aDelegate NS_SWIFT_NAME(removeConversation(delegate:));
134
135#pragma mark - Conversation
136
152- (NSArray<EMConversation *> * _Nullable)getAllConversations;
153
179- (NSArray<EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
180
181
190
212- (NSArray<EMConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
213
231- (NSInteger)getUnreadMessageCount;
232
252- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(EMError * _Nullable error))completionBlock;
253
269- (EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
270
294- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
295 type:(EMConversationType)aType
296 createIfNotExist:(BOOL)aIfCreate;
297
325- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
326 type:(EMConversationType)aType
327 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
328
349- (void)deleteConversation:(NSString * _Nonnull)aConversationId
350 isDeleteMessages:(BOOL)aIsDeleteMessages
351 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError *_Nullable aError))aCompletionBlock;
352
375 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
376 conversationType:(EMConversationType)aConversationType
377 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
378 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError * _Nullable aError))aCompletionBlock;
379
400- (void)deleteConversations:(NSArray<EMConversation *> * _Nullable)aConversations
401 isDeleteMessages:(BOOL)aIsDeleteMessages
402 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
403
404#pragma mark - Message
405
420- (EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
421
441- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
442
457- (void)importMessages:(NSArray<EMChatMessage *> * _Nonnull)aMessages
458 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
459
480- (void)updateMessage:(EMChatMessage *_Nonnull)aMessage
481 completion:(void (^_Nullable)(EMChatMessage * _Nullable aMessage, EMError * _Nullable aError))aCompletionBlock;
482
514- (void)modifyMessage:(NSString *_Nonnull)messageId
515 body:(EMMessageBody *_Nullable)body
516 ext:(NSDictionary* _Nullable)ext
517 completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
518
544- (void)sendMessageReadReceipts:(NSArray<EMChatMessage *> * _Nonnull)aMessages
545 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
546
569- (void)clearConversationUnreadMessageCount:(NSString * _Nonnull)aConversationId
570 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
571
591- (void)clearAllConversationUnreadMessageCount:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
592
606- (void)getGroupMessageReadReceipts:(NSArray<EMChatMessage *> * _Nonnull)aMessages
607 completion:(void (^_Nullable)(NSArray<EMMessageReadReceipt *> *_Nullable aReceipts, EMError *_Nullable aError))aCompletionBlock;
608
637- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
638 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
639
660- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(EMError * _Nullable))aCompletionBlock;
680- (void)sendMessage:(EMChatMessage *_Nonnull)aMessage
681 progress:(void (^_Nullable)(int progress))aProgressBlock
682 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
683
703- (void)downloadMessageThumbnail:(EMChatMessage *_Nonnull)aMessage
704 progress:(void (^_Nullable)(int progress))aProgressBlock
705 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
706
730- (void)downloadMessageAttachment:(EMChatMessage *_Nonnull)aMessage
731 progress:(void (^_Nullable)(int progress))aProgressBlock
732 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
760- (void)downloadBigImageAttachment:(EMChatMessage *_Nonnull)aMessage
761 progress:(void (^_Nullable)(int progress))aProgressBlock
762 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
763
781- (void)downloadAndParseCombineMessage:(EMChatMessage* _Nonnull)aMessage
782 completion:(void (^_Nullable)(NSArray<EMChatMessage *>*_Nullable messages, EMError *_Nullable error))aCompletionBlock;
811- (void)asyncFetchGroupMessageReadUsersFromServer:(NSString *_Nonnull)aMessageId
812 groupId:(NSString *_Nonnull)aGroupId
813 readReceiptId:(NSString *_Nonnull)aReadReceiptId
814 pageSize:(int)aPageSize
815 completion:(void (^_Nullable)(EMCursorResult<EMGroupReadReceipt *> *_Nullable aResult, EMError *_Nullable error, int totalCount))aCompletionBlock;
816
833- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
834 completion:(void(^_Nullable)(EMError*_Nullable error))aCompletion;
835
836
837
854- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
871- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
872
873
889- (void)translateMessage:(EMChatMessage * _Nonnull)aMessage
890 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
891 completion:(void (^_Nullable)(EMChatMessage * _Nullable message, EMError * _Nullable error))aCompletionBlock;
892
918- (void)voiceMessageToText:(EMChatMessage * _Nonnull)aMessage
919 completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
920
944- (void)voiceFileToText:(NSString * _Nonnull)aFilePath
945 voiceParam:(EMVoiceParam * _Nullable)aVoiceParam
946 completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
947
960- (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<EMTranslateLanguage*>* _Nullable languages,EMError* _Nullable error))aCompletionBlock;
961
992- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
993 timestamp:(long long)aTimestamp
994 count:(int)aCount
995 fromUser:(NSString* _Nullable)aUsername
996 searchDirection:(EMMessageSearchDirection)aDirection
997 completion:(void (^_Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
998
1030- (void)loadMessagesWithKeyword:(NSString* _Nonnull)aKeywords
1031 timestamp:(long long)aTimestamp
1032 count:(int)aCount
1033 fromUser:(NSString *_Nullable)aSender
1034 searchDirection:(EMMessageSearchDirection)aDirection
1035 scope:(EMMessageSearchScope)aScope
1036 completion:(void (^_Nullable)(NSArray<EMChatMessage *> *_Nullable aMessages, EMError *_Nullable aError))aCompletionBlock;
1037
1062- (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1063 timestamp:(long long)aTimestamp
1064 fromUser:(NSString*_Nullable )aSender
1065 searchDirection:(EMMessageSearchDirection)aDirection
1066 scope:(EMMessageSearchScope)aScope
1067 completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, EMError * _Nullable aError))aCompletionBlock;
1068
1069NS_ASSUME_NONNULL_BEGIN
1085- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1086
1102- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1103
1121- (void)getReactionList:(NSArray <NSString *>*)messageIds
1122 groupId:(nullable NSString *)groupId
1123 chatType:(EMChatType)chatType
1124 completion:(void (^)(NSDictionary <NSString *, NSArray<EMMessageReaction *> *> *, EMError * _Nullable))completion;
1125
1145- (void)getReactionDetail:(NSString *)messageId
1146 reaction:(NSString *)reaction
1147 cursor:(nullable NSString *)cursor
1148 pageSize:(uint64_t)pageSize
1149 completion:(void (^)(EMMessageReaction *, NSString * _Nullable cursor, EMError * _Nullable))completion;
1150
1181- (void)fetchMessagesFromServerBy:(NSString* )conversationId
1182 conversationType:(EMConversationType)type
1183 cursor:(NSString* _Nullable)cursor
1184 pageSize:(NSUInteger)pageSize
1185 option:(EMFetchServerMessagesOption* _Nullable)option
1186 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*>* _Nullable result, EMError* _Nullable aError))aCompletionBlock;
1187
1208- (void)searchMessagesFromServerWithOption:(EMMessageSearchOption *)option
1209 pageSize:(NSInteger)pageSize
1210 pageNum:(NSInteger)pageNum
1211 completion:(void (^_Nullable)(EMPageResult<EMSearchServerMessageResult*>* _Nullable result, EMError* _Nullable aError))completion;
1212
1233- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1234
1256- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1257
1258
1281- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
1282
1296- (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1311- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1312
1326- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<EMChatMessage*>* _Nullable messages,EMError * _Nullable aError))aCompletionBlock;
1327
1339- (void)getMessageCountWithCompletion:(void (^)(NSInteger count, EMError * _Nullable aError))completion;
1340
1354- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1355 withConversationId:(NSString * _Nonnull)aConversationId
1356 completion:(void (^ _Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1357
1358NS_ASSUME_NONNULL_END
1359
1360@end
Definition: EMChatMessage.h:155
Definition: EMConversation.h:115
Definition: EMCursorResult.h:27
Definition: EMError.h:27
Definition: EMFetchServerMessagesOption.h:23
Definition: EMGroupReadReceipt.h:22
Definition: EMMessageBody.h:55
Definition: EMMessageReaction.h:21
Definition: EMMessageReadReceipt.h:18
Definition: EMMessageSearchOption.h:31
Definition: EMPageResult.h:24
Definition: EMSearchServerMessageResult.h:27
Definition: EMTranslateLanguage.h:20
Definition: EMVoiceParam.h:39
Definition: EMChatManagerDelegate.h:31
Definition: EMConversationDelegate.h:26
Definition: IEMChatManager.h:71
NSInteger getUnreadMessageCount()
NSArray< EMConversation * > *_Nullable getAllConversations()
void cleanConversationsMemoryCache()