aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-10 15:33:52 -0700
committerGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-10 15:33:52 -0700
commit8245433d7f7cc4a8aecf18985812b62e46b92ca0 (patch)
tree4015454b596ed8a1f6f32ee640e6688b8daaf21d /frontend
parentRefactor SettingsViewModel to use SharedPreferencesService (diff)
downloadAuto-GPT-8245433d7f7cc4a8aecf18985812b62e46b92ca0.tar.gz
Auto-GPT-8245433d7f7cc4a8aecf18985812b62e46b92ca0.tar.bz2
Auto-GPT-8245433d7f7cc4a8aecf18985812b62e46b92ca0.zip
Refactor TaskViewModel to use SharedPreferencesService
Diffstat (limited to 'frontend')
-rw-r--r--frontend/lib/main.dart8
-rw-r--r--frontend/lib/viewmodels/task_viewmodel.dart11
2 files changed, 12 insertions, 7 deletions
diff --git a/frontend/lib/main.dart b/frontend/lib/main.dart
index 2bf634693..452aacb34 100644
--- a/frontend/lib/main.dart
+++ b/frontend/lib/main.dart
@@ -102,8 +102,12 @@ class MyApp extends StatelessWidget {
create: (context) => ChatViewModel(
Provider.of<ChatService>(context, listen: false))),
ChangeNotifierProvider(
- create: (context) => TaskViewModel(
- Provider.of<TaskService>(context, listen: false))),
+ create: (context) => TaskViewModel(
+ Provider.of<TaskService>(context, listen: false),
+ Provider.of<SharedPreferencesService>(context,
+ listen: false),
+ ),
+ ),
ChangeNotifierProvider(
create: (context) => SkillTreeViewModel()),
ChangeNotifierProvider(
diff --git a/frontend/lib/viewmodels/task_viewmodel.dart b/frontend/lib/viewmodels/task_viewmodel.dart
index b08047406..94d8bf94d 100644
--- a/frontend/lib/viewmodels/task_viewmodel.dart
+++ b/frontend/lib/viewmodels/task_viewmodel.dart
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:auto_gpt_flutter_client/models/task.dart';
import 'package:auto_gpt_flutter_client/models/test_suite.dart';
+import 'package:auto_gpt_flutter_client/services/shared_preferences_service.dart';
import 'package:flutter/foundation.dart';
import 'package:collection/collection.dart';
import 'package:auto_gpt_flutter_client/services/task_service.dart';
@@ -10,6 +11,7 @@ import 'package:shared_preferences/shared_preferences.dart';
// TODO: How will all these functions work with test suites?
class TaskViewModel with ChangeNotifier {
final TaskService _taskService;
+ final SharedPreferencesService _prefsService;
List<Task> _tasks = [];
List<TestSuite> _testSuites = [];
@@ -19,7 +21,7 @@ class TaskViewModel with ChangeNotifier {
Task? _selectedTask;
TestSuite? _selectedTestSuite;
- TaskViewModel(this._taskService);
+ TaskViewModel(this._taskService, this._prefsService);
/// Returns the currently selected task.
Task? get selectedTask => _selectedTask;
@@ -107,10 +109,9 @@ class TaskViewModel with ChangeNotifier {
// Helper method to save test suites to SharedPreferences
Future<void> _saveTestSuitesToPrefs() async {
- final prefs = await SharedPreferences.getInstance();
final testSuitesToStore =
_testSuites.map((testSuite) => jsonEncode(testSuite.toJson())).toList();
- prefs.setStringList('testSuites', testSuitesToStore);
+ await _prefsService.setStringList('testSuites', testSuitesToStore);
}
// Adds a new test suite and saves it to SharedPreferences
@@ -123,8 +124,8 @@ class TaskViewModel with ChangeNotifier {
// Fetch test suites from SharedPreferences
Future<void> fetchTestSuites() async {
- final prefs = await SharedPreferences.getInstance();
- final storedTestSuites = prefs.getStringList('testSuites') ?? [];
+ final storedTestSuites =
+ await _prefsService.getStringList('testSuites') ?? [];
_testSuites = storedTestSuites
.map((testSuiteMap) => TestSuite.fromJson(jsonDecode(testSuiteMap)))
.toList();