AgoraChatSDK 1.14.0
IAgoraChatManager.h
1
9#import <Foundation/Foundation.h>
10
11#import "AgoraChatCommonDefs.h"
12#import "AgoraChatManagerDelegate.h"
13#import "AgoraChatConversation.h"
14
15#import "AgoraChatMessage.h"
16#import "AgoraChatTextMessageBody.h"
17#import "AgoraChatLocationMessageBody.h"
18#import "AgoraChatCmdMessageBody.h"
19#import "AgoraChatFileMessageBody.h"
20#import "AgoraChatImageMessageBody.h"
21#import "AgoraChatVoiceMessageBody.h"
22#import "AgoraChatVideoMessageBody.h"
23#import "AgoraChatCustomMessageBody.h"
24#import "AgoraChatCombineMessageBody.h"
25#import "AgoraChatCursorResult.h"
26
27#import "AgoraChatGroupMessageAck.h"
28#import "AgoraChatTranslateLanguage.h"
29#import "AgoraChatFetchServerMessagesOption.h"
30#import "AgoraChatConversationFilter.h"
31
36typedef NS_ENUM(NSUInteger, AgoraChatMessageFetchHistoryDirection) {
37 AgoraChatMessageFetchHistoryDirectionUp = 0,
38 AgoraChatMessageFetchHistoryDirectionDown
40};
41
42
43@class AgoraChatError;
44
51@protocol IAgoraChatManager <NSObject>
52
53@required
54
55#pragma mark - Delegate
56
64- (void)addDelegate:(id<AgoraChatManagerDelegate> _Nullable)aDelegate
65 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
66
73- (void)removeDelegate:(id<AgoraChatManagerDelegate> _Nonnull)aDelegate;
74
75#pragma mark - Conversation
76
85- (NSArray<AgoraChatConversation *> * _Nullable)getAllConversations;
86
100- (NSArray<AgoraChatConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(AgoraChatConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
101
102
108
120- (NSArray<AgoraChatConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
121
128- (void)getConversationsFromServer:(void (^_Nullable)(NSArray<AgoraChatConversation *> * _Nullable aConversations, AgoraChatError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IAgoraChatManager getConversationsFromServerWithCursor:pageSize:completion");
129
138- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
139 pageSize:(NSUInteger)pageSize
140 completion:(void (^_Nullable)(NSArray<AgoraChatConversation *> * _Nullable aConversations, AgoraChatError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IAgoraChatManager getConversationsFromServerWithCursor:pageSize:completion");
153- (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull void (^)(AgoraChatCursorResult<AgoraChatConversation *> * _Nullable result, AgoraChatError * _Nullable error))completionBlock;
154
165- (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull void (^)(AgoraChatCursorResult<AgoraChatConversation *> * _Nullable result, AgoraChatError * _Nullable error))completionBlock;
166
177- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(AgoraChatError * _Nullable error))completionBlock;
178
187- (AgoraChatConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
188
201- (AgoraChatConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
202 type:(AgoraChatConversationType)aType
203 createIfNotExist:(BOOL)aIfCreate;
204
219- (AgoraChatConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
220 type:(AgoraChatConversationType)aType
221 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
222
234- (void)deleteConversation:(NSString * _Nonnull)aConversationId
235 isDeleteMessages:(BOOL)aIsDeleteMessages
236 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, AgoraChatError *_Nullable aError))aCompletionBlock;
237
250 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
251 conversationType:(AgoraChatConversationType)aConversationType
252 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
253 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, AgoraChatError * _Nullable aError))aCompletionBlock;
254
266- (void)deleteConversations:(NSArray<AgoraChatConversation *> * _Nullable)aConversations
267 isDeleteMessages:(BOOL)aIsDeleteMessages
268 completion:(void (^_Nullable)(AgoraChatError * _Nullable aError))aCompletionBlock;
269
278- (void)importConversations:(NSArray<AgoraChatConversation *> * _Nullable)aConversations
279 completion:(void (^ _Nullable)(AgoraChatError * _Nullable aError))aCompletionBlock;
280
281#pragma mark - Message
282
290- (AgoraChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
291
302- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
303
312- (void)importMessages:(NSArray<AgoraChatMessage *> * _Nonnull)aMessages
313 completion:(void (^_Nullable)(AgoraChatError *_Nullable aError))aCompletionBlock;
314
327- (void)updateMessage:(AgoraChatMessage *_Nonnull)aMessage
328 completion:(void (^_Nullable)(AgoraChatMessage * _Nullable aMessage, AgoraChatError * _Nullable aError))aCompletionBlock;
340- (void)modifyMessage:(NSString *_Nonnull)messageId body:(AgoraChatMessageBody *_Nonnull)body completion:(void (^_Nonnull)(AgoraChatError * _Nullable error,AgoraChatMessage *_Nullable message))completionBlock;
341
359- (void)modifyMessage:(NSString *_Nonnull)messageId
360 body:(AgoraChatMessageBody *_Nullable)body
361 ext:(NSDictionary* _Nullable)ext
362 completion:(void (^_Nonnull)(AgoraChatError * _Nullable error,AgoraChatMessage *_Nullable message))completionBlock;
363
375- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
376 toUser:(NSString * _Nonnull)aUsername
377 completion:(void (^_Nullable)(AgoraChatError *_Nullable aError))aCompletionBlock;
378
379
392- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
393 toGroup:(NSString * _Nonnull)aGroupId
394 content:(NSString * _Nullable)aContent
395 completion:(void (^_Nullable)(AgoraChatError *_Nullable aError))aCompletionBlock;
396
413- (void)ackConversationRead:(NSString * _Nonnull)conversationId
414 completion:(void (^_Nullable)(AgoraChatError *_Nullable aError))aCompletionBlock;
415
431- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
432 completion:(void (^_Nullable)(AgoraChatError *_Nullable aError))aCompletionBlock;
433
445- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(AgoraChatError * _Nullable))aCompletionBlock;
456- (void)sendMessage:(AgoraChatMessage *_Nonnull)aMessage
457 progress:(void (^_Nullable)(int progress))aProgressBlock
458 completion:(void (^_Nullable)(AgoraChatMessage *_Nullable message, AgoraChatError *_Nullable error))aCompletionBlock;
459
468- (void)resendMessage:(AgoraChatMessage *_Nonnull)aMessage
469 progress:(void (^_Nullable)(int progress))aProgressBlock
470 completion:(void (^_Nullable)(AgoraChatMessage *_Nullable message, AgoraChatError *_Nullable error))aCompletionBlock;
471
482- (void)downloadMessageThumbnail:(AgoraChatMessage *_Nonnull)aMessage
483 progress:(void (^_Nullable)(int progress))aProgressBlock
484 completion:(void (^_Nullable)(AgoraChatMessage *_Nullable message, AgoraChatError *_Nullable error))aCompletionBlock;
485
498- (void)downloadMessageAttachment:(AgoraChatMessage *_Nonnull)aMessage
499 progress:(void (^_Nullable)(int progress))aProgressBlock
500 completion:(void (^_Nullable)(AgoraChatMessage *_Nullable message, AgoraChatError *_Nullable error))aCompletionBlock;
501
511- (void)downloadAndParseCombineMessage:(AgoraChatMessage* _Nonnull)aMessage
512 completion:(void (^_Nullable)(NSArray<AgoraChatMessage *>*_Nullable messages, AgoraChatError *_Nullable error))aCompletionBlock;
513
527- (AgoraChatCursorResult<AgoraChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
528 conversationType:(AgoraChatConversationType)aConversationType
529 startMessageId:(NSString *_Nullable)aStartMessageId
530 fetchDirection:(AgoraChatMessageFetchHistoryDirection)direction
531 pageSize:(int)aPageSize
532 error:(AgoraChatError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
545- (AgoraChatCursorResult<AgoraChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
546 conversationType:(AgoraChatConversationType)aConversationType
547 startMessageId:(NSString *_Nullable)aStartMessageId
548 pageSize:(int)aPageSize
549 error:(AgoraChatError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
550
551
564- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
565 conversationType:(AgoraChatConversationType)aConversationType
566 startMessageId:(NSString *_Nullable)aStartMessageId
567 pageSize:(int)aPageSize
568 completion:(void (^_Nullable)(AgoraChatCursorResult<AgoraChatMessage*> *_Nullable aResult, AgoraChatError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
582- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
583 conversationType:(AgoraChatConversationType)aConversationType
584 startMessageId:(NSString *_Nullable)aStartMessageId
585 fetchDirection:(AgoraChatMessageFetchHistoryDirection)direction
586 pageSize:(int)aPageSize
587 completion:(void (^_Nullable)(AgoraChatCursorResult<AgoraChatMessage*> *_Nullable aResult, AgoraChatError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
588
589
590
591
606- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
607 groupId:(NSString *_Nonnull)aGroupId
608 startGroupAckId:(NSString *_Nonnull)aGroupAckId
609 pageSize:(int)aPageSize
610 completion:(void (^_Nullable)(AgoraChatCursorResult<AgoraChatGroupMessageAck *> *_Nullable aResult, AgoraChatError *_Nullable error, int totalCount))aCompletionBlock;
611
623- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
624 tag:(NSString *_Nonnull)aTag
625 reason:(NSString *_Nonnull)aReason
626 completion:(void(^_Nullable)(AgoraChatError* _Nullable error))aCompletion;
627
636- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
637 completion:(void(^)(AgoraChatError*error))aCompletion;
638
639
640
650- (void)removeMessagesFromServerWithConversation:(AgoraChatConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(AgoraChatError * _Nullable aError))aCompletionBlock;
660- (void)removeMessagesFromServerWithConversation:(AgoraChatConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(AgoraChatError * _Nullable aError))aCompletionBlock;
661
662
671- (void)translateMessage:(AgoraChatMessage * _Nonnull)aMessage
672 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
673 completion:(void (^_Nullable)(AgoraChatMessage * _Nullable message, AgoraChatError * _Nullable error))aCompletionBlock;
674
682- (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<AgoraChatTranslateLanguage*>* _Nullable languages,AgoraChatError* _Nullable error))aCompletionBlock;
683
703- (NSArray<AgoraChatMessage *> * _Nullable)loadMessagesWithType:(AgoraChatMessageBodyType)aType
704 timestamp:(long long)aTimestamp
705 count:(int)aCount
706 fromUser:(NSString* _Nullable)aUsername
707 searchDirection:(AgoraChatMessageSearchDirection)aDirection;
708
725- (void)loadMessagesWithType:(AgoraChatMessageBodyType)aType
726 timestamp:(long long)aTimestamp
727 count:(int)aCount
728 fromUser:(NSString*)aUsername
729 searchDirection:(AgoraChatMessageSearchDirection)aDirection
730 completion:(void (^)(NSArray<AgoraChatMessage *> *aMessages, AgoraChatError *aError))aCompletionBlock;
731
732
749- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
750 timestamp:(long long)aTimestamp
751 count:(int)aCount
752 fromUser:(NSString* _Nullable)aUsername
753 searchDirection:(AgoraChatMessageSearchDirection)aDirection
754 completion:(void (^_Nonnull)(NSArray<AgoraChatMessage *> * _Nullable aMessages, AgoraChatError * _Nullable aError))aCompletionBlock;
755
775- (NSArray<AgoraChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
776 timestamp:(long long)aTimestamp
777 count:(int)aCount
778 fromUser:(NSString*)aSender
779 searchDirection:(AgoraChatMessageSearchDirection)aDirection;
780
796- (void)loadMessagesWithKeyword:(NSString*)aKeywords
797 timestamp:(long long)aTimestamp
798 count:(int)aCount
799 fromUser:(NSString*)aSender
800 searchDirection:(AgoraChatMessageSearchDirection)aDirection
801 completion:(void (^)(NSArray<AgoraChatMessage *> *aMessages, AgoraChatError *aError))aCompletionBlock;
802
819- (void)loadMessagesWithKeyword:(NSString*)aKeywords
820 timestamp:(long long)aTimestamp
821 count:(int)aCount
822 fromUser:(NSString*)aSender
823 searchDirection:(AgoraChatMessageSearchDirection)aDirection
824 scope:(AgoraChatMessageSearchScope)aScope
825 completion:(void (^)(NSArray<AgoraChatMessage *> *aMessages, AgoraChatError *aError))aCompletionBlock;
826
840- (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
841 timestamp:(long long)aTimestamp
842 fromUser:(NSString*_Nullable )aSender
843 searchDirection:(AgoraChatMessageSearchDirection)aDirection
844 scope:(AgoraChatMessageSearchScope)aScope
845 completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, AgoraChatError * _Nullable aError))aCompletionBlock;
846
847NS_ASSUME_NONNULL_BEGIN
856- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(AgoraChatError * _Nullable))completion;
857
866- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(AgoraChatError * _Nullable))completion;
867
877- (void)getReactionList:(NSArray <NSString *>*)messageIds
878 groupId:(nullable NSString *)groupId
879 chatType:(AgoraChatType)chatType
880 completion:(void (^)(NSDictionary <NSString *, NSArray<AgoraChatMessageReaction *> *> *, AgoraChatError * _Nullable))completion;
881
892- (void)getReactionDetail:(NSString *)messageId
893 reaction:(NSString *)reaction
894 cursor:(nullable NSString *)cursor
895 pageSize:(uint64_t)pageSize
896 completion:(void (^)(AgoraChatMessageReaction *, NSString * _Nullable cursor, AgoraChatError * _Nullable))completion;
897
914- (void)fetchMessagesFromServerBy:(NSString* )conversationId
915 conversationType:(AgoraChatConversationType)type
916 cursor:(NSString* _Nullable)cursor
917 pageSize:(NSUInteger)pageSize
918 option:(AgoraChatFetchServerMessagesOption* _Nullable)option
919 completion:(void (^_Nullable)(AgoraChatCursorResult<AgoraChatMessage*>* _Nullable result, AgoraChatError* _Nullable aError))aCompletionBlock;
920
932- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(AgoraChatMarkType)mark completion:(void (^_Nullable)(AgoraChatError* _Nullable aError))completion;
933
946- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(AgoraChatMarkType)mark completion:(void (^_Nullable)(AgoraChatError* _Nullable aError))completion;
947
957- (void)getConversationsFromServerWithCursor:(NSString * _Nullable)cursor filter:(AgoraChatConversationFilter* _Nonnull)filter completion:(nonnull void (^)(AgoraChatCursorResult<AgoraChatConversation *> * _Nullable result, AgoraChatError * _Nullable error))completionBlock;
958
971- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(AgoraChatError * _Nullable aError))aCompletionBlock;
972
980- (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(AgoraChatMessage* _Nullable message,AgoraChatError * _Nullable aError))aCompletionBlock;
989- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(AgoraChatMessage* _Nullable message,AgoraChatError * _Nullable aError))aCompletionBlock;
990
998- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<AgoraChatMessage*>* _Nullable messages,AgoraChatError * _Nullable aError))aCompletionBlock;
999
1007
1014- (void)getMessageCountWithCompletion:(void (^)(NSInteger count, AgoraChatError * _Nullable aError))completion;
1015
1023- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1024 withConversationId:(NSString * _Nonnull)aConversationId
1025 completion:(void (^ _Nonnull)(NSArray<AgoraChatMessage *> * _Nullable aMessages, AgoraChatError * _Nullable aError))aCompletionBlock;
1026
1027NS_ASSUME_NONNULL_END
1028
1029@end
Definition: AgoraChatConversationFilter.h:19
Definition: AgoraChatConversation.h:87
Definition: AgoraChatCursorResult.h:16
Definition: AgoraChatError.h:18
Definition: AgoraChatFetchServerMessagesOption.h:20
Definition: AgoraChatGroupMessageAck.h:18
Definition: AgoraChatMessageBody.h:33
Definition: AgoraChatMessage.h:87
Definition: AgoraChatMessageReaction.h:18
Definition: AgoraChatTranslateLanguage.h:17
Definition: AgoraChatManagerDelegate.h:22
Definition: IAgoraChatManager.h:51
void cleanConversationsMemoryCache()
AgoraChatError * markAllConversationsAsRead()
NSArray< AgoraChatConversation * > *_Nullable getAllConversations()