@@ -7,7 +7,6 @@ import 'dart:typed_data';
7
7
import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart' ;
8
8
import 'package:flutter_speech/flutter_speech.dart' ;
9
9
10
-
11
10
class VoiceButtonComponent extends StatefulWidget {
12
11
final BluetoothConnection ? connection;
13
12
final int clientID;
@@ -18,7 +17,7 @@ class VoiceButtonComponent extends StatefulWidget {
18
17
this .languageSelected,
19
18
required this .clientID,
20
19
}) : super (key: key);
21
- _VoiceButtonState createState () => _VoiceButtonState ();
20
+ _VoiceButtonState createState () => _VoiceButtonState ();
22
21
}
23
22
24
23
class Language {
@@ -41,12 +40,11 @@ class _Message {
41
40
_Message (this .whom, this .text);
42
41
}
43
42
44
-
45
43
class _VoiceButtonState extends State <VoiceButtonComponent > {
46
44
bool buttonClicado = false ;
47
45
final TextEditingController textEditingController = TextEditingController ();
48
46
List <_Message > messages = < _Message > [];
49
-
47
+
50
48
late SpeechRecognition _speech;
51
49
bool _speechRecognitionAvailable = false ;
52
50
bool _isListening = false ;
@@ -65,7 +63,15 @@ class _VoiceButtonState extends State<VoiceButtonComponent> {
65
63
_speech.setRecognitionResultHandler (onRecognitionResult);
66
64
_speech.setRecognitionCompleteHandler (onRecognitionComplete);
67
65
_speech.setErrorHandler (errorHandler);
68
- _speech.activate (languages.firstWhere ((l) => l.code == (widget.languageSelected == null ? 'pt_BR' : widget.languageSelected! )).code).then ((res) {
66
+ _speech
67
+ .activate (languages
68
+ .firstWhere ((l) =>
69
+ l.code ==
70
+ (widget.languageSelected == null
71
+ ? 'pt_BR'
72
+ : widget.languageSelected! ))
73
+ .code)
74
+ .then ((res) {
69
75
setState (() => _speechRecognitionAvailable = res);
70
76
});
71
77
}
@@ -89,9 +95,15 @@ class _VoiceButtonState extends State<VoiceButtonComponent> {
89
95
}
90
96
}
91
97
92
-
93
- void start () => _speech.activate (
94
- languages.firstWhere ((l) => l.code == (widget.languageSelected == null ? 'pt_BR' : widget.languageSelected! )).code).then ((_) {
98
+ void start () => _speech
99
+ .activate (languages
100
+ .firstWhere ((l) =>
101
+ l.code ==
102
+ (widget.languageSelected == null
103
+ ? 'pt_BR'
104
+ : widget.languageSelected! ))
105
+ .code)
106
+ .then ((_) {
95
107
return _speech.listen ().then ((result) {
96
108
print ('_MyAppState.start => result $result ' );
97
109
setState (() {
@@ -110,7 +122,6 @@ class _VoiceButtonState extends State<VoiceButtonComponent> {
110
122
void onSpeechAvailability (bool result) =>
111
123
setState (() => _speechRecognitionAvailable = result);
112
124
113
-
114
125
void onRecognitionStarted () {
115
126
setState (() => _isListening = true );
116
127
}
@@ -128,24 +139,16 @@ class _VoiceButtonState extends State<VoiceButtonComponent> {
128
139
void errorHandler () => activateSpeechRecognizer ();
129
140
130
141
Widget build (BuildContext context) {
131
- return (ElevatedButton (
132
- onPressed: _speechRecognitionAvailable && ! _isListening
133
- ? () => start ()
134
- : null ,
135
- child: Icon (
136
- _isListening
137
- ? Icons .settings_voice
138
- : Icons .settings_voice_outlined,
139
- ),
140
- style: ElevatedButton .styleFrom (
141
- shape: CircleBorder (),
142
- primary: _isListening
143
- ? Color .fromRGBO (255 , 255 , 0 , 1 )
144
- : Colors .black),
145
-
146
- ));
142
+ return (ElevatedButton (
143
+ onPressed:
144
+ _speechRecognitionAvailable && ! _isListening ? () => start () : null ,
145
+ child: Icon (
146
+ _isListening ? Icons .settings_voice : Icons .settings_voice_outlined,
147
+ ),
148
+ style: ElevatedButton .styleFrom (
149
+ shape: CircleBorder (),
150
+ backgroundColor:
151
+ _isListening ? Color .fromRGBO (255 , 255 , 0 , 1 ) : Colors .black),
152
+ ));
147
153
}
148
-
149
-
150
-
151
- }
154
+ }
0 commit comments