TUIChatConfig.m 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //
  2. // TUIChatConfig.m
  3. // TUIChat
  4. //
  5. // Created by wyl on 2022/6/10.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TUIChatConfig.h"
  9. #import <TIMCommon/TIMDefine.h>
  10. #import <TIMCommon/TIMCommonMediator.h>
  11. #import <TIMCommon/TUIEmojiMeditorProtocol.h>
  12. #import <TIMCommon/TIMDefine.h>
  13. #import <TUICore/TUICore.h>
  14. @implementation TUIChatConfig
  15. - (id)init {
  16. self = [super init];
  17. if (self) {
  18. self.msgNeedReadReceipt = NO;
  19. self.enableVideoCall = YES;
  20. self.enableAudioCall = YES;
  21. self.enableWelcomeCustomMessage = YES;
  22. self.showFileButton = YES;
  23. self.showAlbumButton = YES;
  24. self.showTakePhotoButton = YES;
  25. self.showRecordVideoButton = YES;
  26. self.showGroupNoteButton = YES;
  27. self.showPollButton = YES;
  28. self.showRoomButton = YES;
  29. self.enablePopMenuEmojiReactAction = YES;
  30. self.enablePopMenuReplyAction = YES;
  31. self.enablePopMenuReferenceAction = YES;
  32. self.enablePopMenuPinAction = YES;
  33. self.enablePopMenuRecallAction = YES;
  34. self.enablePopMenuTranslateAction = YES;
  35. self.enablePopMenuConvertAction = YES;
  36. self.enablePopMenuForwardAction = YES;
  37. self.enablePopMenuSelectAction = YES;
  38. self.enablePopMenuCopyAction = YES;
  39. self.enablePopMenuDeleteAction = YES;
  40. self.enablePopMenuInfoAction = YES;
  41. self.enablePopMenuAudioPlaybackAction = YES;
  42. self.enableMainPageInputBar = YES;
  43. self.enableTypingStatus = YES;
  44. self.enableFloatWindowForCall = YES;
  45. self.enableMultiDeviceForCall = NO;
  46. self.enableIncomingBanner = YES;
  47. self.enableVirtualBackgroundForCall = NO;
  48. self.timeIntervalForMessageRecall = 120;
  49. self.maxAudioRecordDuration = 60;
  50. self.maxVideoRecordDuration = 15;
  51. }
  52. return self;
  53. }
  54. + (TUIChatConfig *)defaultConfig {
  55. static dispatch_once_t onceToken;
  56. static TUIChatConfig *config;
  57. dispatch_once(&onceToken, ^{
  58. config = [[TUIChatConfig alloc] init];
  59. });
  60. return config;
  61. }
  62. - (NSArray<TUIFaceGroup *> *)chatContextEmojiDetailGroups {
  63. id<TUIEmojiMeditorProtocol> service = [[TIMCommonMediator share] getObject:@protocol(TUIEmojiMeditorProtocol)];
  64. return [service getChatContextEmojiDetailGroups];
  65. }
  66. - (TUIChatEventConfig *)eventConfig {
  67. if (!_eventConfig) {
  68. _eventConfig = [[TUIChatEventConfig alloc] init];
  69. }
  70. return _eventConfig;
  71. }
  72. @end
  73. @implementation TUIChatEventConfig
  74. @end
  75. @implementation TUIChatConfig (CustomMessageRegiser)
  76. - (void)registerCustomMessage:(NSString *)businessID
  77. messageCellClassName:(NSString *)cellName
  78. messageCellDataClassName:(NSString *)cellDataName {
  79. [self registerCustomMessage:businessID
  80. messageCellClassName:cellName
  81. messageCellDataClassName:cellDataName
  82. styleType:TUIChatRegisterCustomMessageStyleTypeClassic];
  83. }
  84. - (void)registerCustomMessage:(NSString *)businessID
  85. messageCellClassName:(NSString *)cellName
  86. messageCellDataClassName:(NSString *)cellDataName
  87. styleType:(TUIChatRegisterCustomMessageStyleType)styleType {
  88. if (businessID.length <0 || cellName.length <0 ||cellDataName.length <0) {
  89. NSLog(@"registerCustomMessage Error, check info %s", __func__);
  90. return;
  91. }
  92. NSString * serviceName = @"";
  93. if (styleType == TUIChatRegisterCustomMessageStyleTypeClassic) {
  94. serviceName = TUICore_TUIChatService;
  95. }
  96. else {
  97. serviceName = TUICore_TUIChatService_Minimalist;
  98. }
  99. [TUICore callService:serviceName
  100. method:TUICore_TUIChatService_AppendCustomMessageMethod
  101. param:@{BussinessID : businessID,
  102. TMessageCell_Name : cellName,
  103. TMessageCell_Data_Name : cellDataName
  104. }
  105. ];
  106. }
  107. @end