finish resend code

merge-requests/99/head
Elham Rababah 6 years ago
parent 40eb7f8064
commit 1e507cca3e

@ -61,3 +61,6 @@ const CHANNEL = 9;
const SESSION_ID = 'BlUSkYymTt';
const IS_LOGIN_FOR_DOCTOR_APP = true;
const PATIENT_OUT_SA = false;
/// Timer Info
const TIMER_MIN =10;

@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart';
import '../../lookups/auth_lookup.dart';
@ -28,7 +30,6 @@ class _VerifyAccountScreenState extends State<VerifyAccountScreen> {
@override
Widget build(BuildContext context) {
// return Container()];
return AppScaffold(
isloading: _isLoading,
pageOnly: true,
@ -40,7 +41,7 @@ class _VerifyAccountScreenState extends State<VerifyAccountScreen> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AuthHeader(loginType.verifyPassword),
VerifyAccount(changeLoadingStata:changeLoadingStata),
VerifyAccount(changeLoadingStata: changeLoadingStata),
],
),
),

@ -0,0 +1,102 @@
import 'dart:async';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/providers/auth_provider.dart';
import 'package:doctor_app_flutter/providers/patients_provider.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
class ShowTimerText extends StatefulWidget {
ShowTimerText({Key key, this.model});
final model;
@override
_ShowTimerTextState createState() => _ShowTimerTextState();
}
class _ShowTimerTextState extends State<ShowTimerText> {
String timerText = (TIMER_MIN - 1).toString() + ':59';
int min = TIMER_MIN - 1;
int sec = 59;
Timer _timer;
AuthProvider authProv;
resendCode() {
min = TIMER_MIN - 1;
sec = 59;
_timer = Timer.periodic(Duration(seconds: 1), (Timer timer) {
if (min <= 0 && sec <= 0) {
timer.cancel();
} else {
setState(() {
sec = sec - 1;
if (sec == 0 && min == 0) {
min = 0;
sec = 0;
} else if (sec == 0) {
min = min - 1;
sec = 59;
}
timerText = min.toString() + ':' + sec.toString();
});
}
});
}
@override
void initState() {
super.initState();
resendCode();
}
@override
void dispose() {
_timer.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
authProv = Provider.of<AuthProvider>(context);
return Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
InkWell(
onTap: min != 0 || sec != 0
? null
: () {
resendActivatioinCode();
},
child: Text(
min == 0 && sec == 0 ? 'Resend Login Code' : timerText,
style: TextStyle(
fontSize: 3.0 * SizeConfig.textMultiplier,
color:
min == 0 && sec == 0 ? Colors.blue : Hexcolor('#B8382C'),
fontWeight: FontWeight.bold),
),
),
],
),
);
}
resendActivatioinCode() {
authProv
.sendActivationCodeByOtpNotificationType(widget.model)
.then((res) => {
// print('$value')
if (res['MessageStatus'] == 1)
{resendCode()}
else
{helpers.showErrorToast(res['ErrorEndUserMessage'])}
})
.catchError((err) {
helpers.showErrorToast();
});
}
}

@ -1,7 +1,9 @@
import 'dart:async';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/clinic_model.dart';
import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/profile_req_Model.dart';
import 'package:doctor_app_flutter/widgets/auth/show_timer_text.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
@ -35,6 +37,8 @@ class _VerifyAccountState extends State<VerifyAccount> {
Future _loggedUserFuture;
var _loggedUser;
AuthProvider authProv;
bool _isInit =true;
var model;
@override
void initState() {
super.initState();
@ -47,6 +51,17 @@ class _VerifyAccountState extends State<VerifyAccount> {
});
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
if (_isInit) {
authProv = Provider.of<AuthProvider>(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
model = routeArgs['model'];
}
_isInit = false;
}
@override
Widget build(BuildContext context) {
authProv = Provider.of<AuthProvider>(context);
@ -132,10 +147,11 @@ class _VerifyAccountState extends State<VerifyAccount> {
onSaved: (val) {
verifyAccountFormValue['digit3'] =
val;
},onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
validator: validateCodeDigit)),
Container(
width: SizeConfig.realScreenWidth * 0.20,
@ -190,14 +206,7 @@ class _VerifyAccountState extends State<VerifyAccount> {
color: Hexcolor('#CCCCCC'))),
),
buildSizedBox(20),
Center(
child: Text(
"Resend in 4.20",
style: TextStyle(
fontSize: 3.0 * SizeConfig.textMultiplier,
),
),
),
ShowTimerText(model: model),
buildSizedBox(10),
])));
}
@ -401,10 +410,10 @@ class _VerifyAccountState extends State<VerifyAccount> {
}
}).catchError((err) {
print('$err');
changeLoadingStata(false);
changeLoadingStata(false);
print('$err');
helpers.showErrorToast();
print('$err');
helpers.showErrorToast();
});
}
}

@ -270,7 +270,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
widget.changeLoadingStata(false);
if (res['MessageStatus'] == 1) {
Navigator.of(context).pushNamed(VERIFY_ACCOUNT);
Navigator.of(context).pushNamed(VERIFY_ACCOUNT, arguments: {'model':model});
} else {
print(res['ErrorEndUserMessage']);
helpers.showErrorToast(res['ErrorEndUserMessage']);

Loading…
Cancel
Save