import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/others/floating_button_search.dart'; import 'package:diplomaticquarterapp/widgets/robo-search/search.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class RoboSearch extends StatefulWidget { @override _RoboSearch createState() => new _RoboSearch(); } class _RoboSearch extends State { var event = RobotProvider(); var searchText = ''; bool isRetry = false; var tween = Tween(begin: 0.0, end: 1.0).chain(CurveTween(curve: Curves.ease)); @override void initState() { event.controller.stream.listen((p) { if (p['searchText'] != null) { if (p['searchText'] == 'null') { //Future.delayed(const Duration(seconds: 1), () { if (mounted) { setState(() { isRetry = true; searchText = ''; }); } //}); } else { if (mounted) { setState(() { searchText = p['searchText']; }); } } } }); super.initState(); } @override Widget build(BuildContext context) { return AlertDialog( content: Container( color: Colors.white, height: SizeConfig.realScreenHeight * 0.5, width: SizeConfig.realScreenWidth * 0.8, child: Container( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ isRetry == true ? Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( margin: EdgeInsets.all(20), padding: EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(100), border: Border.all( width: 5, color: Colors.red)), child: Icon( Icons.mic, color: Colors.blue, size: 48, )), Center( child: AppText( "Didn't catch that, Try speaking again", fontSize: 14, )), RaisedButton( color: Colors.transparent, onPressed: () { setState(() { isRetry = false; }); FloatingSearchButton() .createState() .startVoiceSearch(); }, child: AppText( 'Try again', color: Colors.blue, )) ]) : Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( margin: EdgeInsets.all(20), padding: EdgeInsets.all(20), decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(100)), child: Icon( Icons.mic, color: Colors.white, size: 48, )), SizedBox(height: 20), Center( child: Text(searchText == '' ? 'Try saying something' : searchText)) ], ) ]), ))); } } // class RoboSearch { // final BuildContext context; // var event = RobotProvider(); // var searchText = ''; // bool isRetry = false; // var tween = Tween(begin: 0.0, end: 1.0).chain(CurveTween(curve: Curves.ease)); // RoboSearch({ // @required this.context, // }); // showAlertDialog(BuildContext context) { // // set up the buttons // // set up the AlertDialog // AlertDialog alert = AlertDialog( // content: StatefulBuilder( // builder: (BuildContext context, StateSetter setState) { // event.controller.stream.listen((p) { // if (p['searchText'] != null) { // if (p['searchText'] == 'null') { // Future.delayed(const Duration(seconds: 1), () // { // setState(() { // isRetry = true; // searchText = ''; // }); // }); // } else { // Future.delayed(const Duration(seconds: 1), () // { // setState(() { // searchText = p['searchText']; // }); // }); // } // } // }); // return Container( // color: Colors.white, // height: SizeConfig.realScreenHeight * 0.5, // width: SizeConfig.realScreenWidth * 0.8, // child: Container( // child: Column( // mainAxisAlignment: MainAxisAlignment.center, // children: [ // isRetry == true // ? Column( // mainAxisAlignment: MainAxisAlignment.center, // children: [ // Container( // margin: EdgeInsets.all(20), // padding: EdgeInsets.all(10), // decoration: BoxDecoration( // borderRadius: // BorderRadius.circular(100), // border: Border.all( // width: 5, color: Colors.red)), // child: Icon( // Icons.mic, // color: Colors.blue, // size: 48, // )), // Center( // child: AppText( // "Didn't catch that, Try speaking again", // fontSize: 14, // )), // RaisedButton( // color: Colors.transparent, // onPressed: () { // setState(() { // isRetry = false; // }); // startVoiceSearch(); // }, // child: AppText( // 'Try again', // color: Colors.blue, // )) // ]) // : Column( // mainAxisAlignment: MainAxisAlignment.center, // children: [ // Container( // margin: EdgeInsets.all(20), // padding: EdgeInsets.all(20), // decoration: BoxDecoration( // color: Colors.blue, // borderRadius: BorderRadius.circular(100)), // child: Icon( // Icons.mic, // color: Colors.white, // size: 48, // )), // SizedBox(height: 20), // Center( // child: Text(searchText == '' // ? 'Try saying something' // : searchText)) // ], // ) // ]), // )); // }), // ); // // show the dialog // showDialog( // context: context, // builder: (BuildContext context) { // return alert; // }, // ); // } // static closeAlertDialog(BuildContext context) { // Navigator.of(context).pop(); // } // startVoiceSearch() { // // Navigator.of(context).pop(); // //this.showAlertDialog(context); // // new RoboSearch(context: context).showAlertDialog(context); // FloatingSearchButton().createState().startVoiceSearch(); // } // }