convertInsert method
Implementation
String? convertInsert(String text) {
if (text == '\n') {
final layoutText = layoutTextConverter.layoutText;
if (layoutText.isNotEmpty) {
layoutTextConverter.confirmWord(layoutText);
_showOrRefresh();
return layoutText;
} else {
return text;
}
}
final insertText = _selectWordFromSuggestionsIfNeeded(text);
if (insertText != text) {
layoutTextConverter.confirmWord('$insertText ');
_showOrRefresh();
return insertText;
}
final nextPageSuggestion = text == '=';
final previousPageSuggestion = text == '-';
if (nextPageSuggestion || previousPageSuggestion) {
final suggestionWords = layoutTextConverter.suggestionWords;
if (suggestionWords.isEmpty) {
return text;
}
final page = _currentPage;
final nextPage = page + 1;
final previousPage = page - 1;
final maxPage = (suggestionWords.length / 10).ceil() - 1;
final nextPageIndex = nextPage > maxPage ? 0 : nextPage;
final previousPageIndex = previousPage < 0 ? maxPage : previousPage;
_currentPage = nextPageSuggestion ? nextPageIndex : previousPageIndex;
_showOrRefresh();
return null;
}
final latin = RegExp(r'[a-zA-Z]').matchAsPrefix(text) != null;
if (latin) {
layoutTextConverter.appendLayoutText(text);
_showOrRefresh();
return null;
} else {
// Here the text is a Mongolian punctuation.
layoutTextConverter.confirmWord(text);
_showOrRefresh();
if (text == ' ') {
return ' ';
}
return '$text ';
}
}