diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart index 508e8590..b05637bc 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart @@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; import 'package:intl/intl.dart'; +import 'package:jiffy/jiffy.dart'; import 'ovulation_result_page.dart'; @@ -22,6 +23,8 @@ class _OvulationPeriodState extends State { int lutealPhaseLength = 0; String selectedDate; var dateFrom = DateTime.now(); + var babyAgeWeeks; + var babyAgeDays; var dateTo = DateTime.now(); var conceivedDate = DateTime.now(); var deliveryDue = DateTime.now(); @@ -78,10 +81,15 @@ class _OvulationPeriodState extends State { bloodSugarDate = date; dateFrom = date.add(Duration(days: 10)); updatedDt = DateFormat.yMMMEd().format(dateFrom); - dateTo = date.add(Duration(days: 20)); conceivedDate = date.add(Duration(days: 14)); deliveryDue = date.add(Duration(days: 280)); + + // babyAge = Jiffy([DateTime.now()]).diff(Jiffy([date]), Units.WEEK); + babyAgeWeeks = Jiffy([DateTime.now().year, DateTime.now().month, DateTime.now().day]) + .diff(Jiffy([date.year, date.month, dateTo.day]), Units.WEEK); + babyAgeDays = Jiffy([DateTime.now().year, DateTime.now().month, DateTime.now().day]) + .diff(Jiffy([date.year, date.month, dateTo.day]), Units.DAY); }); }, currentTime: DateTime.now(), @@ -91,9 +99,7 @@ class _OvulationPeriodState extends State { padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -124,8 +130,7 @@ class _OvulationPeriodState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -146,10 +151,8 @@ class _OvulationPeriodState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -166,8 +169,7 @@ class _OvulationPeriodState extends State { ), onTap: () { setState(() { - if (cycleLength < 45) - cycleLength++; + if (cycleLength < 45) cycleLength++; }); }, ), @@ -179,8 +181,7 @@ class _OvulationPeriodState extends State { ), onTap: () { setState(() { - if (cycleLength > 0) - cycleLength--; + if (cycleLength > 0) cycleLength--; }); }, ), @@ -229,8 +230,7 @@ class _OvulationPeriodState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -245,17 +245,14 @@ class _OvulationPeriodState extends State { children: [ Expanded( child: Center( - child: - Text(lutealPhaseLength.toString()), + child: Text(lutealPhaseLength.toString()), ), ), Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -272,8 +269,7 @@ class _OvulationPeriodState extends State { ), onTap: () { setState(() { - if (lutealPhaseLength < 15) - lutealPhaseLength++; + if (lutealPhaseLength < 15) lutealPhaseLength++; }); }, ), @@ -285,8 +281,7 @@ class _OvulationPeriodState extends State { ), onTap: () { setState(() { - if (lutealPhaseLength > 0) - lutealPhaseLength--; + if (lutealPhaseLength > 0) lutealPhaseLength--; }); }, ), @@ -332,11 +327,13 @@ class _OvulationPeriodState extends State { context, FadePage( page: OvulationResult( - conceivedDate: conceivedDate, - dateFrom: dateFrom, - dateTo: dateTo, - deliveryDue: deliveryDue, - )), + conceivedDate: conceivedDate, + dateFrom: dateFrom, + dateTo: dateTo, + deliveryDue: deliveryDue, + babyAge: babyAgeWeeks, + babyAgeDays: babyAgeDays, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart index 6ced14b2..855e5af7 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart @@ -11,7 +11,17 @@ class OvulationResult extends StatelessWidget { var dateTo; var conceivedDate; var deliveryDue; - OvulationResult({this.dateFrom, this.dateTo, this.deliveryDue, this.conceivedDate}); + var babyAge; + var babyAgeDays; + + OvulationResult({ + this.dateFrom, + this.dateTo, + this.deliveryDue, + this.conceivedDate, + this.babyAge, + this.babyAgeDays, + }); //var newFormat = DateFormat("yy-MM-dd"); @override @@ -68,7 +78,7 @@ class OvulationResult extends StatelessWidget { fontWeight: FontWeight.w400, ), Texts( - '5 Weeks, 2', + babyAge.toString() + " Weeks," + "2", fontWeight: FontWeight.w800, fontSize: 21.0, ), diff --git a/pubspec.yaml b/pubspec.yaml index cd1f5a12..1f0f6880 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -148,6 +148,8 @@ dependencies: #Handle Geolocation geolocator: ^6.1.10 + jiffy: ^3.0.0 + screen: ^0.0.5 #google maps places google_maps_place_picker: ^1.0.0