Skip to content

Commit 8245433

Browse files
committed
Refactor TaskViewModel to use SharedPreferencesService
1 parent 8972132 commit 8245433

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

frontend/lib/main.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,12 @@ class MyApp extends StatelessWidget {
102102
create: (context) => ChatViewModel(
103103
Provider.of<ChatService>(context, listen: false))),
104104
ChangeNotifierProvider(
105-
create: (context) => TaskViewModel(
106-
Provider.of<TaskService>(context, listen: false))),
105+
create: (context) => TaskViewModel(
106+
Provider.of<TaskService>(context, listen: false),
107+
Provider.of<SharedPreferencesService>(context,
108+
listen: false),
109+
),
110+
),
107111
ChangeNotifierProvider(
108112
create: (context) => SkillTreeViewModel()),
109113
ChangeNotifierProvider(

frontend/lib/viewmodels/task_viewmodel.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:convert';
22
import 'package:auto_gpt_flutter_client/models/task.dart';
33
import 'package:auto_gpt_flutter_client/models/test_suite.dart';
4+
import 'package:auto_gpt_flutter_client/services/shared_preferences_service.dart';
45
import 'package:flutter/foundation.dart';
56
import 'package:collection/collection.dart';
67
import 'package:auto_gpt_flutter_client/services/task_service.dart';
@@ -10,6 +11,7 @@ import 'package:shared_preferences/shared_preferences.dart';
1011
// TODO: How will all these functions work with test suites?
1112
class TaskViewModel with ChangeNotifier {
1213
final TaskService _taskService;
14+
final SharedPreferencesService _prefsService;
1315

1416
List<Task> _tasks = [];
1517
List<TestSuite> _testSuites = [];
@@ -19,7 +21,7 @@ class TaskViewModel with ChangeNotifier {
1921
Task? _selectedTask;
2022
TestSuite? _selectedTestSuite;
2123

22-
TaskViewModel(this._taskService);
24+
TaskViewModel(this._taskService, this._prefsService);
2325

2426
/// Returns the currently selected task.
2527
Task? get selectedTask => _selectedTask;
@@ -107,10 +109,9 @@ class TaskViewModel with ChangeNotifier {
107109

108110
// Helper method to save test suites to SharedPreferences
109111
Future<void> _saveTestSuitesToPrefs() async {
110-
final prefs = await SharedPreferences.getInstance();
111112
final testSuitesToStore =
112113
_testSuites.map((testSuite) => jsonEncode(testSuite.toJson())).toList();
113-
prefs.setStringList('testSuites', testSuitesToStore);
114+
await _prefsService.setStringList('testSuites', testSuitesToStore);
114115
}
115116

116117
// Adds a new test suite and saves it to SharedPreferences
@@ -123,8 +124,8 @@ class TaskViewModel with ChangeNotifier {
123124

124125
// Fetch test suites from SharedPreferences
125126
Future<void> fetchTestSuites() async {
126-
final prefs = await SharedPreferences.getInstance();
127-
final storedTestSuites = prefs.getStringList('testSuites') ?? [];
127+
final storedTestSuites =
128+
await _prefsService.getStringList('testSuites') ?? [];
128129
_testSuites = storedTestSuites
129130
.map((testSuiteMap) => TestSuite.fromJson(jsonDecode(testSuiteMap)))
130131
.toList();

0 commit comments

Comments
 (0)