simplified code across the app and consolidated duplicated helpers

This commit is contained in:
2026-09-27 17:29:54 +02:00
parent 3e856d0b1c
commit ee1240f71a
155 changed files with 1772 additions and 2546 deletions
+31 -20
View File
@@ -53,13 +53,21 @@ class WidgetSync {
static Future<void> writeWeekData(WidgetTimetableData data) =>
_writeData(weekDataKey, data);
/// Writes a complete snapshot and marks the widget signed in, then asks the
/// native side to re-render.
static Future<void> publishSnapshot({
required WidgetTimetableData day,
required WidgetTimetableData week,
}) async {
await writeDayData(day);
await writeWeekData(week);
await setLoggedIn(true);
await triggerUpdate();
}
static Future<void> _writeData(String key, WidgetTimetableData data) async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(key, jsonEncode(data.toJson()));
await HomeWidget.saveWidgetData<String>(
fetchedAtKey,
data.fetchedAt.toIso8601String(),
);
await _setString(key, jsonEncode(data.toJson()));
await _setString(fetchedAtKey, data.fetchedAt.toIso8601String());
}
static Future<void> setLoggedIn(bool loggedIn) =>
@@ -88,27 +96,30 @@ class WidgetSync {
return await HomeWidget.getWidgetData<bool>(key) ?? defaultValue;
}
static Future<void> setThemeMode(String mode) async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(themeModeKey, mode);
}
static Future<void> setThemeMode(String mode) =>
_setString(themeModeKey, mode);
static Future<void> setMarianumConnectBaseUrl(String url) async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(marianumConnectBaseUrlKey, url);
}
static Future<void> setMarianumConnectBaseUrl(String url) =>
_setString(marianumConnectBaseUrlKey, url);
static Future<String?> getMarianumConnectBaseUrl() async {
await ensureInitialized();
return HomeWidget.getWidgetData<String>(marianumConnectBaseUrlKey);
}
static Future<String?> getMarianumConnectBaseUrl() =>
_getString(marianumConnectBaseUrlKey);
static Future<DateTime?> getFetchedAt() async {
await ensureInitialized();
final raw = await HomeWidget.getWidgetData<String>(fetchedAtKey);
final raw = await _getString(fetchedAtKey);
return raw == null ? null : DateTime.tryParse(raw);
}
static Future<void> _setString(String key, String? value) async {
await ensureInitialized();
await HomeWidget.saveWidgetData<String>(key, value);
}
static Future<String?> _getString(String key) async {
await ensureInitialized();
return HomeWidget.getWidgetData<String>(key);
}
static Future<void> clear() async {
WidgetPublisher.resetDedupe();
await ensureInitialized();