migrated timetable integration from WebUntis to the MarianumConnect API, implementing a Dio-based client with bearer token authentication, background session validation, and auto-refresh logic.

This commit is contained in:
2026-05-23 17:32:42 +02:00
parent 2858f910c9
commit 93b9929f8f
106 changed files with 2739 additions and 2624 deletions
+13
View File
@@ -27,6 +27,9 @@ class WidgetSync {
static const String connectDoubleLessonsKey =
'widget_setting_connect_double_lessons_v1';
static const String themeModeKey = 'widget_setting_theme_mode_v1';
// Mirrored so the background isolate hits the same Marianum-Connect base
// URL the in-app settings cubit currently has selected.
static const String marianumConnectBaseUrlKey = 'widget_setting_mc_base_url_v1';
static bool _initialised = false;
@@ -83,6 +86,16 @@ class WidgetSync {
await HomeWidget.saveWidgetData<String>(themeModeKey, mode);
}
static Future<void> setMarianumConnectBaseUrl(String url) async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(marianumConnectBaseUrlKey, url);
}
static Future<String?> getMarianumConnectBaseUrl() async {
await ensureInitialized();
return HomeWidget.getWidgetData<String>(marianumConnectBaseUrlKey);
}
static Future<void> clear() async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(dayDataKey, null);