EaseConversationListViewController.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /************************************************************
  2. * * Hyphenate CONFIDENTIAL
  3. * __________________
  4. * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
  5. *
  6. * NOTICE: All information contained herein is, and remains
  7. * the property of Hyphenate Inc.
  8. * Dissemination of this information or reproduction of this material
  9. * is strictly forbidden unless prior written permission is obtained
  10. * from Hyphenate Inc.
  11. */
  12. #import "EaseRefreshTableViewController.h"
  13. #import "EaseConversationModel.h"
  14. #import "EaseConversationCell.h"
  15. //#if ENABLE_LITE == 1
  16. #import <HyphenateLite/HyphenateLite.h>
  17. //#else
  18. //#import <Hyphenate/Hyphenate.h>
  19. //#endif
  20. typedef NS_ENUM(int, DXDeleteConvesationType) {
  21. DXDeleteConvesationOnly,
  22. DXDeleteConvesationWithMessages,
  23. };
  24. @class EaseConversationListViewController;
  25. @protocol EaseConversationListViewControllerDelegate <NSObject>
  26. /*!
  27. @method
  28. @brief 获取点击会话列表的回调
  29. @discussion 获取点击会话列表的回调后,点击会话列表用户可以根据conversationModel自定义处理逻辑
  30. @param conversationListViewController 当前会话列表视图
  31. @param IConversationModel 会话模型
  32. @result
  33. */
  34. - (void)conversationListViewController:(EaseConversationListViewController *)conversationListViewController
  35. didSelectConversationModel:(id<IConversationModel>)conversationModel;
  36. @optional
  37. @end
  38. @protocol EaseConversationListViewControllerDataSource <NSObject>
  39. /*!
  40. @method
  41. @brief 构建实现协议IConversationModel的model
  42. @discussion 用户可以创建实现协议IConversationModel的自定义conversationModel对象,按照业务需要设置属性值
  43. @param conversationListViewController 当前会话列表视图
  44. @param conversation 会话对象
  45. @result 返回实现协议IConversationModel的model对象
  46. */
  47. - (id<IConversationModel>)conversationListViewController:(EaseConversationListViewController *)conversationListViewController
  48. modelForConversation:(EMConversation *)conversation;
  49. @optional
  50. /*!
  51. @method
  52. @brief 获取最后一条消息显示的内容
  53. @discussion 用户根据conversationModel实现,实现自定义会话中最后一条消息文案的显示内容
  54. @param conversationListViewController 当前会话列表视图
  55. @param IConversationModel 会话模型
  56. @result 返回用户最后一条消息显示的内容
  57. */
  58. - (NSAttributedString *)conversationListViewController:(EaseConversationListViewController *)conversationListViewController
  59. latestMessageTitleForConversationModel:(id<IConversationModel>)conversationModel;
  60. /*!
  61. @method
  62. @brief 获取最后一条消息显示的时间
  63. @discussion 用户可以根据conversationModel,自定义实现会话列表中时间文案的显示内容
  64. @param conversationListViewController 当前会话列表视图
  65. @param IConversationModel 会话模型
  66. @result 返回用户最后一条消息时间的显示文案
  67. */
  68. - (NSString *)conversationListViewController:(EaseConversationListViewController *)conversationListViewController
  69. latestMessageTimeForConversationModel:(id<IConversationModel>)conversationModel;
  70. @end
  71. @interface EaseConversationListViewController : EaseRefreshTableViewController <EMChatManagerDelegate,EMGroupManagerDelegate>
  72. @property (weak, nonatomic) id<EaseConversationListViewControllerDelegate> delegate;
  73. @property (weak, nonatomic) id<EaseConversationListViewControllerDataSource> dataSource;
  74. /*!
  75. @method
  76. @brief 下拉加载更多
  77. @discussion
  78. @result
  79. */
  80. - (void)tableViewDidTriggerHeaderRefresh;
  81. /*!
  82. @method
  83. @brief 内存中刷新页面
  84. @discussion
  85. @result
  86. */
  87. - (void)refreshAndSortView;
  88. @end