diff --git a/lib/pages/insurance/insurance_card_screen.dart b/lib/pages/insurance/insurance_card_screen.dart index da66c572..cf58e815 100644 --- a/lib/pages/insurance/insurance_card_screen.dart +++ b/lib/pages/insurance/insurance_card_screen.dart @@ -6,7 +6,7 @@ import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; +import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -33,26 +33,41 @@ class _InsuranceCardState extends State { @override Widget build(BuildContext context) { imagesInfo.add(ImagesInfo( - imageEn: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png', - imageAr: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png')); + imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png')); return BaseView( onModelReady: (model) => model.getInsurance(), - builder: (BuildContext context, InsuranceViewModel model, Widget child) => - AppScaffold( + builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( isShowAppBar: true, baseViewModel: model, + showHomeAppBarIcon: false, appBarTitle: TranslationBase.of(context).insuranceCards, description: TranslationBase.of(context).infoInsuranceCards, infoList: TranslationBase.of(context).infoInsuranceCardsPoints, imagesInfo: imagesInfo, + appBarIcons: [ + IconButton( + padding: EdgeInsets.zero, + icon: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), + margin: EdgeInsets.only(right: 8), + padding: EdgeInsets.only(right: 4, left: 4), + child: Image.asset( + 'assets/images/medical/insurance_update_icon_.png', + height: SizeConfig.heightMultiplier * 5, + width: SizeConfig.heightMultiplier * 5, + ), + ), + onPressed: () { + Navigator.push(context, FadePage(page: InsuranceUpdate())); + }, + ), + ], body: Container( - margin: EdgeInsets.only( - left: SizeConfig.screenWidth * 0.004, - right: SizeConfig.screenWidth * 0.004, - top: SizeConfig.screenWidth * 0.04), + margin: EdgeInsets.only(left: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004, top: SizeConfig.screenWidth * 0.04), child: ListView.builder( itemCount: model.insurance == null ? 0 : model.insurance.length, itemBuilder: (BuildContext context, int index) { @@ -82,23 +97,16 @@ class _InsuranceCardState extends State { Container( padding: EdgeInsets.all(14), width: double.infinity, - decoration: BoxDecoration( - shape: BoxShape.rectangle, - border: Border.all( - color: Colors.grey, width: 0.2), - borderRadius: - BorderRadius.all(Radius.circular(2)), - boxShadow: [ - BoxShadow( - color: Colors.white70, - ), - ]), + decoration: BoxDecoration(shape: BoxShape.rectangle, border: Border.all(color: Colors.grey, width: 0.2), borderRadius: BorderRadius.all(Radius.circular(2)), boxShadow: [ + BoxShadow( + color: Colors.white70, + ), + ]), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( - TranslationBase.of(context).companyName + - model.insurance[index].companyName, + TranslationBase.of(context).companyName + model.insurance[index].companyName, fontSize: 20.0, fontWeight: FontWeight.w700, ), @@ -108,93 +116,46 @@ class _InsuranceCardState extends State { thickness: 0.5, ), Column( - crossAxisAlignment: - CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .category, - fontSize: 18.5), - Texts( - model.insurance[index] - .subCategoryDesc, - fontSize: 18.5) - ], + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [Texts(TranslationBase.of(context).category, fontSize: 18.5), Texts(model.insurance[index].subCategoryDesc, fontSize: 18.5)], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts( - TranslationBase.of(context) - .expirationDate, - fontSize: 18.5), + Texts(TranslationBase.of(context).expirationDate, fontSize: 18.5), Texts( convertDateFormat( - model.insurance[index] - .cardValidTo, + model.insurance[index].cardValidTo, ), fontSize: 18.5), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts( - TranslationBase.of(context) - .status + - ": ", - fontSize: 18.5), - model.insurance[index].isActive == - true - ? Texts( - TranslationBase.of(context) - .activeInsurence, - color: Colors.green, - fontWeight: FontWeight.w900, - fontSize: 17.9) - : Texts( - TranslationBase.of(context) - .notActive, - color: Colors.red, - fontWeight: FontWeight.w900, - fontSize: 17.9) + Texts(TranslationBase.of(context).status + ": ", fontSize: 18.5), + model.insurance[index].isActive == true + ? Texts(TranslationBase.of(context).activeInsurence, color: Colors.green, fontWeight: FontWeight.w900, fontSize: 17.9) + : Texts(TranslationBase.of(context).notActive, color: Colors.red, fontWeight: FontWeight.w900, fontSize: 17.9) ], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .patientCard, - fontSize: 18.5), - Texts( - model.insurance[index] - .patientCardID, - fontSize: 18.5) - ], + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [Texts(TranslationBase.of(context).patientCard, fontSize: 18.5), Texts(model.insurance[index].patientCardID, fontSize: 18.5)], ), - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .policyNumber, - fontSize: 18.5, - ), - Texts( - model.insurance[index] - .insurancePolicyNumber, - fontSize: 18.5, - ) - ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + Texts( + TranslationBase.of(context).policyNumber, + fontSize: 18.5, + ), + Texts( + model.insurance[index].insurancePolicyNumber, + fontSize: 18.5, + ) + ]), ], ), SizedBox( @@ -204,11 +165,8 @@ class _InsuranceCardState extends State { Container( color: Colors.transparent, child: SecondaryButton( - onTap: () => { - getDetails(model.insurance[index]) - }, - label: TranslationBase.of(context) - .seeDetails, + onTap: () => {getDetails(model.insurance[index])}, + label: TranslationBase.of(context).seeDetails, textColor: Colors.white, ), width: double.infinity, @@ -235,23 +193,16 @@ class _InsuranceCardState extends State { final startIndex = exDate.indexOf(start); final endIndex = exDate.indexOf(end, startIndex + start.length); - var date = new DateTime.fromMillisecondsSinceEpoch( - int.parse(exDate.substring(startIndex + start.length, endIndex))); - String newDate = date.year.toString() + - "-" + - date.month.toString().padLeft(2, '0') + - "-" + - date.day.toString().padLeft(2, '0'); + var date = new DateTime.fromMillisecondsSinceEpoch(int.parse(exDate.substring(startIndex + start.length, endIndex))); + String newDate = date.year.toString() + "-" + date.month.toString().padLeft(2, '0') + "-" + date.day.toString().padLeft(2, '0'); return newDate.toString(); } getDetails(data) { GifLoaderDialogUtils.showMyDialog(context); - _insuranceCardService.getInsuranceDetails(data).then((value) => { - GifLoaderDialogUtils.hideDialog(context), - Navigator.push(context, - FadePage(page: InsuranceCardDetails(data: value[0]['CheckList']))) - }); + _insuranceCardService + .getInsuranceDetails(data) + .then((value) => {GifLoaderDialogUtils.hideDialog(context), Navigator.push(context, FadePage(page: InsuranceCardDetails(data: value[0]['CheckList'])))}); } } diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 1412adf6..64dd8c27 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -95,7 +95,8 @@ class AppScaffold extends StatelessWidget { Widget build(BuildContext context) { AppGlobal.context = context; return Scaffold( - backgroundColor: backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, + backgroundColor: + backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, appBar: isShowAppBar ? appBar = AppBarWidget( appBarTitle: appBarTitle, @@ -112,19 +113,21 @@ class AppScaffold extends StatelessWidget { body: SafeArea( top: true, bottom: true, - child: (!Provider.of(context, listen: false).isLogin && isShowDecPage) - ? NotAutPage( - title: title ?? appBarTitle, - description: description, - infoList: infoList, - imagesInfo: imagesInfo, - ) - : baseViewModel != null - ? NetworkBaseView( - child: buildBodyWidget(context), - baseViewModel: baseViewModel, + child: + (!Provider.of(context, listen: false).isLogin && + isShowDecPage) + ? NotAutPage( + title: title ?? appBarTitle, + description: description, + infoList: infoList, + imagesInfo: imagesInfo, ) - : buildBodyWidget(context), + : baseViewModel != null + ? NetworkBaseView( + child: buildBodyWidget(context), + baseViewModel: baseViewModel, + ) + : buildBodyWidget(context), ), floatingActionButton: floatingActionButton, ); @@ -135,12 +138,14 @@ class AppScaffold extends StatelessWidget { } buildBodyWidget(context) { - return Stack(children: [body, isHelp == true ? RobotIcon() : Container()]); + return Stack( + children: [body, isHelp == true ? RobotIcon() : Container()]); } } class AppBarWidget extends StatefulWidget with PreferredSizeWidget { - final AuthenticatedUserObject authenticatedUserObject = locator(); + final AuthenticatedUserObject authenticatedUserObject = + locator(); final String appBarTitle; final bool showHomeAppBarIcon; @@ -188,12 +193,22 @@ class AppBarWidgetState extends State { ProjectViewModel projectViewModel = Provider.of(context); return AppBar( elevation: 0, - backgroundColor: widget.isPharmacy ? Colors.green : Theme.of(context).appBarTheme.color, + backgroundColor: widget.isPharmacy + ? Colors.green + : Theme.of(context).appBarTheme.color, textTheme: TextTheme( - headline6: TextStyle(color: Theme.of(context).textTheme.headline1.color, fontWeight: FontWeight.bold), + headline6: TextStyle( + color: Theme.of(context).textTheme.headline1.color, + fontWeight: FontWeight.bold), ), - title: Text(widget.authenticatedUserObject.isLogin || !widget.isShowDecPage ? widget.appBarTitle.toUpperCase() : TranslationBase.of(context).serviceInformationTitle, - style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).textTheme.headline1.color, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), + title: Text( + widget.authenticatedUserObject.isLogin || !widget.isShowDecPage + ? widget.appBarTitle.toUpperCase() + : TranslationBase.of(context).serviceInformationTitle, + style: TextStyle( + fontWeight: FontWeight.bold, + color: Theme.of(context).textTheme.headline1.color, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), leading: Builder( builder: (BuildContext context) { return ArrowBack(); @@ -203,7 +218,9 @@ class AppBarWidgetState extends State { actions: [ (widget.isPharmacy && widget.showPharmacyCart) ? IconButton( - icon: Badge(badgeContent: Text(badgeText), child: Icon(Icons.shopping_cart)), + icon: Badge( + badgeContent: Text(badgeText), + child: Icon(Icons.shopping_cart)), color: Colors.white, onPressed: () { Navigator.of(context).popUntil(ModalRoute.withName('/')); @@ -215,7 +232,10 @@ class AppBarWidgetState extends State { position: BadgePosition.topStart(top: -15, start: -10), badgeContent: Text( badgeText, - style: TextStyle(fontSize: 9, color: Colors.white, fontWeight: FontWeight.normal), + style: TextStyle( + fontSize: 9, + color: Colors.white, + fontWeight: FontWeight.normal), ), child: Icon(Icons.shopping_cart)), color: Colors.white, @@ -229,7 +249,10 @@ class AppBarWidgetState extends State { icon: Icon(FontAwesomeIcons.home), color: Colors.white, onPressed: () { - Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LandingPage()), (Route r) => false); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => LandingPage()), + (Route r) => false); // Cart Click Event if (_onCartClick != null) _onCartClick(); @@ -293,11 +316,18 @@ class _RobotIcon extends State { ], ), child: TyperAnimatedTextKit( - text: Provider.of(context, listen: false).isArabic == true + text: Provider.of(context, + listen: false) + .isArabic == + true ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file.", - textLength: Provider.of(context, listen: false).isArabic == true - ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي.".length + textLength: Provider.of(context, + listen: false) + .isArabic == + true + ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." + .length : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file." .length)) : Container(),