diff --git a/app/lib/core/measurementStats.dart b/app/lib/core/measurementStats.dart index 44a42d8..39a742b 100644 --- a/app/lib/core/measurementStats.dart +++ b/app/lib/core/measurementStats.dart @@ -63,7 +63,10 @@ class MeasurementStats { int get nMeasurements => ip.NMeasurements; /// get current streak - Duration get currentStreak => Duration(days: streakList.last.round()); + Duration get currentStreak => + db.lastDate.sameDay(DateTime.now()) + ? Duration(days: streakList.last.round()) + : Duration.zero; /// get max streak Duration get maxStreak => Duration(days: streakList.max().round()); @@ -73,18 +76,13 @@ class MeasurementStats { Vector get streakList => _streakList ??= _estimateStreakList(); Vector _estimateStreakList() { int streak = 0; - final List streakList = [0]; - for (int i = 0; i < ip.isMeasurement.length; i++) { - if (DateTime.fromMillisecondsSinceEpoch(ip.times[i].toInt()).day - <= DateTime.now().day + 1) { - final bool isMS = ip.isMeasurement[i].round() == 1; + final List streakList = [0]; // catch for no measurements + for (final double isMS in ip.isMeasurement) { + if (isMS.round() == 1) { streak++; - if (!isMS) { - if ((streakList.last > 0) | (streak >= 2)) { - streakList.add(streak - 1); - } - streak = 0; - } + } else if (streak > 0) { + streakList.add(streak); + streak = 0; } } return Vector.fromList(streakList); diff --git a/app/lib/pages/settings.dart b/app/lib/pages/settings.dart index 9564da8..6a59971 100644 --- a/app/lib/pages/settings.dart +++ b/app/lib/pages/settings.dart @@ -833,7 +833,6 @@ class _Settings extends State { ), const LanguageListTile(), const UnitsListTile(), - const InterpolationListTile(), const FirstDayListTile(), const DatePrintListTile(), Divider( diff --git a/app/lib/widget/addWeightDialog.dart b/app/lib/widget/addWeightDialog.dart index 634336d..cbf3cf6 100644 --- a/app/lib/widget/addWeightDialog.dart +++ b/app/lib/widget/addWeightDialog.dart @@ -110,9 +110,9 @@ Future showAddWeightDialog({ return; } currentDate = DateTime( - date.year, - date.month, - date.day, + currentDate.year, + currentDate.month, + currentDate.day, time.hour, time.minute, );