From cffd71582402b38790e7e0bd011903f36727b74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 11:12:50 -0400 Subject: [PATCH 1/8] refactor: Implement startTime as field in manager refactor: Implement startTime as field in manager improve: Define startTime field in manager refactor: Fix setting startTime refactor: Make startTime private Can be squashed into previous commits --- lib/src/digit_span_task/components/activity/activity_view.dart | 2 +- lib/src/digit_span_task/components/data/data_manager.dart | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/digit_span_task/components/activity/activity_view.dart b/lib/src/digit_span_task/components/activity/activity_view.dart index 3cff41a..13bf201 100644 --- a/lib/src/digit_span_task/components/activity/activity_view.dart +++ b/lib/src/digit_span_task/components/activity/activity_view.dart @@ -20,7 +20,7 @@ class ActivityView extends StatelessWidget { @override Widget build(BuildContext context) { - data.addStartTime(_config.isPractice); + data.startTime = DateTime.now(); return Obx(() { switch (mDigits.taskStep.value) { case TaskStep.instructions: diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index c6108fd..554b00b 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -11,6 +11,7 @@ import 'package:digit_span_tasks/src/digit_span_task/components/data/data_model. class DataManager extends GetxController { final InMemoryDB db = InMemoryDB(); final DSConfig _config = Get.find(); + late final DateTime _startTime; DataModel practiceData = DataModel(); DataModel experimentalData = DataModel(); From 750329a23e36481c8c165726461c019feea44db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 11:20:24 -0400 Subject: [PATCH 2/8] refactor: Remove addStartTime method startTime will be set directly on the field. --- lib/src/digit_span_task/components/data/data_manager.dart | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index 554b00b..0c042e1 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -30,13 +30,6 @@ class DataManager extends GetxController { data.trialData.add(trialData); } - /// Adds the time at which the session started for the current - /// phase (practice or experimental) based on the [isPractice] flag. - void addStartTime(bool isPractice) { - DataModel data = getData(isPractice); - data.sessionData.startTime = DateTime.now(); - } - /// Adds the time at which the session ended for the current /// phase (practice or experimental) based on the [isPractice] flag. void addEndTime(bool isPractice) { From fe5bc4538f5cc48e7eea891ee1109d1734dd794d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 11:46:45 -0400 Subject: [PATCH 3/8] refactor: Implement setter for startTime refactor: Implement setter for startTime refactor: Use new startTime setter --- lib/src/digit_span_task/components/data/data_manager.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index 0c042e1..216397f 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -30,6 +30,12 @@ class DataManager extends GetxController { data.trialData.add(trialData); } + set startTime(DateTime time) { + if (_config.isPractice) { + _startTime = time; + } + } + /// Adds the time at which the session ended for the current /// phase (practice or experimental) based on the [isPractice] flag. void addEndTime(bool isPractice) { From 6c71045fc32d1bfea433d5c366f6a61c580a42e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 12:13:09 -0400 Subject: [PATCH 4/8] doc: Add docstring to startTime setter --- lib/src/digit_span_task/components/data/data_manager.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index 216397f..e8c46be 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -30,6 +30,10 @@ class DataManager extends GetxController { data.trialData.add(trialData); } + /// Sets the start time for the session, but only if this is a practice phase. + /// Practice and experimental phases are considered part of the same session + /// so the start time for the practice phase is considered the beginning of + /// the session. set startTime(DateTime time) { if (_config.isPractice) { _startTime = time; From 33e5fa97d5f32ca2d107df3103a3327ab09516d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 11:18:49 -0400 Subject: [PATCH 5/8] improve: Implement endTime as field in manager improve: Implement endTime as field in manager improve: Implement endTime as field in manager improve: Implement endTime as field in manager improve: Define endTime field in manager refactor: Fix setting endTime refactor: Make endTime private maint: Remove empty lines lint: Remove empty line --- .../components/activity/activity_controller.dart | 2 +- lib/src/digit_span_task/components/data/data_manager.dart | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/digit_span_task/components/activity/activity_controller.dart b/lib/src/digit_span_task/components/activity/activity_controller.dart index 2d5923b..301369c 100644 --- a/lib/src/digit_span_task/components/activity/activity_controller.dart +++ b/lib/src/digit_span_task/components/activity/activity_controller.dart @@ -47,7 +47,7 @@ class ActivityController extends GetxController { } Future endSession() async { - _data.addEndTime(_config.isPractice); + _data.endTime = DateTime.now(); await reset(); Get.back(); } diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index e8c46be..d56bd75 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -12,6 +12,7 @@ class DataManager extends GetxController { final InMemoryDB db = InMemoryDB(); final DSConfig _config = Get.find(); late final DateTime _startTime; + late final DateTime _endTime; DataModel practiceData = DataModel(); DataModel experimentalData = DataModel(); From 6621b6ed6b8fbbe561fc9dde5d27c51afd442753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 11:21:38 -0400 Subject: [PATCH 6/8] refactor: Remove addEndTime method endTime will be set directly in the field. --- lib/src/digit_span_task/components/data/data_manager.dart | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index d56bd75..88bf90a 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -41,13 +41,6 @@ class DataManager extends GetxController { } } - /// Adds the time at which the session ended for the current - /// phase (practice or experimental) based on the [isPractice] flag. - void addEndTime(bool isPractice) { - DataModel data = getData(isPractice); - data.sessionData.endTime = DateTime.now(); - } - /// Exports the data collected during the session. /// Returns a custom object named [DigitSpanTasksData] that includes data for the /// practice and experimental phase. From 276bf236ac56195cc101209c4bedac35d926ae25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 12:01:01 -0400 Subject: [PATCH 7/8] refactor: Implement setter for endTime refactor: Implement setter for endTime refactor: Use new endTime setter --- lib/src/digit_span_task/components/data/data_manager.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index 88bf90a..1a391bf 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -41,6 +41,12 @@ class DataManager extends GetxController { } } + set endTime(DateTime time) { + if (!_config.isPractice) { + _endTime = DateTime.now(); + } + } + /// Exports the data collected during the session. /// Returns a custom object named [DigitSpanTasksData] that includes data for the /// practice and experimental phase. From 4c7ef88928c4f407356d558469f368216f7ea796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20E=2E=20Bermonti-P=C3=A9rez?= Date: Sun, 25 Feb 2024 12:13:30 -0400 Subject: [PATCH 8/8] doc: Add docstring to endTime setter --- lib/src/digit_span_task/components/data/data_manager.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/src/digit_span_task/components/data/data_manager.dart b/lib/src/digit_span_task/components/data/data_manager.dart index 1a391bf..1653b3b 100644 --- a/lib/src/digit_span_task/components/data/data_manager.dart +++ b/lib/src/digit_span_task/components/data/data_manager.dart @@ -41,6 +41,10 @@ class DataManager extends GetxController { } } + /// Sets the end time for the session, but only if this is a experimental + /// phase. Practice and experimental phases are considered part of the same + /// session so the end time for the experimental phase is considered the + /// end of the session. set endTime(DateTime time) { if (!_config.isPractice) { _endTime = DateTime.now();