1
0
forked from firka/firka

dont call setState after dispose

This commit is contained in:
zypherift
2025-08-07 01:27:55 +02:00
parent 7e158cca51
commit 8d2040da39
2 changed files with 14 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ class _HomeMainScreen extends State<HomeMainScreen> {
List<Lesson>? lessons;
Student? student;
Timer? timer;
bool disposed = false;
@override
void initState() {
@@ -42,6 +43,7 @@ class _HomeMainScreen extends State<HomeMainScreen> {
var resp = await data.client.getTimeTable(
midnight, midnight.add(Duration(hours: 23, minutes: 59)));
if (disposed) return;
setState(() {
lessons = resp.response!;
});
@@ -49,12 +51,14 @@ class _HomeMainScreen extends State<HomeMainScreen> {
(() async {
var resp = await data.client.getStudent();
if (disposed) return;
setState(() {
student = resp.response!;
});
})();
timer = Timer.periodic(Duration(seconds: 1), (timer) async {
if (disposed) return;
setState(() {
now = timeNow();
});
@@ -65,6 +69,7 @@ class _HomeMainScreen extends State<HomeMainScreen> {
void dispose() {
super.dispose();
disposed = true;
timer?.cancel();
}

View File

@@ -26,8 +26,16 @@ class _HomeTimetableScreen extends State<HomeTimetableScreen> {
List<Lesson>? lessons;
List<DateTime>? dates;
DateTime? active;
bool disposed = false;
_HomeTimetableScreen(this.data);
@override
void dispose() {
super.dispose();
disposed = true;
}
@override
void initState() {
super.initState();
@@ -58,6 +66,7 @@ class _HomeTimetableScreen extends State<HomeTimetableScreen> {
}
}
if (disposed) return;
setState(() {
this.dates = dates;
if (timeNow().isAfter(dates.last)) {