diff --git a/lib/dialogs/error_dialog.dart b/lib/dialogs/error_dialog.dart index 083491c1afc5ba120a2e865e06f67fca07204e33..cef68e2a4cdf12526245128b3ecc204f0eef7d05 100644 --- a/lib/dialogs/error_dialog.dart +++ b/lib/dialogs/error_dialog.dart @@ -6,13 +6,34 @@ class ErrorDialog extends StatelessWidget { const ErrorDialog({super.key, required this.title, required this.error}); + void onTapOK(BuildContext context) { + Navigator.of(context).pop(); + } + @override Widget build(BuildContext context) { return SimpleDialog( title: Text(title), children: [ - SimpleDialogOption( - child: Text('An error occurred: ${error.runtimeType}\n$error'), + SizedBox( + height: MediaQuery.of(context).size.height / 4, + child: SingleChildScrollView( + child: SimpleDialogOption( + child: Text('An error occurred: ${error.runtimeType}\n\n$error'), + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => onTapOK(context), + child: const Text('OK'), + ), + ], + ), ), ], ); diff --git a/lib/drawer/drawer.dart b/lib/drawer/drawer.dart index d1949cf7f3579067a7d88f70d521e0dc117339ff..b2a4bc1867bd45d18d82aa8b1e229f2a3e3f7d27 100644 --- a/lib/drawer/drawer.dart +++ b/lib/drawer/drawer.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import '../context.dart'; +import '../dialogs/error_dialog.dart'; import '../untis/class.dart'; import 'class_list_item.dart'; @@ -19,7 +20,17 @@ class _ClassDrawerState extends State<ClassDrawer> { @override void initState() { super.initState(); - fetchLectures(); + fetchLectures().onError((error, _) => _showErrorDialog(error)); + } + + void _showErrorDialog(Object? error) { + showDialog( + context: context, + builder: (context) => ErrorDialog( + title: 'Classes unavailable', + error: error, + ), + ); } Future<void> fetchLectures() async { diff --git a/lib/timetable/weekday_header.dart b/lib/timetable/weekday_header.dart index a2cc2cae04b07f5edc156c48d6b53d9f101d98a6..d5aa2b6740715f893c2306b573a8503252c16d29 100644 --- a/lib/timetable/weekday_header.dart +++ b/lib/timetable/weekday_header.dart @@ -12,7 +12,7 @@ class WeekdayHeader extends StatelessWidget { ]; final DateTime date; - String get weekdayName => weekdayNames[date.weekday - 1]; + String get weekdayName => weekdayNames[date.weekday - 1].substring(0, 2); const WeekdayHeader({super.key, required this.date});