HyphenateChatSDK  4.22.0
IEMChatManager.h
1 
15 #import <Foundation/Foundation.h>
16 
17 #import "EMCommonDefs.h"
18 #import "EMChatManagerDelegate.h"
19 #import "EMConversation.h"
20 
21 #import "EMChatMessage.h"
22 #import "EMTextMessageBody.h"
23 #import "EMLocationMessageBody.h"
24 #import "EMCmdMessageBody.h"
25 #import "EMFileMessageBody.h"
26 #import "EMImageMessageBody.h"
27 #import "EMVoiceMessageBody.h"
28 #import "EMVideoMessageBody.h"
29 #import "EMCustomMessageBody.h"
30 #import "EMCombineMessageBody.h"
31 #import "EMCursorResult.h"
32 
33 #import "EMGroupMessageAck.h"
34 #import "EMTranslateLanguage.h"
35 #import "EMVoiceParam.h"
36 #import "EMFetchServerMessagesOption.h"
37 #import "EMConversationFilter.h"
38 
46 typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
47  EMMessageFetchHistoryDirectionUp = 0,
48  EMMessageFetchHistoryDirectionDown
50 };
51 
52 
53 @class EMError;
54 
66 @protocol IEMChatManager <NSObject>
67 
68 @required
69 
70 #pragma mark - Delegate
71 
85 - (void)addDelegate:(id<EMChatManagerDelegate> _Nullable)aDelegate
86  delegateQueue:(dispatch_queue_t _Nullable)aQueue;
87 
99 - (void)removeDelegate:(id<EMChatManagerDelegate> _Nonnull)aDelegate;
100 
101 #pragma mark - Conversation
102 
118 - (NSArray<EMConversation *> * _Nullable)getAllConversations;
119 
145 - (NSArray<EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
146 
147 
156 
178 - (NSArray<EMConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
179 
191 - (void)getConversationsFromServer:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
192 
208 - (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
209  pageSize:(NSUInteger)pageSize
210  completion:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
234 - (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
235 
255 - (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
256 
276 - (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(EMError * _Nullable error))completionBlock;
277 
293 - (EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
294 
318 - (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
319  type:(EMConversationType)aType
320  createIfNotExist:(BOOL)aIfCreate;
321 
349 - (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
350  type:(EMConversationType)aType
351  createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
352 
373 - (void)deleteConversation:(NSString * _Nonnull)aConversationId
374  isDeleteMessages:(BOOL)aIsDeleteMessages
375  completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError *_Nullable aError))aCompletionBlock;
376 
399  - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
400  conversationType:(EMConversationType)aConversationType
401  isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
402  completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError * _Nullable aError))aCompletionBlock;
403 
424 - (void)deleteConversations:(NSArray<EMConversation *> * _Nullable)aConversations
425  isDeleteMessages:(BOOL)aIsDeleteMessages
426  completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
427 
443 - (void)importConversations:(NSArray<EMConversation *> * _Nullable)aConversations
444  completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
445 
446 #pragma mark - Message
447 
462 - (EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
463 
483 - (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
484 
499 - (void)importMessages:(NSArray<EMChatMessage *> * _Nonnull)aMessages
500  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
501 
522 - (void)updateMessage:(EMChatMessage *_Nonnull)aMessage
523  completion:(void (^_Nullable)(EMChatMessage * _Nullable aMessage, EMError * _Nullable aError))aCompletionBlock;
543 - (void)modifyMessage:(NSString *_Nonnull)messageId body:(EMMessageBody *_Nonnull)body completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
544 
576 - (void)modifyMessage:(NSString *_Nonnull)messageId
577  body:(EMMessageBody *_Nullable)body
578  ext:(NSDictionary* _Nullable)ext
579  completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
580 
601 - (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
602  toUser:(NSString * _Nonnull)aUsername
603  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
604 
605 
628 - (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
629  toGroup:(NSString * _Nonnull)aGroupId
630  content:(NSString * _Nullable)aContent
631  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
632 
666 - (void)ackConversationRead:(NSString * _Nonnull)conversationId
667  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
668 
697 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
698  completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
699 
720 - (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(EMError * _Nullable))aCompletionBlock;
740 - (void)sendMessage:(EMChatMessage *_Nonnull)aMessage
741  progress:(void (^_Nullable)(int progress))aProgressBlock
742  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
743 
759 - (void)resendMessage:(EMChatMessage *_Nonnull)aMessage
760  progress:(void (^_Nullable)(int progress))aProgressBlock
761  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
762 
782 - (void)downloadMessageThumbnail:(EMChatMessage *_Nonnull)aMessage
783  progress:(void (^_Nullable)(int progress))aProgressBlock
784  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
785 
809 - (void)downloadMessageAttachment:(EMChatMessage *_Nonnull)aMessage
810  progress:(void (^_Nullable)(int progress))aProgressBlock
811  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
835 - (void)downloadBigImageAttachment:(EMChatMessage *_Nonnull)aMessage
836  progress:(void (^_Nullable)(int progress))aProgressBlock
837  completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
838 
856 - (void)downloadAndParseCombineMessage:(EMChatMessage* _Nonnull)aMessage
857  completion:(void (^_Nullable)(NSArray<EMChatMessage *>*_Nullable messages, EMError *_Nullable error))aCompletionBlock;
858 
885 - (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
886  conversationType:(EMConversationType)aConversationType
887  startMessageId:(NSString *_Nullable)aStartMessageId
888  fetchDirection:(EMMessageFetchHistoryDirection)direction
889  pageSize:(int)aPageSize
890  error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
915 - (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
916  conversationType:(EMConversationType)aConversationType
917  startMessageId:(NSString *_Nullable)aStartMessageId
918  pageSize:(int)aPageSize
919  error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
920 
921 
946 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
947  conversationType:(EMConversationType)aConversationType
948  startMessageId:(NSString *_Nullable)aStartMessageId
949  pageSize:(int)aPageSize
950  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
977 - (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
978  conversationType:(EMConversationType)aConversationType
979  startMessageId:(NSString *_Nullable)aStartMessageId
980  fetchDirection:(EMMessageFetchHistoryDirection)direction
981  pageSize:(int)aPageSize
982  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
983 
984 
985 
986 
1015 - (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
1016  groupId:(NSString *_Nonnull)aGroupId
1017  startGroupAckId:(NSString *_Nonnull)aGroupAckId
1018  pageSize:(int)aPageSize
1019  completion:(void (^_Nullable)(EMCursorResult<EMGroupMessageAck *> *_Nullable aResult, EMError *_Nullable error, int totalCount))aCompletionBlock;
1020 
1044 - (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1045  tag:(NSString *_Nonnull)aTag
1046  reason:(NSString *_Nonnull)aReason
1047  completion:(void(^_Nullable)(EMError* _Nullable error))aCompletion;
1048 
1065 - (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1066  completion:(void(^)(EMError*error))aCompletion;
1067 
1068 
1069 
1086 - (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1103 - (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1104 
1105 
1121 - (void)translateMessage:(EMChatMessage * _Nonnull)aMessage
1122  targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1123  completion:(void (^_Nullable)(EMChatMessage * _Nullable message, EMError * _Nullable error))aCompletionBlock;
1124 
1150 - (void)voiceMessageToText:(EMChatMessage * _Nonnull)aMessage
1151  completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
1152 
1176 - (void)voiceFileToText:(NSString * _Nonnull)aFilePath
1177  voiceParam:(EMVoiceParam * _Nullable)aVoiceParam
1178  completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
1179 
1192 - (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<EMTranslateLanguage*>* _Nullable languages,EMError* _Nullable error))aCompletionBlock;
1193 
1230 - (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1231  timestamp:(long long)aTimestamp
1232  count:(int)aCount
1233  fromUser:(NSString* _Nullable)aUsername
1234  searchDirection:(EMMessageSearchDirection)aDirection;
1235 
1266 - (void)loadMessagesWithType:(EMMessageBodyType)aType
1267  timestamp:(long long)aTimestamp
1268  count:(int)aCount
1269  fromUser:(NSString*)aUsername
1270  searchDirection:(EMMessageSearchDirection)aDirection
1271  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1272 
1273 
1304 - (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1305  timestamp:(long long)aTimestamp
1306  count:(int)aCount
1307  fromUser:(NSString* _Nullable)aUsername
1308  searchDirection:(EMMessageSearchDirection)aDirection
1309  completion:(void (^_Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1310 
1347 - (NSArray<EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1348  timestamp:(long long)aTimestamp
1349  count:(int)aCount
1350  fromUser:(NSString*)aSender
1351  searchDirection:(EMMessageSearchDirection)aDirection;
1352 
1382 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1383  timestamp:(long long)aTimestamp
1384  count:(int)aCount
1385  fromUser:(NSString*)aSender
1386  searchDirection:(EMMessageSearchDirection)aDirection
1387  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1388 
1420 - (void)loadMessagesWithKeyword:(NSString*)aKeywords
1421  timestamp:(long long)aTimestamp
1422  count:(int)aCount
1423  fromUser:(NSString*)aSender
1424  searchDirection:(EMMessageSearchDirection)aDirection
1425  scope:(EMMessageSearchScope)aScope
1426  completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1427 
1452 - (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1453  timestamp:(long long)aTimestamp
1454  fromUser:(NSString*_Nullable )aSender
1455  searchDirection:(EMMessageSearchDirection)aDirection
1456  scope:(EMMessageSearchScope)aScope
1457  completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, EMError * _Nullable aError))aCompletionBlock;
1458 
1459 NS_ASSUME_NONNULL_BEGIN
1475 - (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1476 
1492 - (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1493 
1511 - (void)getReactionList:(NSArray <NSString *>*)messageIds
1512  groupId:(nullable NSString *)groupId
1513  chatType:(EMChatType)chatType
1514  completion:(void (^)(NSDictionary <NSString *, NSArray<EMMessageReaction *> *> *, EMError * _Nullable))completion;
1515 
1535 - (void)getReactionDetail:(NSString *)messageId
1536  reaction:(NSString *)reaction
1537  cursor:(nullable NSString *)cursor
1538  pageSize:(uint64_t)pageSize
1539  completion:(void (^)(EMMessageReaction *, NSString * _Nullable cursor, EMError * _Nullable))completion;
1540 
1571 - (void)fetchMessagesFromServerBy:(NSString* )conversationId
1572  conversationType:(EMConversationType)type
1573  cursor:(NSString* _Nullable)cursor
1574  pageSize:(NSUInteger)pageSize
1575  option:(EMFetchServerMessagesOption* _Nullable)option
1576  completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*>* _Nullable result, EMError* _Nullable aError))aCompletionBlock;
1577 
1598 - (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1599 
1621 - (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1622 
1639 - (void)getConversationsFromServerWithCursor:(NSString * _Nullable)cursor filter:(EMConversationFilter* _Nonnull)filter completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
1640 
1663 - (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
1664 
1678 - (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1693 - (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1694 
1708 - (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<EMChatMessage*>* _Nullable messages,EMError * _Nullable aError))aCompletionBlock;
1709 
1722 
1734 - (void)getMessageCountWithCompletion:(void (^)(NSInteger count, EMError * _Nullable aError))completion;
1735 
1749 - (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1750  withConversationId:(NSString * _Nonnull)aConversationId
1751  completion:(void (^ _Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1752 
1753 NS_ASSUME_NONNULL_END
1754 
1755 @end
EMError * markAllConversationsAsRead()
Definition: EMConversationFilter.h:21
Definition: EMChatManagerDelegate.h:31
Definition: EMConversation.h:114
Definition: EMError.h:26
Definition: EMMessageReaction.h:20
Definition: EMMessageBody.h:45
Definition: EMChatMessage.h:154
Definition: EMTranslateLanguage.h:19
void cleanConversationsMemoryCache()
Definition: EMGroupMessageAck.h:20
Definition: EMFetchServerMessagesOption.h:22
Definition: EMCursorResult.h:27
Definition: EMVoiceParam.h:38
Definition: IEMChatManager.h:66
NSArray< EMConversation * > *_Nullable getAllConversations()