diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart index db99df6a106436c86674f19ff540afae167b7bb1..965d8e45ebd9ae807d709c1a777ea6f9d097af47 100644 --- a/app/lib/pages/default_page.dart +++ b/app/lib/pages/default_page.dart @@ -23,6 +23,8 @@ class _DefaultPageState extends State<DefaultPage> { late Future<List<Measurement>> markerListFuture; late Future<Uint8List> relationFuture; + /// Fetch measurement and relation data, check server connection, and + /// start a request timer @override void initState() { super.initState(); @@ -37,9 +39,11 @@ class _DefaultPageState extends State<DefaultPage> { throw Exception("Failed to fetch measurements: $error"); }); + if (!serverConnection) { + _showConnectionMessage(); + } relationFuture = fetchRelation(); - //relationFuture = Future.value(Uint8List(0)); // Schedule fetchMarkerData to run periodically based on fetchInterval from consts const Duration interval = Duration(minutes: fetchInterval); // NB fetchInterval value to be determined @@ -48,7 +52,17 @@ class _DefaultPageState extends State<DefaultPage> { }); } - // Fetch-interval timer + /// Display a message for 5 seconds informing the user + /// of lacking server connection + void _showConnectionMessage() { + const snackBar = SnackBar( + content: Text('Failed to connect to the server. Information about' + 'ice safety could be outdated!'), + duration: Duration(seconds: 5), + ); + ScaffoldMessenger.of(context).showSnackBar(snackBar); + } + /// Timer for resending requests to server @override void dispose() { // Cancel timer on widget termination @@ -93,8 +107,8 @@ class _DefaultPageState extends State<DefaultPage> { } else if (snapshot.hasError) { return Center(child: Text('Error: ${snapshot.error}')); } else { - if (!serverConnection) { // NB: implement alert - print("Failed to connect to server"); + if (!serverConnection) { // NB: implement dialogue box + print("Failed to connect to server"); // Here... } // Display default page once all data is loaded from server List<Measurement> markerList = snapshot.data![0] as List<Measurement>;