From 94aab4a737a80bfd2c2c5e11f1a78859afaf4edb Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 2 Dec 2021 17:36:50 +0300 Subject: [PATCH] Speech to text fix in iOS --- lib/pages/feedback/send_feedback_page.dart | 10 ++++++- .../product-details/availability_info.dart | 22 +++++++------- .../others/floating_button_search.dart | 30 +++++++++++-------- 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 298e617e..e409b133 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -94,6 +94,13 @@ class _SendFeedbackPageState extends State { this.appointHistory = widget.appointment; }); requestPermissions(); + event.controller.stream.listen((p) { + if (p['isIOSFeedback'] == 'true') { + if (this.mounted) { + this.titleController.value = p['data']; + } + } + }); super.initState(); } @@ -538,9 +545,10 @@ class _SendFeedbackPageState extends State { if (result.finalResult == true) { setState(() { + messageController.text += reconizedWord + '\n'; RoboSearch.closeAlertDialog(context); speech.stop(); - messageController.text = reconizedWord + '\n'; + }); } } diff --git a/lib/pages/pharmacies/screens/product-details/availability_info.dart b/lib/pages/pharmacies/screens/product-details/availability_info.dart index 08c6d5de..7d894069 100644 --- a/lib/pages/pharmacies/screens/product-details/availability_info.dart +++ b/lib/pages/pharmacies/screens/product-details/availability_info.dart @@ -1,9 +1,8 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; -import 'package:maps_launcher/maps_launcher.dart'; -import 'package:url_launcher/url_launcher.dart'; import 'package:map_launcher/map_launcher.dart'; +import 'package:url_launcher/url_launcher.dart'; class AvailabilityInfo extends StatelessWidget { final ProductDetailViewModel previousModel; @@ -21,8 +20,8 @@ class AvailabilityInfo extends StatelessWidget { ), ) : Container( - margin: EdgeInsets.only(bottom: 40), - child: ListView.builder( + margin: EdgeInsets.only(bottom: 40), + child: ListView.builder( physics: ScrollPhysics(), scrollDirection: Axis.vertical, shrinkWrap: true, @@ -56,13 +55,14 @@ class AvailabilityInfo extends StatelessWidget { color: Colors.red, onPressed: () { MapLauncher.showMarker( - mapType: MapType.google, - coords: Coords(double.parse(previousModel.productLocationService[index].latitude), - double.parse(previousModel.productLocationService[index].longitude)), - title: previousModel.productLocationService[index].locationDescription, + mapType: MapType.googleGo, + coords: Coords(double.parse(previousModel.productLocationService[index].latitude), double.parse(previousModel.productLocationService[index].longitude)), + title: previousModel.productLocationService[index].locationDescription, // description: location.locationName, - ); - // MapsLauncher.launchCoordinates(double.parse(previousModel.productLocationService[index].latitude), double.parse(previousModel.productLocationService[index].longitude), previousModel.productLocationService[index].locationDescription); + ).then((value) {}).catchError((err) { + print(err); + }); +// MapLauncher.launchCoordinates(double.parse(previousModel.productLocationService[index].latitude), double.parse(previousModel.productLocationService[index].longitude), previousModel.productLocationService[index].locationDescription); }, ), ), @@ -84,7 +84,7 @@ class AvailabilityInfo extends StatelessWidget { ); }, ), - ); + ); } convertCityName(txt) { diff --git a/lib/widgets/others/floating_button_search.dart b/lib/widgets/others/floating_button_search.dart index 8a9274be..b8752534 100644 --- a/lib/widgets/others/floating_button_search.dart +++ b/lib/widgets/others/floating_button_search.dart @@ -54,9 +54,11 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart' show TargetPlatform; import 'package:flutter/material.dart'; import 'package:flutter_tts/flutter_tts.dart'; import 'package:permission_handler/permission_handler.dart'; @@ -896,17 +898,6 @@ class RoboSearch { }); showAlertDialog(BuildContext context) { - //AlertDialog alert = AlertDialog - // AlertDialog alert = AlertDialog(content: MyStatefulBuilder(dispose: () { - // print('dispose!!!!!!!!!!!!'); - // }) - // isClosed = true; - // streamSubscription.cancel(); - // }, builder: (BuildContext context, StateSetter setState) { - // //print(streamSubscription); - // }), - // ); - // show the dialog showDialog( context: context, @@ -918,7 +909,6 @@ class RoboSearch { ); }, ); - print(dialog); } static closeAlertDialog(BuildContext context) { @@ -946,6 +936,7 @@ class _MyStatefulBuilderState extends State { var searchText; static StreamSubscription streamSubscription; static var isClosed = false; + stt.SpeechToText speech = stt.SpeechToText(); @override void initState() { @@ -1006,6 +997,21 @@ class _MyStatefulBuilderState extends State { event.setValue({'startPopUp': 'true'}); }, )) + : SizedBox(), + searchText != 'null' && searchText != null && Theme.of(context).platform == TargetPlatform.iOS + ? Center( + child: DefaultButton( + TranslationBase.of(context).ok, + () { + RoboSearch.closeAlertDialog(context); + speech.stop(); + // event.setValue({"searchText": { + // 'isIOSFeedback':true, + // + // } + // }); + }, + )) : SizedBox() ]), )));