update method

Future<void> update()

Check the LiveTextInputStatus and update value if needed.

Implementation

Future<void> update() async {
  if (_disposed) {
    return;
  }

  final bool isLiveTextInputEnabled;
  try {
    isLiveTextInputEnabled = await LiveText.isLiveTextInputAvailable();
  } catch (exception, stack) {
    FlutterError.reportError(
      FlutterErrorDetails(
        exception: exception,
        stack: stack,
        library: 'widget library',
        context: ErrorDescription('while checking the availability of Live Text input'),
      ),
    );
    // In the case of an error from the Live Text API, set the value to
    // unknown so that it will try to update again later.
    if (_disposed || value == LiveTextInputStatus.unknown) {
      return;
    }
    value = LiveTextInputStatus.unknown;
    return;
  }

  final LiveTextInputStatus nextStatus =
      isLiveTextInputEnabled ? LiveTextInputStatus.enabled : LiveTextInputStatus.disabled;

  if (_disposed || nextStatus == value) {
    return;
  }
  value = nextStatus;
}