Commit 11ec054

derdilla <derdilla06@gmail.com>
2023-05-19 17:42:17
add week scale step uption
1 parent 169797a
Changed files (2)
lib/components/measurement_graph.dart
@@ -83,6 +83,9 @@ class _LineChart extends StatelessWidget {
                                                         case TimeStep.month:
                                                           formater = DateFormat('d');
                                                           break;
+                                                        case TimeStep.week:
+                                                          formater = DateFormat('E');
+                                                          break;
                                                         case TimeStep.year:
                                                           formater = DateFormat('MMM');
                                                           break;
@@ -171,6 +174,10 @@ class MeasurementGraph extends StatelessWidget {
         settings.displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep);
         settings.displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep);
         break;
+      case TimeStep.week:
+        settings.displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep * 7);
+        settings.displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep * 7);
+        break;
       case TimeStep.month:
         settings.displayDataStart = oldStart.copyWith(month: oldStart.month + directionalStep);
         settings.displayDataEnd = oldEnd.copyWith(month: oldEnd.month + directionalStep);
@@ -228,6 +235,10 @@ class MeasurementGraph extends StatelessWidget {
                                     settings.displayDataStart = DateTime(now.year, now.month, now.day);
                                     settings.displayDataEnd = settings.displayDataStart.copyWith(day: now.day + 1);
                                     break;
+                                  case TimeStep.week:
+                                    settings.displayDataStart = DateTime(now.year, now.month, DateTime.monday);
+                                    settings.displayDataEnd = settings.displayDataStart.copyWith(day: DateTime.sunday);
+                                    break;
                                   case TimeStep.month:
                                     settings.displayDataStart = DateTime(now.year, now.month);
                                     settings.displayDataEnd = settings.displayDataStart.copyWith(month: now.month + 1);
lib/model/settings_store.dart
@@ -1,4 +1,3 @@
-import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
@@ -6,7 +5,7 @@ class Settings extends ChangeNotifier {
   late final SharedPreferences _prefs;
 
   Settings._create();
-  // factory method, to allow for async contructor
+  // factory method, to allow for async constructor
   static Future<Settings> create() async {
     final component = Settings._create();
     component._prefs = await SharedPreferences.getInstance();
@@ -131,12 +130,13 @@ class Settings extends ChangeNotifier {
 }
 
 class TimeStep {
-  static const options = [0, 1, 2, 3];
+  static const options = [0, 4, 1, 2, 3];
 
   static const day = 0;
   static const month = 1;
   static const year = 2;
   static const lifetime = 3;
+  static const week = 4;
 
   TimeStep._create();
 
@@ -150,6 +150,8 @@ class TimeStep {
         return 'year';
       case lifetime:
         return 'lifetime';
+      case week:
+        return 'week';
     }
     return 'invalid';
   }