innerStartListening function

Future<void> innerStartListening({
  1. required SpeechToText speech,
  2. required ValueNotifier<bool> isListening,
  3. required ValueNotifier<String> textNotifier,
})

This function should only be used inside AppBarWithSearchSwitch.speechSubBar,

it will call SpeechToText.listen inside...

Implementation

Future<void> innerStartListening(
    {required SpeechToText speech,
    required ValueNotifier<bool> isListening,
    required ValueNotifier<String> textNotifier}) async {
  isListening.value = speech.isListening;
  final previousText =
      textNotifier.value; // don't duplicate results, but save current field
  await speech.listen(
    onResult: (result) {
      textNotifier.value = previousText + result.recognizedWords;
      isListening.value = speech.isListening;
    },
  );
  isListening.value = speech.isListening;
}