Commit 0dfb6c3

derdilla <derdilla06@gmail.com>
2023-07-12 00:37:12
implement new intervall options
1 parent e80c9f6
lib/components/display_interval_picker.dart
@@ -29,6 +29,11 @@ class IntervalPicker extends StatelessWidget {
         case TimeStep.lifetime:
           intervallDisplay =  const Text('-');
           break;
+        case TimeStep.last7Days:
+        case TimeStep.last30Days:
+          final f = DateFormat.MMMd(AppLocalizations.of(context)!.localeName);
+          intervallDisplay = Text('${f.format(settings.displayDataStart)} - ${f.format(settings.displayDataEnd)}');
+          break;
         default:
           assert(false);
           intervallDisplay =  const Text('-');
lib/components/measurement_graph.dart
@@ -101,6 +101,7 @@ class _LineChartState extends State<_LineChart> {
                                         formatter = DateFormat('H:m');
                                         break;
                                       case TimeStep.month:
+                                      case TimeStep.last7Days:
                                         formatter = DateFormat('d');
                                         break;
                                       case TimeStep.week:
@@ -111,6 +112,9 @@ class _LineChartState extends State<_LineChart> {
                                         break;
                                       case TimeStep.lifetime:
                                         formatter = DateFormat('yyyy');
+                                        break;
+                                      case TimeStep.last30Days:
+                                        formatter = DateFormat.MMMd();
                                     }
                                     return Text(formatter
                                         .format(DateTime.fromMillisecondsSinceEpoch(pos.toInt())));
lib/model/settings_store.dart
@@ -65,6 +65,7 @@ class Settings extends ChangeNotifier {
         displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep);
         break;
       case TimeStep.week:
+      case TimeStep.last7Days:
         displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep * 7);
         displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep * 7);
         break;
@@ -80,6 +81,9 @@ class Settings extends ChangeNotifier {
         displayDataStart = DateTime.fromMillisecondsSinceEpoch(0);
         displayDataEnd = DateTime.now();
         break;
+      case TimeStep.last30Days:
+        displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep * 30);
+        displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep * 30);
     }
   }
 
@@ -101,6 +105,12 @@ class Settings extends ChangeNotifier {
       case TimeStep.lifetime:
         final start = DateTime.fromMillisecondsSinceEpoch(0);
         return [start, now];
+      case TimeStep.last7Days:
+        final start = now.copyWith(day: now.day-7);
+        return [start, now];
+      case TimeStep.last30Days:
+        final start = now.copyWith(day: now.day-30);
+        return [start, now];
       default:
         assert(false);
         final start = DateTime.fromMillisecondsSinceEpoch(0);
@@ -456,7 +466,6 @@ class TimeStep {
         return AppLocalizations.of(context)!.last7Days;
       case last30Days:
         return AppLocalizations.of(context)!.last30Days;
-        //  TODO: implement
     }
     assert(false);
     return '-';