You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/views/widgets/speech_to_text/speech_to_text.dart

157 lines
5.6 KiB
Dart

// import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
// import 'package:provider/provider.dart';
// import 'package:speech_to_text/speech_recognition_error.dart';
// import 'package:speech_to_text/speech_recognition_result.dart';
// import 'package:speech_to_text/speech_to_text.dart';
// import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/new_views/app_style/app_text_style.dart';
// import 'package:test_sa/views/app_style/sizing.dart';
// import 'package:test_sa/views/widgets/buttons/app_icon_button2.dart';
// import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
//
// class SpeechToTextButton extends StatefulWidget {
// final TextEditingController controller;
// final bool mini;
// final bool enabled;
//
// const SpeechToTextButton({Key? key, this.controller, this.mini = false, this.enabled = true}) : super(key: key);
//
// @override
// _SpeechToTextButtonState createState() => _SpeechToTextButtonState();
// }
//
// class _SpeechToTextButtonState extends State<SpeechToTextButton> {
// bool _speechEnabled = false;
// SettingProvider _settingProvider;
// final SpeechToText _speechToText = SpeechToText();
//
// /// This has to happen only once per app
// void _initSpeech() async {
// _speechEnabled = await _speechToText.initialize(
// onError: (SpeechRecognitionError error) async {
// Fluttertoast.showToast(msg: "failed to convert text to speech");
// setState(() {});
// },
// );
// }
//
// /// Each time to start a speech recognition session
// void _startListening() async {
// _speechEnabled = _speechToText.isAvailable;
// if (_speechToText.isListening) {
// Fluttertoast.showToast(msg: "Currently in use");
// return;
// }
// if (!_speechEnabled) return;
// await _speechToText.listen(
// onResult: (SpeechRecognitionResult result) {
// widget.controller.text = result.recognizedWords;
// setState(() {});
// },
// localeId: _settingProvider.speechToText);
// setState(() {});
// }
//
// /// Manually stop the active speech recognition session
// /// Note that there are also timeouts that each platform enforces
// /// and the SpeechToText plugin supports setting timeouts on the
// /// listen method.
// void _stopListening() async {
// await _speechToText.stop();
// setState(() {});
// }
//
// @override
// void initState() {
// _initSpeech();
// widget.controller.addListener(() {
// setState(() {});
// });
// super.initState();
// }
//
// @override
// void setState(VoidCallback fn) {
// if (!mounted) return;
// super.setState(fn);
// }
//
// @override
// Widget build(BuildContext context) {
// _settingProvider = Provider.of<SettingProvider>(context);
// return Container(
// padding: const EdgeInsets.only(left: 12, right: 12),
// decoration: BoxDecoration(
// color: context.isDark && (widget.enabled == false)
// ? AppColor.neutral50
// : (widget.enabled == false)
// ? AppColor.neutral40
// : AppColor.background(context),
// borderRadius: BorderRadius.circular(10),
// boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
// ),
// child: Row(
// children: [
// widget.mini
// ? const SizedBox.shrink()
// : Text(
// "Speech To Text",
// style: Theme.of(context).textTheme.bodyLarge,
// ),
// widget.controller.text.isNotEmpty && widget.enabled
// ? AIconButton2(
// iconData: Icons.delete,
// color: context.isDark ? Colors.white : Colors.black87,
// onPressed: () {
// widget.controller.clear();
// setState(() {});
// },
// )
// : const SizedBox.shrink(),
// const Spacer(),
// TextButton(
// onPressed: widget.enabled
// ? () {
// if (_speechToText.isListening) return;
//
// if (_settingProvider.speechToText == "ar") {
// _settingProvider.setSpeechToText("en");
// } else {
// _settingProvider.setSpeechToText("ar");
// }
// }
// : null,
// child: Text(_settingProvider.speechToText)),
// GestureDetector(
// child: _speechToText.isListening
// ? const Icon(
// Icons.fiber_manual_record,
// color: Colors.red,
// )
// : Icon(
// Icons.mic,
// color: Theme.of(context).colorScheme.primary,
// ),
// onTap: widget.enabled
// ? () async {
// if (!_speechEnabled) {
// Fluttertoast.showToast(msg: "microphone not available");
// return;
// }
// if (_speechToText.isListening) {
// _stopListening();
// } else {
// _startListening();
// }
// }
// : null,
// ),
// ],
// ),
// );
// }
// }