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<RoboSearch> {
  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();
//   }
// }
