Antidote/local_pod_repo/objcTox/Classes/Public/Manager/Submanagers/OCTSubmanagerChats.h

73 lines
2.4 KiB
Objective-C

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#import <Foundation/Foundation.h>
#import "OCTToxConstants.h"
@class OCTChat;
@class OCTFriend;
@class OCTMessageAbstract;
@protocol OCTSubmanagerChats <NSObject>
/**
* Searches for a chat with specific friend. If chat is not found creates one and returns it.
*
* @param friend Friend to get/create chat with.
*
* @return Chat with specific friend.
*/
- (OCTChat *)getOrCreateChatWithFriend:(OCTFriend *)friend;
/**
* Removes given messages.
*
* @param messages Array with messages to remove.
*
* @warning Destructive operation! There is no way to restore messages after removal.
*/
- (void)removeMessages:(NSArray<OCTMessageAbstract *> *)messages;
/**
* Removes all messages in chat and chat itself.
*
* @param chat Chat to remove in.
* @param removeChat Whether remove chat or not
*
* @warning Destructive operation! There is no way to restore chat or messages after removal.
*/
- (void)removeAllMessagesInChat:(OCTChat *)chat removeChat:(BOOL)removeChat;
/**
* Send text message to specific chat
*
* @param chat Chat send message to.
* @param text Text to send.
* @param type Type of message to send.
* @param successBlock Block called when message was successfully send.
* @param message Message that was send.
* @param failureBlock Block called when submanager failed to send message.
* @param error Error that occurred. See OCTToxErrorFriendSendMessage for all error codes.
*/
- (void)sendMessageToChat:(OCTChat *)chat
text:(NSString *)text
type:(OCTToxMessageType)type
successBlock:(void (^)(OCTMessageAbstract *message))userSuccessBlock
failureBlock:(void (^)(NSError *error))userFailureBlock;
/**
* Set our typing status for a chat. You are responsible for turning it on or off.
*
* @param isTyping Status showing whether user is typing or not.
* @param chat Chat to set typing status.
* @param error If an error occurs, this pointer is set to an actual error object containing the error information.
* See OCTToxErrorSetTyping for all error codes.
*
* @return YES on success, NO on failure.
*/
- (BOOL)setIsTyping:(BOOL)isTyping inChat:(OCTChat *)chat error:(NSError **)error;
@end