fix design

merge-requests/709/head
Elham Rababah 5 years ago
parent 69eca869b4
commit 837ff69c82

@ -2,14 +2,11 @@ import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart'; import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
import 'package:doctor_app_flutter/screens/auth/verification_methods_screen.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app_text_form_field.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -26,7 +23,6 @@ class _LoginScreenState extends State<LoginScreen> {
String platformImei; String platformImei;
bool allowCallApi = true; bool allowCallApi = true;
//TODO change AppTextFormField to AppTextFormFieldCustom
final loginFormKey = GlobalKey<FormState>(); final loginFormKey = GlobalKey<FormState>();
var projectIdController = TextEditingController(); var projectIdController = TextEditingController();
var userIdController = TextEditingController(); var userIdController = TextEditingController();
@ -42,176 +38,146 @@ class _LoginScreenState extends State<LoginScreen> {
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
backgroundColor: HexColor('#F8F8F8'), backgroundColor: HexColor('#F8F8F8'),
body: SafeArea( body: SingleChildScrollView(
child: ListView(children: <Widget>[ child: SafeArea(
Container( child: Container(
margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 30), margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 30),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Column( //TODO Use App Text rather than text
crossAxisAlignment: CrossAxisAlignment.start, Container(
children: <Widget>[ child: Column(
//TODO Use App Text rather than text crossAxisAlignment: CrossAxisAlignment
Container( .start,
children: <Widget>[
child: Column( Column(
crossAxisAlignment: CrossAxisAlignment
.start,
children: <Widget>[
SizedBox(
height: 30,
),
],
),
Column(
crossAxisAlignment: CrossAxisAlignment crossAxisAlignment: CrossAxisAlignment
.start, .start, children: [
children: <Widget>[ SizedBox(
Column( height: 10,
crossAxisAlignment: CrossAxisAlignment ),
.start, Text(
children: <Widget>[ TranslationBase
SizedBox( .of(context)
height: 30, .welcomeTo,
), style: TextStyle(
], fontSize: 12,
), fontWeight: FontWeight
Column( .w600,
crossAxisAlignment: CrossAxisAlignment fontFamily: 'Poppins'),
.start, children: [ ),
SizedBox( Text(
height: 10, TranslationBase
), .of(context)
Text( .drSulaimanAlHabib,
TranslationBase style: TextStyle(
.of(context) color: Color(0xFF2B353E),
.welcomeTo, fontWeight: FontWeight
style: TextStyle( .bold,
fontSize: 16, fontSize: 24,
fontWeight: FontWeight fontFamily: 'Poppins'),
.w600, ),
fontFamily: 'Poppins'),
),
Text(
TranslationBase
.of(context)
.drSulaimanAlHabib,
style: TextStyle(
color:Color(0xFF2B353E),
fontWeight: FontWeight
.bold,
fontSize: SizeConfig
.isMobile
? 24
: SizeConfig
.realScreenWidth *
0.029,
fontFamily: 'Poppins'),
),
Text( Text(
"Doctor App", "Doctor App",
style: TextStyle( style: TextStyle(
fontSize: fontSize: 12,
SizeConfig.isMobile fontWeight: FontWeight
? 16 .w600,
: SizeConfig color: Color(0xFFD02127)),
.realScreenWidth * ),
0.030, ]),
fontWeight: FontWeight ],
.w600, )),
color: Color(0xFFD02127)), SizedBox(
), height: 40,
]), ),
], Form(
)), key: loginFormKey,
SizedBox( child: Column(
height: 40, crossAxisAlignment: CrossAxisAlignment
), .start, children: [
Form(
key: loginFormKey,
child: Column(
mainAxisAlignment: MainAxisAlignment
.spaceBetween,
children: <Widget>[
Container(
width: SizeConfig
.realScreenWidth * 0.90,
height: SizeConfig
.realScreenHeight * 0.65,
child:
Column(
crossAxisAlignment: CrossAxisAlignment
.start, children: [
buildSizedBox(), buildSizedBox(),
AppTextFieldCustom( AppTextFieldCustom(
hintText: TranslationBase.of(context).enterId, hintText: TranslationBase.of(context).enterId,
hasBorder: true, hasBorder: true,
controller: userIdController, controller: userIdController,
onChanged: (value){ onChanged: (value){
if (value != null) if (value != null)
setState(() { setState(() {
authenticationViewModel.userInfo authenticationViewModel.userInfo
.userID = .userID =
value value
.trim(); .trim();
}); });
}, },
), ),
buildSizedBox(), buildSizedBox(),
AppTextFieldCustom( AppTextFieldCustom(
hintText: TranslationBase.of(context).enterPassword, hintText: TranslationBase.of(context).enterPassword,
hasBorder: true, hasBorder: true,
isSecure: true, isSecure: true,
controller: passwordController, controller: passwordController,
onChanged: (value){ onChanged: (value){
if (value != null) if (value != null)
setState(() { setState(() {
authenticationViewModel.userInfo authenticationViewModel.userInfo
.password = .password =
value value
.trim(); .trim();
}); });
// if(allowCallApi) { this.getProjects(
this.getProjects( authenticationViewModel.userInfo
authenticationViewModel.userInfo .userID);
.userID); },
// setState(() { onClick: (){
// allowCallApi = false;
// });
// }
},
onClick: (){
}, },
), ),
buildSizedBox(), buildSizedBox(),
AppTextFieldCustom( AppTextFieldCustom(
hintText: TranslationBase.of(context).selectYourProject, hintText: TranslationBase.of(context).selectYourProject,
hasBorder: true, hasBorder: true,
controller: projectIdController, controller: projectIdController,
isTextFieldHasSuffix: true, isTextFieldHasSuffix: true,
enabled: false, enabled: false,
onClick: (){ onClick: (){
Helpers Helpers
.showCupertinoPicker( .showCupertinoPicker(
context, context,
projectsList, projectsList,
'facilityName', 'facilityName',
onSelectProject, onSelectProject,
authenticationViewModel); authenticationViewModel);
}, },
), ),
buildSizedBox() buildSizedBox(),
]), ]),
), ),
], SizedBox(
), height: 40,
) ),
], ],
) )),
])) ),
]),
), ),
bottomSheet: Container( bottomSheet: Container(
height: 90, height: 85,
width: double.infinity, width: double.infinity,
child: Center( child: Center(
child: FractionallySizedBox( child: FractionallySizedBox(
@ -260,15 +226,6 @@ class _LoginScreenState extends State<LoginScreen> {
} else { } else {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
authenticationViewModel.setUnverified(true,isFromLogin: true); authenticationViewModel.setUnverified(true,isFromLogin: true);
// Navigator.of(context).pushReplacement(
// MaterialPageRoute(
// builder: (BuildContext context) =>
// VerificationMethodsScreen(
// password: authenticationViewModel.userInfo.password,
// isFromLogin: true,
// ),
// ),
// );
} }
} }
} }

@ -65,277 +65,223 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
body: SingleChildScrollView( body: SingleChildScrollView(
child: Center( child: Center(
child: FractionallySizedBox( child: FractionallySizedBox(
child: Container( widthFactor: 0.9,
margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0), child: Column(
height: SizeConfig.realScreenHeight * .95, crossAxisAlignment: CrossAxisAlignment.start,
width: SizeConfig.realScreenWidth, // mainAxisAlignment: MainAxisAlignment.spaceBetween,
child: Column( children: <Widget>[
crossAxisAlignment: CrossAxisAlignment.start, SizedBox(
// mainAxisAlignment: MainAxisAlignment.spaceBetween, height: 40,
children: <Widget>[ ),
SizedBox( if(authenticationViewModel.isFromLogin)
height: 80, InkWell(
), onTap: (){
if(authenticationViewModel.isFromLogin) authenticationViewModel.setUnverified(false,isFromLogin: false);
InkWell( authenticationViewModel.setAppStatus(APP_STATUS.UNAUTHENTICATED);
onTap: (){ },
authenticationViewModel.setUnverified(false,isFromLogin: false); child: Icon(Icons.arrow_back_ios,color: Color(0xFF2B353E),)
authenticationViewModel.setAppStatus(APP_STATUS.UNAUTHENTICATED);
}, ),
child: Icon(Icons.arrow_back_ios,color: Color(0xFF2B353E),) Column(
children: <Widget>[
), SizedBox(
Container( height: 20,
),
child: Column( authenticationViewModel.user != null && isMoreOption == false
? Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText(
TranslationBase.of(context).welcomeBack,
fontSize:12,
fontWeight: FontWeight.w700,
color: Color(0xFF2B353E),
),
AppText(
Helpers.capitalize(authenticationViewModel.user.doctorName),
fontSize: 24,
color: Color(0xFF2B353E),
fontWeight: FontWeight.bold,
),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
authenticationViewModel.user != null && isMoreOption == false AppText(
? Column( TranslationBase.of(context).accountInfo ,
mainAxisAlignment: fontSize: 16,
MainAxisAlignment.spaceEvenly, color: Color(0xFF2E303A),
crossAxisAlignment: CrossAxisAlignment.start, fontWeight: FontWeight.w600,
children: <Widget>[ ),
SizedBox(
AppText( height: 20,
TranslationBase.of(context).welcomeBack, ),
fontSize:12, Container(
fontWeight: FontWeight.w700, padding: EdgeInsets.all(15),
color: Color(0xFF2B353E), decoration: BoxDecoration(
), color: Colors.white,
AppText( borderRadius: BorderRadius.all(
Helpers.capitalize(authenticationViewModel.user.doctorName), Radius.circular(10),
fontSize: 24,
color: Color(0xFF2B353E),
fontWeight: FontWeight.bold,
),
SizedBox(
height: 20,
),
AppText(
TranslationBase.of(context).accountInfo ,
fontSize: 16,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w600,
),
SizedBox(
height: 20,
), ),
Container( border: Border.all(
padding: EdgeInsets.all(15), color: HexColor('#707070'),
decoration: BoxDecoration( width: 0.1),
color: Colors.white, ),
borderRadius: BorderRadius.all( child: Row(
Radius.circular(10), mainAxisAlignment: MainAxisAlignment.spaceBetween,
), children: <Widget>[
border: Border.all( Column(
color: HexColor('#707070'), children: [
width: 0.1),
), Text(
child: Row( TranslationBase.of(context)
mainAxisAlignment: MainAxisAlignment.spaceBetween, .lastLoginAt,
children: <Widget>[ overflow:
Column( TextOverflow.ellipsis,
children: [ style: TextStyle(
fontFamily: 'Poppins',
Text( fontSize: 16,
TranslationBase.of(context) color: Color(0xFF2E303A),
.lastLoginAt, fontWeight: FontWeight.w700,),
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontFamily: 'Poppins',
fontSize: 16,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700,),
), ),
Row( Row(
children: [ children: [
AppText(
TranslationBase
.of(context)
.verifyWith,
fontSize: 14,
color: Color(0xFF575757),
fontWeight: FontWeight.w600,
),
AppText(
authenticationViewModel.getType(
authenticationViewModel.user
.logInTypeID,
context),
fontSize: 14,
color: Color(0xFF2B353E),
fontWeight: FontWeight.w700,
),
],
)
],
crossAxisAlignment: CrossAxisAlignment.start,),
Column(children: [
AppText( AppText(
authenticationViewModel.user.editedOn != TranslationBase
null .of(context)
? AppDateUtils.getDayMonthYearDateFormatted( .verifyWith,
AppDateUtils.convertStringToDate( fontSize: 14,
authenticationViewModel.user color: Color(0xFF575757),
.editedOn)) fontWeight: FontWeight.w600,
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 13,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700,
), ),
AppText( AppText(
authenticationViewModel.user.editedOn != authenticationViewModel.getType(
null authenticationViewModel.user
? AppDateUtils.getHour( .logInTypeID,
AppDateUtils.convertStringToDate( context),
authenticationViewModel.user
.editedOn))
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getHour(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w600, color: Color(0xFF2B353E),
color: Color(0xFF575757),
)
],
crossAxisAlignment: CrossAxisAlignment.start,
) fontWeight: FontWeight.w700,
], ),
), ],
), )
SizedBox( ],
height: 20, crossAxisAlignment: CrossAxisAlignment.start,),
), Column(children: [
Row(
children: [
AppText( AppText(
"Please Verify", authenticationViewModel.user.editedOn !=
fontSize: 16, null
color: Color(0xFF2B353E), ? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(
authenticationViewModel.user
.editedOn))
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 13,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
), ),
AppText(
authenticationViewModel.user.editedOn !=
null
? AppDateUtils.getHour(
AppDateUtils.convertStringToDate(
authenticationViewModel.user
.editedOn))
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getHour(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 14,
fontWeight: FontWeight.w600,
color: Color(0xFF575757),
)
], ],
) crossAxisAlignment: CrossAxisAlignment.start,
)
],
),
),
SizedBox(
height: 20,
),
Row(
children: [
AppText(
"Please Verify",
fontSize: 16,
color: Color(0xFF2B353E),
fontWeight: FontWeight.w700,
),
], ],
) )
: Column( ],
mainAxisAlignment: )
MainAxisAlignment.spaceEvenly, : Column(
crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment:
children: <Widget>[ MainAxisAlignment.spaceEvenly,
this.onlySMSBox == false crossAxisAlignment: CrossAxisAlignment.start,
? Container( children: <Widget>[
margin: EdgeInsets.only(bottom: 20, top: 30), this.onlySMSBox == false
child: AppText( ? Container(
TranslationBase.of(context) margin: EdgeInsets.only(bottom: 20, top: 30),
.verifyLoginWith, child: AppText(
fontSize: 18, TranslationBase.of(context)
color: Color(0xFF2E303A), .verifyLoginWith,
fontWeight: FontWeight.bold, fontSize: 18,
textAlign: TextAlign.left, color: Color(0xFF2E303A),
), fontWeight: FontWeight.bold,
) textAlign: TextAlign.left,
: AppText( ),
TranslationBase.of(context) )
.verifyFingerprint2, : AppText(
fontSize: TranslationBase.of(context)
SizeConfig.textMultiplier * 2.5, .verifyFingerprint2,
textAlign: TextAlign.start, fontSize:
), SizeConfig.textMultiplier * 2.5,
]), textAlign: TextAlign.start,
authenticationViewModel.user != null && isMoreOption == false ),
? Column( ]),
mainAxisAlignment: MainAxisAlignment.start, authenticationViewModel.user != null && isMoreOption == false
crossAxisAlignment: CrossAxisAlignment.start, ? Column(
children: <Widget>[ mainAxisAlignment: MainAxisAlignment.start,
Row( crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: children: <Widget>[
MainAxisAlignment.center, Row(
children: <Widget>[ mainAxisAlignment:
Expanded( MainAxisAlignment.center,
child: InkWell( children: <Widget>[
onTap: () => Expanded(
{ child: InkWell(
// TODO check this logic it seem it will create bug to us onTap: () =>
authenticateUser( {
AuthMethodTypes // TODO check this logic it seem it will create bug to us
.Fingerprint, true) authenticateUser(
}, AuthMethodTypes
child: VerificationMethodsList( .Fingerprint, true)
authenticationViewModel:authenticationViewModel, },
authMethodType: SelectedAuthMethodTypesService
.getMethodsTypeService(
authenticationViewModel.user
.logInTypeID),
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
)),
),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.MoreOptions,
onShowMore: () {
setState(() {
isMoreOption = true;
});
},
))
]),
])
: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
onlySMSBox == false
? Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.Fingerprint,
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
)),
Expanded(
child: VerificationMethodsList( child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel, authenticationViewModel:authenticationViewModel,
authMethodType: authMethodType: SelectedAuthMethodTypesService
AuthMethodTypes.FaceID, .getMethodsTypeService(
authenticationViewModel.user
.logInTypeID),
authenticateUser: authenticateUser:
(AuthMethodTypes (AuthMethodTypes
authMethodType, authMethodType,
@ -343,48 +289,95 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
authenticateUser( authenticateUser(
authMethodType, authMethodType,
isActive), isActive),
))
],
)
: SizedBox(),
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType: AuthMethodTypes
.SMS,
authenticateUser:
(
AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
)), )),
Expanded( ),
child: VerificationMethodsList( Expanded(
authenticationViewModel:authenticationViewModel, child: VerificationMethodsList(
authMethodType: authenticationViewModel:authenticationViewModel,
AuthMethodTypes.WhatsApp, authMethodType:
authenticateUser: AuthMethodTypes.MoreOptions,
( onShowMore: () {
AuthMethodTypes authMethodType, setState(() {
isActive) => isMoreOption = true;
authenticateUser( });
authMethodType, isActive), },
)) ))
], ]),
), ])
]), : Column(
mainAxisAlignment: MainAxisAlignment.start,
// ) crossAxisAlignment: CrossAxisAlignment.start,
], children: <Widget>[
), onlySMSBox == false
), ? Row(
], mainAxisAlignment:
), MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.Fingerprint,
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
)),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.FaceID,
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
))
],
)
: SizedBox(),
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType: AuthMethodTypes
.SMS,
authenticateUser:
(
AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
)),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.WhatsApp,
authenticateUser:
(
AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
))
],
),
]),
// )
],
),
],
), ),
), ),
), ),

@ -31,7 +31,7 @@ class MethodTypeCard extends StatelessWidget {
), ),
height: 170, height: 170,
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(20, 15, 20, 15), padding: EdgeInsets.fromLTRB(10, 15, 10, 15),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -50,7 +50,7 @@ class MethodTypeCard extends StatelessWidget {
), ),
AppText( AppText(
label, label,
fontSize: 14, fontSize: 12,
color: Color(0xFF2E303A), color: Color(0xFF2E303A),
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
) )

@ -1,6 +1,5 @@
import 'dart:async'; 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/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/auth_method_types.dart'; import 'package:doctor_app_flutter/core/enum/auth_method_types.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@ -48,6 +47,8 @@ class SMSOTP {
String displayTime = ''; String displayTime = '';
bool isClosed = false; bool isClosed = false;
displayDialog(BuildContext context) async { displayDialog(BuildContext context) async {
double dialogWidth = MediaQuery.of(context).size.width * 0.84;
double dialogHeight = MediaQuery.of(context).size.height * 0.50;
return showDialog( return showDialog(
context: context, context: context,
barrierColor: Colors.black.withOpacity(0.7), barrierColor: Colors.black.withOpacity(0.7),
@ -61,209 +62,213 @@ class SMSOTP {
} }
return Container( return Container(
color: Colors.white, color: Colors.white,
height: MediaQuery.of(context).size.height * 0.50, height: dialogHeight,
width: MediaQuery.of(context).size.width * 0.84, width: dialogWidth,
child: Center( child: Center(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.all(13),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
type == AuthMethodTypes.SMS
? Padding(
child: Icon(
DoctorApp.verify_sms_1,
size: 50,
),
padding: EdgeInsets.only(bottom: 20),
)
: Padding(
child: Icon(
DoctorApp.verify_whtsapp,
size: 50,
),
padding: EdgeInsets.only(bottom: 20),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 10, right: 10, bottom: 20),
child: IconButton(
icon: Icon(Icons.close),
iconSize: 40,
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
))
],
)
])),
Padding(
padding: EdgeInsets.only(top: 5, right: 5),
child: AppText(
TranslationBase.of(context).verificationMessage +
' XXXXXX' +
mobileNo
.toString()
.substring(mobileNo.toString().length - 3),
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: 14,
maxLines: 2,
)),
Form(
key: verifyAccountForm,
child: Padding(
padding: EdgeInsets.only(top: 20),
child: Directionality(
textDirection: TextDirection.ltr,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
width: SizeConfig.realScreenWidth * 0.16,
margin: EdgeInsets.all(5),
child: TextFormField(
textInputAction: TextInputAction.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1,
controller: digit1,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD2);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD2);
verifyAccountFormValue['digit1'] =
val.trim();
checkValue();
}
},
),
),
Container(
width: SizeConfig.realScreenWidth * 0.16,
margin: EdgeInsets.all(5),
child: TextFormField(
focusNode: focusD2,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit2,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD3);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD3);
verifyAccountFormValue['digit2'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit),
),
Container(
margin: EdgeInsets.all(5),
width: SizeConfig.realScreenWidth * 0.16,
child: TextFormField(
focusNode: focusD3,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit3,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD4);
verifyAccountFormValue['digit3'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
Container(
margin: EdgeInsets.all(5),
width: SizeConfig.realScreenWidth * 0.16,
child: TextFormField(
focusNode: focusD4,
maxLength: 1,
textAlign: TextAlign.center,
style: buildTextStyle(),
controller: digit4,
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
verifyAccountFormValue['digit4'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
],
)),
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: <Widget>[
AppText( Padding(
TranslationBase.of(context).validationMessage + padding: EdgeInsets.all(13),
' ', child: Row(
fontWeight: FontWeight.w600, mainAxisAlignment: MainAxisAlignment
fontSize: 14, .spaceBetween,
children: [
Padding(
child: Icon(
type == AuthMethodTypes.SMS
? DoctorApp.verify_sms_1
: DoctorApp.verify_whtsapp,
size: dialogWidth * 0.13,
),
padding: EdgeInsets.only(bottom: 20),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 10, right: 10, bottom: 20),
child: IconButton(
icon: Icon(Icons.close),
iconSize: dialogWidth * 0.13,
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
))
],
)
])),
Padding(
padding: EdgeInsets.only(top: 5, right: 5),
child: AppText(
TranslationBase.of(context).verificationMessage +
' XXXXXX' +
mobileNo
.toString()
.substring(mobileNo.toString().length - 3),
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: 14,
maxLines: 2,
)),
Form(
key: verifyAccountForm,
child: Padding(
padding: EdgeInsets.only(top: 20),
child: Directionality(
textDirection: TextDirection.ltr,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
width: (dialogWidth / 4) - 20,
height: 100,
margin: EdgeInsets.all(5),
child: TextFormField(
textInputAction: TextInputAction
.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1,
controller: digit1,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: buildInputDecoration(
context),
onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD2);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD2);
verifyAccountFormValue['digit1'] =
val.trim();
checkValue();
}
},
),
),
Container(
width: dialogWidth / 4 - 30,
margin: EdgeInsets.all(5),
child: TextFormField(
focusNode: focusD2,
textInputAction: TextInputAction
.next,
maxLength: 1,
controller: digit2,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType
.number,
decoration: buildInputDecoration(
context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD3);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD3);
verifyAccountFormValue['digit2'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit),
),
Container(
margin: EdgeInsets.all(5),
width: dialogWidth / 4 - 30,
child: TextFormField(
focusNode: focusD3,
textInputAction: TextInputAction
.next,
maxLength: 1,
controller: digit3,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType
.number,
decoration:
buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD4);
verifyAccountFormValue['digit3'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
Container(
margin: EdgeInsets.all(5),
width: dialogWidth / 4 - 30,
child: TextFormField(
focusNode: focusD4,
maxLength: 1,
textAlign: TextAlign.center,
style: buildTextStyle(),
controller: digit4,
keyboardType: TextInputType
.number,
decoration:
buildInputDecoration(context),
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
verifyAccountFormValue['digit4'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
],
)),
),
), ),
AppText( Padding(
displayTime, padding: const EdgeInsets.all(12.0),
color: Colors.red, child: Column(
textAlign: TextAlign.start, mainAxisAlignment: MainAxisAlignment.start,
fontWeight: FontWeight.bold, crossAxisAlignment: CrossAxisAlignment.start,
fontSize: 14, children: [
AppText(
TranslationBase.of(context).validationMessage +
' ',
fontWeight: FontWeight.w600,
fontSize: 14,
),
AppText(
displayTime,
color: Colors.red,
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: 14,
)
]),
) )
]), ],
) ))),
],
))),
); );
}), }),
); );

Loading…
Cancel
Save