updateEditingValue method

  1. @override
void updateEditingValue(
  1. TextEditingValue value
)
override

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);
  }
}