CometChatMessageListController constructor

CometChatMessageListController({
  1. required MessagesBuilderProtocol messagesBuilderProtocol,
  2. User? user,
  3. Group? group,
  4. String? customIncomingMessageSound,
  5. String? customIncomingMessageSoundPackage,
  6. bool disableSoundForMessages = false,
  7. bool hideDeletedMessage = false,
  8. bool scrollToBottomOnNewMessage = false,
  9. ScrollController? scrollController,
  10. dynamic stateCallBack(
    1. CometChatMessageListController controller
    )?,
  11. dynamic onError(
    1. Exception
    )?,
  12. dynamic onThreadRepliesClick(
    1. BaseMessage message,
    2. BuildContext context, {
    3. Widget bubbleView,
    })?,
  13. List<CometChatMessageTemplate>? messageTypes,
  14. bool? disableReceipt,
  15. bool? hideReceipt,
  16. CometChatTheme? theme,
  17. MessageInformationConfiguration? messageInformationConfiguration,
  18. EmojiKeyboardStyle? emojiKeyboardStyle,
  19. bool? disableReactions,
  20. List<CometChatTextFormatter>? textFormatters,
  21. bool? disableMentions,
})

Implementation

CometChatMessageListController(
    {required this.messagesBuilderProtocol,
    this.user,
    this.group,
    this.customIncomingMessageSound,
    this.customIncomingMessageSoundPackage,
    this.disableSoundForMessages = false,
    this.hideDeletedMessage = false,
    this.scrollToBottomOnNewMessage = false,
    ScrollController? scrollController,
    this.stateCallBack,
    super.onError,
    this.onThreadRepliesClick,
    this.messageTypes,
    this.disableReceipt,
    this.hideReceipt,
    this.theme,
    this.messageInformationConfiguration,
    this.emojiKeyboardStyle,
    this.disableReactions,
    this.textFormatters,
    this.disableMentions})
    : super(
          builderProtocol: user != null
              ? (messagesBuilderProtocol
                ..requestBuilder.uid = user.uid
                ..requestBuilder.guid = '')
              : (messagesBuilderProtocol
                ..requestBuilder.guid = group!.guid
                ..requestBuilder.uid = '')) {
  dateStamp = DateTime.now().microsecondsSinceEpoch.toString();
  _messageListenerId = "${dateStamp}user_listener";
  _groupListenerId = "${dateStamp}group_listener";
  _uiGroupListener = "${dateStamp}UIGroupListener";
  _uiMessageListener = "${dateStamp}UI_message_listener";
  _uiEventListener = "${dateStamp}UI_Event_listener";
  _uiCallListener = "${dateStamp}UI_Call_listener";
  _sdkCallListenerId = "${dateStamp}sdk_Call_listener";

  createTemplateMap();

  if (user != null) {
    conversationWithId = user!.uid;
    conversationType = ReceiverTypeConstants.user;
  } else {
    conversationWithId = group!.guid;
    conversationType = ReceiverTypeConstants.group;
  }

  if (scrollController != null) {
    messageListScrollController = scrollController;
  } else {
    messageListScrollController = ScrollController();
  }
  messageListScrollController.addListener(_scrollControllerListener);
  tag = "tag$counter";
  counter++;

  threadMessageParentId =
      messagesBuilderProtocol.getRequest().parentMessageId ?? 0;
  isThread = threadMessageParentId > 0;

  messageListId = {};

  if (user != null) {
    messageListId['uid'] = user?.uid;
  }
  if (group != null) {
    messageListId['guid'] = group?.guid;
  }

  if (threadMessageParentId > 0) {
    messageListId['parentMessageId'] = threadMessageParentId;
  }

  initializeTextFormatters();
}