fixed stale state after logout and replayed or lost share intents

This commit is contained in:
2026-09-24 21:43:21 +02:00
parent e4e2b1a4fb
commit 498d195138
32 changed files with 743 additions and 188 deletions
+5
View File
@@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import '../model/account_data.dart';
import '../state/app/modules/timetable/bloc/timetable_state.dart';
import '../storage/settings.dart';
import 'widget_data_mapper.dart';
@@ -24,6 +25,7 @@ class WidgetPublisher {
Settings? settings,
bool isTeacher = false,
}) async {
final epoch = AccountData().sessionEpoch;
try {
final connectDouble =
settings?.timetableSettings.connectDoubleLessons ?? true;
@@ -58,6 +60,9 @@ class WidgetPublisher {
connectDoubleLessons: connectDouble,
showClassInsteadOfTeacher: isTeacher,
);
// A publish still running at sign-out would put the previous account's
// plan back onto the just cleared widget.
if (!AccountData().isCurrentSession(epoch)) return;
await WidgetSync.writeDayData(dayData);
await WidgetSync.writeWeekData(weekData);
await WidgetSync.setLoggedIn(true);