9#import <Foundation/Foundation.h>
11#import "AgoraChatCommonDefs.h"
12#import "AgoraChatManagerDelegate.h"
13#import "AgoraChatConversation.h"
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"
27#import "AgoraChatGroupMessageAck.h"
28#import "AgoraChatTranslateLanguage.h"
29#import "AgoraChatFetchServerMessagesOption.h"
30#import "AgoraChatConversationFilter.h"
36typedef NS_ENUM(NSUInteger, AgoraChatMessageFetchHistoryDirection) {
37 AgoraChatMessageFetchHistoryDirectionUp = 0,
38 AgoraChatMessageFetchHistoryDirectionDown
55#pragma mark - Delegate
65 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
75#pragma mark - Conversation
100- (NSArray<
AgoraChatConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(
AgoraChatConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
128- (void)getConversationsFromServer:(
void (^_Nullable)(NSArray<
AgoraChatConversation *> * _Nullable aConversations,
AgoraChatError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -
IAgoraChatManager getConversationsFromServerWithCursor:pageSize:completion");
138- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
139 pageSize:(NSUInteger)pageSize
177- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable
void(^)(
AgoraChatError * _Nullable error))completionBlock;
202 type:(AgoraChatConversationType)aType
203 createIfNotExist:(BOOL)aIfCreate;
220 type:(AgoraChatConversationType)aType
221 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
234- (void)deleteConversation:(NSString * _Nonnull)aConversationId
235 isDeleteMessages:(BOOL)aIsDeleteMessages
236 completion:(
void (^_Nullable)(NSString * _Nullable aConversationId,
AgoraChatError *_Nullable aError))aCompletionBlock;
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;
267 isDeleteMessages:(BOOL)aIsDeleteMessages
268 completion:(
void (^_Nullable)(
AgoraChatError * _Nullable aError))aCompletionBlock;
279 completion:(
void (^ _Nullable)(
AgoraChatError * _Nullable aError))aCompletionBlock;
281#pragma mark - Message
290- (
AgoraChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
302- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
313 completion:(
void (^_Nullable)(
AgoraChatError *_Nullable aError))aCompletionBlock;
359- (void)modifyMessage:(NSString *_Nonnull)messageId
361 ext:(NSDictionary* _Nullable)ext
375- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
376 toUser:(NSString * _Nonnull)aUsername
377 completion:(
void (^_Nullable)(
AgoraChatError *_Nullable aError))aCompletionBlock;
392- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
393 toGroup:(NSString * _Nonnull)aGroupId
394 content:(NSString * _Nullable)aContent
395 completion:(
void (^_Nullable)(
AgoraChatError *_Nullable aError))aCompletionBlock;
413- (void)ackConversationRead:(NSString * _Nonnull)conversationId
414 completion:(
void (^_Nullable)(
AgoraChatError *_Nullable aError))aCompletionBlock;
431- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
432 completion:(
void (^_Nullable)(
AgoraChatError *_Nullable aError))aCompletionBlock;
445- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(
void (^_Nonnull)(
AgoraChatError * _Nullable))aCompletionBlock;
457 progress:(
void (^_Nullable)(
int progress))aProgressBlock
469 progress:(
void (^_Nullable)(
int progress))aProgressBlock
483 progress:(
void (^_Nullable)(
int progress))aProgressBlock
499 progress:(
void (^_Nullable)(
int progress))aProgressBlock
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");
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");
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");
606- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
607 groupId:(NSString *_Nonnull)aGroupId
608 startGroupAckId:(NSString *_Nonnull)aGroupAckId
609 pageSize:(
int)aPageSize
623- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
624 tag:(NSString *_Nonnull)aTag
625 reason:(NSString *_Nonnull)aReason
626 completion:(
void(^_Nullable)(
AgoraChatError* _Nullable error))aCompletion;
636- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
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;
672 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
703- (NSArray<
AgoraChatMessage *> * _Nullable)loadMessagesWithType:(AgoraChatMessageBodyType)aType
704 timestamp:(
long long)aTimestamp
706 fromUser:(NSString* _Nullable)aUsername
707 searchDirection:(AgoraChatMessageSearchDirection)aDirection;
725- (void)loadMessagesWithType:(AgoraChatMessageBodyType)aType
726 timestamp:(
long long)aTimestamp
728 fromUser:(NSString*)aUsername
729 searchDirection:(AgoraChatMessageSearchDirection)aDirection
749- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
750 timestamp:(
long long)aTimestamp
752 fromUser:(NSString* _Nullable)aUsername
753 searchDirection:(AgoraChatMessageSearchDirection)aDirection
775- (NSArray<
AgoraChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
776 timestamp:(
long long)aTimestamp
778 fromUser:(NSString*)aSender
779 searchDirection:(AgoraChatMessageSearchDirection)aDirection;
796- (void)loadMessagesWithKeyword:(NSString*)aKeywords
797 timestamp:(
long long)aTimestamp
799 fromUser:(NSString*)aSender
800 searchDirection:(AgoraChatMessageSearchDirection)aDirection
819- (void)loadMessagesWithKeyword:(NSString*)aKeywords
820 timestamp:(
long long)aTimestamp
822 fromUser:(NSString*)aSender
823 searchDirection:(AgoraChatMessageSearchDirection)aDirection
824 scope:(AgoraChatMessageSearchScope)aScope
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;
847NS_ASSUME_NONNULL_BEGIN
856- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable
void(^)(
AgoraChatError * _Nullable))completion;
866- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable
void(^)(
AgoraChatError * _Nullable))completion;
877- (void)getReactionList:(NSArray <NSString *>*)messageIds
878 groupId:(nullable NSString *)groupId
879 chatType:(AgoraChatType)chatType
892- (void)getReactionDetail:(NSString *)messageId
893 reaction:(NSString *)reaction
894 cursor:(nullable NSString *)cursor
895 pageSize:(uint64_t)pageSize
914- (void)fetchMessagesFromServerBy:(NSString* )conversationId
915 conversationType:(AgoraChatConversationType)type
916 cursor:(NSString* _Nullable)cursor
917 pageSize:(NSUInteger)pageSize
932- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(AgoraChatMarkType)mark completion:(
void (^_Nullable)(
AgoraChatError* _Nullable aError))completion;
946- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(AgoraChatMarkType)mark completion:(
void (^_Nullable)(
AgoraChatError* _Nullable aError))completion;
971- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(
void (^_Nullable)(
AgoraChatError * _Nullable aError))aCompletionBlock;
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;
998- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(
void (^_Nullable)(NSArray<
AgoraChatMessage*>* _Nullable messages,
AgoraChatError * _Nullable aError))aCompletionBlock;
1014- (void)getMessageCountWithCompletion:(
void (^)(NSInteger count,
AgoraChatError * _Nullable aError))completion;
1023- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1024 withConversationId:(NSString * _Nonnull)aConversationId
1027NS_ASSUME_NONNULL_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()