Skip to content

Commit 5193d44

Browse files
feat: load tasks from Db anad sync tasks on init if enabled
1 parent 0942a26 commit 5193d44

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

lib/app/modules/home/controllers/home_controller.dart

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import 'package:taskwarrior/app/tour/filter_drawer_tour.dart';
2323
import 'package:taskwarrior/app/tour/home_page_tour.dart';
2424
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
2525
import 'package:taskwarrior/app/utils/language/supported_language.dart';
26+
import 'package:taskwarrior/app/utils/taskchampion/taskchampion.dart';
2627
import 'package:taskwarrior/app/utils/taskfunctions/comparator.dart';
2728
import 'package:taskwarrior/app/utils/taskfunctions/projects.dart';
2829
import 'package:taskwarrior/app/utils/taskfunctions/query.dart';
@@ -50,6 +51,7 @@ class HomeController extends GetxController {
5051
final Rx<SupportedLanguage> selectedLanguage = SupportedLanguage.english.obs;
5152
final ScrollController scrollController = ScrollController();
5253
final RxBool showbtn = false.obs;
54+
var tasks = <Tasks>[].obs;
5355

5456
@override
5557
void onInit() {
@@ -69,6 +71,7 @@ class HomeController extends GetxController {
6971
}
7072
getUniqueProjects();
7173
_loadTaskChampion();
74+
fetchTasksFromDB();
7275
}
7376

7477
Future<List<String>> getUniqueProjects() async {
@@ -78,6 +81,28 @@ class HomeController extends GetxController {
7881
return uniqueProjects;
7982
}
8083

84+
Future<void> deleteAllTasksInDB() async {
85+
var taskDatabase = TaskDatabase();
86+
await taskDatabase.deleteAllTasksInDB();
87+
debugPrint('Deleted all tasks from db');
88+
}
89+
90+
Future<void> refreshTasks(String clientId, String encryptionSecret) async {
91+
TaskDatabase taskDatabase = TaskDatabase();
92+
await taskDatabase.open();
93+
List<Tasks> tasksFromServer = await fetchTasks(clientId, encryptionSecret);
94+
await updateTasksInDatabase(tasksFromServer);
95+
List<Tasks> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
96+
tasks.value = fetchedTasks;
97+
}
98+
99+
Future<void> fetchTasksFromDB() async {
100+
TaskDatabase taskDatabase = TaskDatabase();
101+
await taskDatabase.open();
102+
List<Tasks> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
103+
tasks.value = fetchedTasks;
104+
}
105+
81106
Future<void> _loadTaskChampion() async {
82107
final SharedPreferences prefs = await SharedPreferences.getInstance();
83108
taskchampion.value = prefs.getBool('taskchampion') ?? false;
@@ -440,9 +465,12 @@ class HomeController extends GetxController {
440465
final SharedPreferences prefs = await SharedPreferences.getInstance();
441466
bool? value;
442467
value = prefs.getBool('sync-onStart') ?? false;
443-
468+
String? clientId, encryptionSecret;
469+
clientId = await CredentialsStorage.getClientId();
470+
encryptionSecret = await CredentialsStorage.getEncryptionSecret();
444471
if (value) {
445472
synchronize(context, false);
473+
refreshTasks(clientId!, encryptionSecret!);
446474
} else {}
447475
}
448476

0 commit comments

Comments
 (0)