From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseMessageViewController.h | 519 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 519 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseMessageViewController.h b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseMessageViewController.h new file mode 100755 index 0000000..42cdc83 --- /dev/null +++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseMessageViewController.h @@ -0,0 +1,519 @@ +/************************************************************ + * * Hyphenate CONFIDENTIAL + * __________________ + * Copyright (C) 2016 Hyphenate Inc. All rights reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Hyphenate Inc. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Hyphenate Inc. + */ + +#import <MobileCoreServices/MobileCoreServices.h> +#import <AVFoundation/AVFoundation.h> +#import <MediaPlayer/MediaPlayer.h> +#import "EaseRefreshTableViewController.h" + +#import "IMessageModel.h" +#import "EaseMessageModel.h" +#import "EaseBaseMessageCell.h" +#import "EaseMessageTimeCell.h" +#import "EaseChatToolbar.h" +#import "EaseLocationViewController.h" +#import "EMCDDeviceManager+Media.h" +#import "EMCDDeviceManager+ProximitySensor.h" +#import "UIViewController+HUD.h" +#import "EaseSDKHelper.h" + +@interface EaseAtTarget : NSObject +@property (nonatomic, copy) NSString *userId; +@property (nonatomic, copy) NSString *nickname; + +- (instancetype)initWithUserId:(NSString*)userId andNickname:(NSString*)nickname; +@end + +typedef void(^EaseSelectAtTargetCallback)(EaseAtTarget*); + +@class EaseMessageViewController; + +@protocol EaseMessageViewControllerDelegate <NSObject> + +@optional + +/*! + @method + @brief ���������������������cell + @discussion ������������messageModel���������������������������cell,������nil������������cell,���������������������������cell + @param tableView ���������������������tableView + @param messageModel ������������ + @result ���������������������cell + */ +- (UITableViewCell *)messageViewController:(UITableView *)tableView + cellForMessageModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������cell������ + @discussion ������������messageModel������,���������������������cell��������� + @param viewController ������������������ + @param messageModel ������������ + @param cellWidth ������������ + @result ���������������������cell + */ +- (CGFloat)messageViewController:(EaseMessageViewController *)viewController + heightForMessageModel:(id<IMessageModel>)messageModel + withCellWidth:(CGFloat)cellWidth; + +/*! + @method + @brief ������������������������������ + @discussion ���������������������������������������,��������������������������� + @param viewController ������������������ + @param messageModel ������������ + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + didReceiveHasReadAckForModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������ + @discussion ���������������������,��������������������������� + @param viewController ������������������ + @param messageModel ������������ + @result + */ +- (BOOL)messageViewController:(EaseMessageViewController *)viewController + didSelectMessageModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������������ + @discussion ������������������������������ + @param viewController ������������������ + @param messageModel ������������ + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + didSelectAvatarMessageModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������������������ + @discussion ���������������������������,��������������������������� + @param viewController ������������������ + @param messageModel ������������ + @param index ������������������������������ + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + didSelectMoreView:(EaseChatBarMoreView *)moreView + AtIndex:(NSInteger)index; + +/*! + @method + @brief ������������������������������������ + @discussion ������������������������������������������,������EaseRecordViewType,���������������������UI��������� + @param viewController ������������������ + @param recordView ������������ + @param type ������������������������ + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + didSelectRecordView:(UIView *)recordView + withEvenType:(EaseRecordViewType)type; + +/*! + @method + @brief ���������@��������� + @discussion ���������������@������������@��������� + @param selectedCallback ���������������@������������block + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + selectAtTarget:(EaseSelectAtTargetCallback)selectedCallback; + +@end + + +@protocol EaseMessageViewControllerDataSource <NSObject> + +@optional + +/*! + @method + @brief ������������������������������������������������������,������self + @discussion + @param viewController ������������������ + @param messageBodyType + @result + */ +- (id)messageViewController:(EaseMessageViewController *)viewController + progressDelegateForMessageBodyType:(EMMessageBodyType)messageBodyType; + +/*! + @method + @brief ��������������������� + @discussion + @param viewController ������������������ + @param progress + @param messageModel + @param messageBody + @result + */ +- (void)messageViewController:(EaseMessageViewController *)viewController + updateProgress:(float)progress + messageModel:(id<IMessageModel>)messageModel + messageBody:(EMMessageBody*)messageBody; + +/*! + @method + @brief ������������������������ + @discussion + @param viewController ������������������ + @param NSDate ������ + @result ������������������������ + */ +- (NSString *)messageViewController:(EaseMessageViewController *)viewController + stringForDate:(NSDate *)date; + +/*! + @method + @brief ���EMMessage���������������������<IMessageModel>��������������� + @discussion ���EMMessage���������������������<IMessageModel>���������������,������������������,��������������������������������� + @param viewController ������������������ + @param EMMessage ������������������������ + @result ������<IMessageModel>��������������� + */ +- (id<IMessageModel>)messageViewController:(EaseMessageViewController *)viewController + modelForMessage:(EMMessage *)message; + +/*! + @method + @brief ������������������ + @discussion ���������������������������������,���������NO + @param viewController ������������������ + @param indexPath ���������������������indexPath + @result + */ +- (BOOL)messageViewController:(EaseMessageViewController *)viewController + canLongPressRowAtIndexPath:(NSIndexPath *)indexPath; + +/*! + @method + @brief ������������������ + @discussion ���������������������������������,���������NO + @param viewController ������������������ + @param indexPath ���������������������indexPath + @result + */ +- (BOOL)messageViewController:(EaseMessageViewController *)viewController + didLongPressRowAtIndexPath:(NSIndexPath *)indexPath; + +/*! + @method + @brief ��������������������� + @discussion ������������������������������ + @param viewController ������������������ + @result + */ +- (BOOL)messageViewControllerShouldMarkMessagesAsRead:(EaseMessageViewController *)viewController; + +/*! + @method + @brief ������������������������ + @discussion + @param viewController ������������������ + @param message ������������������������message + @param read message������������ + @result + */ +- (BOOL)messageViewController:(EaseMessageViewController *)viewController +shouldSendHasReadAckForMessage:(EMMessage *)message + read:(BOOL)read; + +/*! + @method + @brief ��������������������������������� + @discussion + @param viewController ������������������ + @param message ������������������������message + @param messageModel ������������ + @result + */ +- (BOOL)isEmotionMessageFormessageViewController:(EaseMessageViewController *)viewController + messageModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������������������������ + @discussion + @param viewController ������������������ + @param message ������������������������message + @param messageModel ������������ + @result + */ +- (EaseEmotion*)emotionURLFormessageViewController:(EaseMessageViewController *)viewController + messageModel:(id<IMessageModel>)messageModel; + +/*! + @method + @brief ������������������ + @discussion + @param viewController ������������������ + @result + */ +- (NSArray*)emotionFormessageViewController:(EaseMessageViewController *)viewController; + +/*! + @method + @brief ��������������������������������������� + @discussion + @param viewController ������������������ + @param easeEmotion + @result + */ +- (NSDictionary*)emotionExtFormessageViewController:(EaseMessageViewController *)viewController + easeEmotion:(EaseEmotion*)easeEmotion; + +/*! + @method + @brief view������������ + @discussion + @param viewController ������������������ + @result + */ +- (void)messageViewControllerMarkAllMessagesAsRead:(EaseMessageViewController *)viewController; + +@end + +@interface EaseMessageViewController : EaseRefreshTableViewController<UINavigationControllerDelegate, UIImagePickerControllerDelegate, EMChatManagerDelegate, EMCDDeviceManagerDelegate, EMChatToolbarDelegate, EaseChatBarMoreViewDelegate, EMLocationViewDelegate,EMChatroomManagerDelegate, EaseMessageCellDelegate> + + +@property (weak, nonatomic) id<EaseMessageViewControllerDelegate> delegate; + +@property (weak, nonatomic) id<EaseMessageViewControllerDataSource> dataSource; + +/*! + @property + @brief ��������������������� + */ +@property (strong, nonatomic) EMConversation *conversation; + +/*! + @property + @brief ������������������ + */ +@property (nonatomic) NSTimeInterval messageTimeIntervalTag; + +/*! + @property + @brief ������conversation���������������������������������������������������������conversation + */ +@property (nonatomic) BOOL deleteConversationIfNull; //default YES; + +/*! + @property + @brief ��������������������������������������������������� + */ +@property (nonatomic) BOOL scrollToBottomWhenAppear; //default YES; + +/*! + @property + @brief ������������������������������ + */ +@property (nonatomic) BOOL isViewDidAppear; + +/*! + @property + @brief ���������������message��������� + */ +@property (nonatomic) NSInteger messageCountOfPage; //default 50 + +/*! + @property + @brief ������������cell��������� + */ +@property (nonatomic) CGFloat timeCellHeight; + +/*! + @property + @brief ���������EMMessage��������������������� + */ +@property (strong, nonatomic) NSMutableArray *messsagesSource; + +/*! + @property + @brief ������������������ + */ +@property (strong, nonatomic) UIView *chatToolbar; + +/*! + @property + @brief ������������������ + */ +@property(strong, nonatomic) EaseChatBarMoreView *chatBarMoreView; + +/*! + @property + @brief ������������������ + */ +@property(strong, nonatomic) EaseFaceView *faceView; + +/*! + @property + @brief ������������������ + */ +@property(strong, nonatomic) EaseRecordView *recordView; + +/*! + @property + @brief ������(������������,������) + */ +@property (strong, nonatomic) UIMenuController *menuController; + +/*! + @property + @brief ������������������������ + */ +@property (strong, nonatomic) NSIndexPath *menuIndexPath; + +/*! + @property + @brief ��������������� + */ +@property (strong, nonatomic) UIImagePickerController *imagePicker; + +/*! + @property + @brief ��������������������������� + */ +@property (nonatomic) BOOL isJoinedChatroom; + +/*! + @method + @brief ��������������������� + @discussion + @param conversationChatter ������������������������. ���������������, ���������������id + @param conversationType ������������ + @result + */ +- (instancetype)initWithConversationChatter:(NSString *)conversationChatter + conversationType:(EMConversationType)conversationType; + +/*! + @method + @brief ������������������ + @discussion + @result + */ +- (void)tableViewDidTriggerHeaderRefresh; + +/*! + @method + @brief ������������������ + @discussion + @param text ������������ + @result + */ +- (void)sendTextMessage:(NSString *)text; + +/*! + @method + @brief ������������������ + @discussion + @param text ������������ + @param ext ������������ + @result + */ +- (void)sendTextMessage:(NSString *)text withExt:(NSDictionary*)ext; + +/*! + @method + @brief ������������������ + @discussion + @param image ������������ + @result + */ +- (void)sendImageMessage:(UIImage *)image; + +/*! + @method + @brief ������������������ + @discussion + @param latitude ������ + @param longitude ������ + @param address ������ + @result + */ +- (void)sendLocationMessageLatitude:(double)latitude + longitude:(double)longitude + andAddress:(NSString *)address; + +/*! + @method + @brief ������������������ + @discussion + @param localPath ������������������ + @param duration ������ + @result + */ +- (void)sendVoiceMessageWithLocalPath:(NSString *)localPath + duration:(NSInteger)duration; + +/*! + @method + @brief ������������������ + @discussion + @param url ������url + @result + */ +- (void)sendVideoMessageWithURL:(NSURL *)url; + +/*! + @method + @brief ������������������ + @discussion + @param url ������url + @result + */ +- (void)sendFileMessageWith:(EMMessage *)message; + + +/*! + @method + @brief ������������ + @discussion + @param message ��������������� + @param progress ��������������������������������� + @result + */ +- (void)addMessageToDataSource:(EMMessage *)message + progress:(id)progress; + +/*! + @method + @brief ������������������������ + @discussion + @param showInView ������������������ + @param showInView ������ + @param messageType ������������ + @result + */ +- (void)showMenuViewController:(UIView *)showInView + andIndexPath:(NSIndexPath *)indexPath + messageType:(EMMessageBodyType)messageType; + +/*! + @method + @brief ��������������������������������������� + @discussion + @param message ������������ + @param read ������������������������ + @result + */ +- (BOOL)shouldSendHasReadAckForMessage:(EMMessage *)message + read:(BOOL)read; + +@end -- Gitblit v1.8.0