onInit method
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
Implementation
@override
void onInit() {
if(textEditingController != null) {
_isMyController = false;
}
populateComposerId();
_suggestionListStream = _suggestionListController.stream;
_previousTextStream = _previousTextController.stream;
_dateString = DateTime.now().millisecondsSinceEpoch.toString();
_uiMessageListener = "${_dateString}UI_message_listener";
_uiEventListener = "${_dateString}UI_event_listener";
/// Subscribe to the stream
_subscription =
_suggestionListStream.listen((List<SuggestionListItem> value) {
bool shouldScrollDown = false;
if (value.isNotEmpty && _currentSearchKeyword != null) {
if (_searcKeywordChanged) {
suggestions = value;
_searcKeywordChanged = false;
} else {
for (var element in value) {
if (!suggestions.contains(element)) {
suggestions.add(element);
}
}
shouldScrollDown = true;
}
hasMore = true;
update();
CometChatUIEvents.showPanel(
composerId,
CustomUIPosition.composerPreview,
(context) => getList(context, textEditingController!));
if (shouldScrollDown) {
_scrollDown();
}
} else {
if (_searcKeywordChanged) {
CometChatUIEvents.hidePanel(
composerId, CustomUIPosition.composerPreview);
suggestions.clear();
}
/// suggestions.clear();
/// CometChatUIEvents.hidePanel(composerId, CustomUIPosition.composerPreview);
hasMore = false;
update();
}
});
_previousTextStream.listen((String value) {
_previousText = value;
});
initializeFormatters();
textEditingController ??= CustomTextEditingController(
text: text, theme: cometChatTheme, formatters: _formatters);
CometChatMessageEvents.addMessagesListener(_uiMessageListener, this);
CometChatUIEvents.addUiListener(_uiEventListener, this);
if (stateCallBack != null) {
stateCallBack!(this);
}
if (user != null) {
receiverID = user!.uid;
receiverType = ReceiverTypeConstants.user;
} else if (group != null) {
receiverID = group!.guid;
receiverType = ReceiverTypeConstants.group;
}
_getLoggedInUser();
focusNode = FocusNode();
focusNode.addListener(_onFocusChange);
super.onInit();
}