simplified code across the app and consolidated duplicated helpers
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user