import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.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/dialogs/alert_dialog.dart'; import 'package:diplomaticquarterapp/widgets/habib_logo_widget.dart'; import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class ForgotPassword extends StatefulWidget { @override _ForgotPassword createState() => _ForgotPassword(); } class _ForgotPassword extends State { String selectedType = 'Saudi Arabia'; String countryCode = '966'; final TextEditingController nationalIDorFile = null; String mobileNo = ""; var con; @override Widget build(BuildContext context) { con = context; return Scaffold( backgroundColor: Color(0xfff8f8f8), appBar: AppBar( backgroundColor: Colors.transparent, leading: IconButton( icon: Icon(Icons.arrow_back_ios), color: Color(0xff2B353E), onPressed: () => Navigator.pop(context), ), ), body: Padding( padding: EdgeInsets.only(bottom: 20, left: 21, right: 21), child: Column(children: [ Expanded( child: ListView( padding: EdgeInsets.zero, physics: BouncingScrollPhysics(), children: [ SizedBox(height: 12), HabibLogoWidget(), SizedBox(height: 50), Text( TranslationBase.of(context).forgotDesc, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), ), SizedBox(height: 20), PhoneNumberSelectorWidget(onNumberChange: (value) { setState(() { mobileNo = value; }); }, onCountryChange: (value) { setState(() { countryCode = value; }); }), ], ), ), SizedBox( height: 43, width: double.infinity, child: FlatButton( onPressed: () { sendPatientIDBySMS(); }, child: Text( TranslationBase.of(context).submit, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), ), // color: Color(0xffD02127), color: (mobileNo.length >= 9) == true ? Color(0xffD02127) : Color(0xff575757), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(6), ), ), ), ]), ), ); return AppScaffold( appBarTitle: TranslationBase.of(context).forgotFileNoTitle, isShowAppBar: true, isShowDecPage: false, body: SingleChildScrollView( child: Container( padding: EdgeInsets.only(top: 10, left: 20, right: 20), height: SizeConfig.realScreenHeight * .8, width: SizeConfig.realScreenWidth, child: Column(children: [ Expanded( flex: 1, child: AppText( TranslationBase.of(context).forgotDesc, fontSize: SizeConfig.textMultiplier * 3, textAlign: TextAlign.start, marginTop: 10.0, )), Expanded( flex: 2, child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Row( mainAxisAlignment: MainAxisAlignment.center, children: [], ), MobileNo(onNumberChange: (value) { setState(() { mobileNo = value; }); }, onCountryChange: (value) { setState(() { countryCode = value; }); }), ], ), ), Expanded( flex: 2, child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ Row( children: [ Expanded( child: DefaultButton( TranslationBase.of(context).submit, () { // if (mobileNo.length >= 9 == true) // sendPatientIDBySMS(); if (mobileNo.length >= 9) sendPatientIDBySMS(); // print(mobileNo.text); }, color: mobileNo.length >= 9 == true ? Colors.grey[900] : Colors.grey, textColor: Colors.white, )), ], ), ], )) ]), ))); } sendPatientIDBySMS() { GifLoaderDialogUtils.showMyDialog(context); final authService = new AuthProvider(); authService.sendPatientIDSMS(mobileNo, countryCode, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { this.startSMSService(mobileNo, res['LogInTokenID']); } else { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: err); print(err); }); } startSMSService(mobile, token) { new SMSOTP( context, 1, mobile, (value) => {this.checkActivationCode(value, token, int.parse(mobileNo))}, () => { print('Faild..'), }, ).displayDialog(context); } checkActivationCode(value, token, mobileNo) { GifLoaderDialogUtils.showMyDialog(context); final authService = new AuthProvider(); var request = { "LogInTokenID": token, "PatientOutSA": countryCode == '966' ? 0 : 1, "PatientMobileNumber": mobileNo, "ZipCode": countryCode, "activationCode": value, "isRegister": false, "IsSilentLogin": false }; authService.forgotPasswordActivation(request, value).then((res) { if (res is String) { GifLoaderDialogUtils.hideDialog(con); Future.delayed(Duration(seconds: 1), () { AppToast.showErrorToast(message: res); }); } else { GifLoaderDialogUtils.hideDialog(con); Navigator.of(context).pop(); AlertDialogBox( context: con, confirmMessage: res['ReturnMessage'], okText: TranslationBase.of(con).ok, okFunction: () { AlertDialogBox.closeAlertDialog(con); Navigator.of(context).pop(); }).showAlertDialog(context); } }); } }