From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 12 Jul 2018 13:44:34 +0800
Subject: [PATCH] bug修复和功能优化

---
 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