addValueListener method

  1. @override
void addValueListener(
  1. ValueCallback<T> listener
)
override

Implementation

@override
void addValueListener(ValueCallback<T> listener) {
  _initializeMixinVariables();
  assert(null != _valueListeners && null != _valueListenersCount);

  if (0 == _valueListenersCount) {
    _valueListeners = List<ValueCallback<T>?>.filled(1, listener);
    _valueListenersCount = 1;
    return;
  }

  // Increase size of _valueListeners.
  if (_valueListenersCount! >= _valueListeners!.length) {
    final newListeners =
        List<ValueCallback<T>?>.filled(_valueListeners!.length * 2, null);

    for (var i = 0; i < _valueListenersCount!; i++)
      newListeners[i] = _valueListeners![i];

    _valueListeners = newListeners;
  }

  _valueListeners![_valueListenersCount!] = listener;
  _valueListenersCount = _valueListenersCount! + 1;
}