Skip to content

Fix the startup hang and the issues found while debugging - #590

Merged
PianoNic merged 9 commits into
mainfrom
fix/589_AppHang
Nov 3, 2026
Merged

PianoNic merged 9 commits into
mainfrom
fix/589_AppHang

Conversation

@PianoNic

@PianoNic PianoNic commented Nov 3, 2026

Copy link
Copy Markdown
Member

Stopped the accounts load from re-entering itself, fixed the dashboard not updating after the first sync, showed more data in private mode, added retries to loading screens, drew SVG sign-in icons, limited cleartext traffic to the dev flavor, and removed dead code.

Closes #589
Closes #513
Closes #470
Closes #515

The absences page reloads its target when the linked accounts change, and resolving the target loads them when none are loaded. load() notified before its first await, so the listener called load() again in the same stack: a synchronous loop on the UI thread that froze every signed-in launch on the spinner and grew the heap until it was exhausted. A load now joins one in flight, including during its final notification, so a failed load is not retried by its own listener.
Closes #513. The dashboard builds its pages as const, so rebuilding the dashboard never reached them: home, grades and absences kept what they saw on first build until the app restarted, and the timetable stopped updating once it had picked a day. Each page now follows SchoolDataService itself.
Grades whose exam was not in the upcoming-exams list vanished, exams had no date or class, the grade sections had no names, holidays arrived as lessons, and upcoming exams were missing from the timetable. The adapter now maps what the stateless routes already send.
One failing endpoint threw away the whole refresh, and the five requests ran one after the other. They now run together, a failed section stays empty with a notice, and the last complete snapshot is kept on disk.
Image.network cannot decode SVG, so a provider whose IconUrl is an SVG showed no icon. Adds flutter_svg and a RemoteIcon widget that handles both raster and SVG, with either URL shape.
Closes #470. Release builds no longer carry the developer LAN addresses or allow plain HTTP. The dev flavor overrides the config and keeps its local backends.
The dashboard spinner had no end while requests could take minutes, and failures showed a raw exception with no way out. A slow load now offers a retry after 30 seconds, and failures read as a sentence with a retry.
@PianoNic PianoNic added the bug Something isn't working label Nov 3, 2026
@PianoNic
PianoNic merged commit 39159bf into main Nov 3, 2026
3 checks passed
@PianoNic
PianoNic deleted the fix/589_AppHang branch November 3, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

1 participant