updateEditingValue method
Requests that this client update its editing state to the given value.
The new value
is treated as user input and thus may subject to input
formatting.
Implementation
@override
void updateEditingValue(TextEditingValue value) {
//print("updateEditingValue FIRED with ${value.text}");
// _receivedRemoteTextEditingValue = value;
final _oldTextEditingValue = _value;
if (value.text != _oldTextEditingValue.text) {
setState(() => _value = value);
if (value.replacementCharactersCount <
_oldTextEditingValue.replacementCharactersCount) {
final removedChip = _chips.last;
setState(() =>
_chips = Set.of(_chips.take(value.replacementCharactersCount)));
widget.onChanged(_chips.toList(growable: false));
String? putText = '';
if (widget.allowChipEditing && _enteredTexts.containsKey(removedChip)) {
putText = _enteredTexts[removedChip]!;
_enteredTexts.remove(removedChip);
}
_updateTextInputState(putText: putText);
} else {
_updateTextInputState();
}
_onSearchChanged(_value.normalCharactersText);
}
}