diff --git a/app/lib/data_classes.dart b/app/lib/data_classes.dart index e1eb52688e18886fd730c6ac0e429a74fa9b17e6..d0288d0ab94f9310af8feb425e9991583689e9af 100644 --- a/app/lib/data_classes.dart +++ b/app/lib/data_classes.dart @@ -20,9 +20,6 @@ class Measurement { }); factory Measurement.fromJson(Map<String, dynamic> json) { - if (json == null) { - throw const FormatException('Error parsing Measurement: JSON data is null'); - } try { return Measurement( measurementID: json['MeasurementID'] ?? 0, diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart index d37d1d6ace3569e506dc7b5aa2657b0d4d17e72a..f79c27d90580f7bb7206a535a3c2d6d03c8e2b48 100644 --- a/app/lib/pages/default_page.dart +++ b/app/lib/pages/default_page.dart @@ -1,12 +1,10 @@ import 'dart:async'; -import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:app/server_requests/init_state.dart'; import 'package:liquid_pull_to_refresh/liquid_pull_to_refresh.dart'; import '../consts.dart'; import '../widgets/main_layout.dart'; -import '../widgets/choropleth_map.dart'; import '../utils/custom_search_delegate.dart'; class DefaultPage extends StatefulWidget { @@ -67,7 +65,7 @@ class _DefaultPageState extends State<DefaultPage> { setState(() { selectedLake = result; // NB update lastLake persistent variable - initialiseState(false); + //fetchNewLake(context); }); } }), @@ -99,4 +97,38 @@ class _DefaultPageState extends State<DefaultPage> { ), ); } -} \ No newline at end of file +} + +void fetchNewLake(BuildContext context) { + showDialog( + context: context, + barrierDismissible: false, // Prevent dismissal by user + builder: (BuildContext dialogContext) { + + bool initialized = false; + + // Display CircularProgressIndicator + Future.delayed(const Duration(milliseconds: 500), () { + if (!initialized) { + showDialog( + context: dialogContext, + builder: (BuildContext _) => const Center( + child: CircularProgressIndicator(), + ), + ); + } + }); + + initialiseState(false).then((_) { + // Mark initialization as complete + initialized = true; + + Navigator.of(dialogContext, rootNavigator: true).pop(); + }); + + // Return a placeholder widget for the dialog + return const SizedBox.shrink(); + }, + ); +} + diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart index 590191e64fa3c52215ccfe1afb01893534394957..a46c33e3b3901cbd4c34e666ada80d2416618e1c 100644 --- a/app/lib/server_requests/init_state.dart +++ b/app/lib/server_requests/init_state.dart @@ -5,7 +5,6 @@ import 'dart:typed_data'; import 'package:app/consts.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import '../consts.dart'; import '../data_classes.dart'; import '../server_requests/fetch_markers.dart'; import '../server_requests/fetch_relation.dart'; diff --git a/app/lib/utils/export_data.dart b/app/lib/utils/export_data.dart index deaca423e06c647a8667d5282b5573207119c281..19c222587b4cf2ad283bb284f69c34f4861fac89 100644 --- a/app/lib/utils/export_data.dart +++ b/app/lib/utils/export_data.dart @@ -27,7 +27,6 @@ void showProgressIndicator(BuildContext context) { context: context, builder: (BuildContext context) { dialogContext = context; - return WillPopScope( onWillPop: () async => false, // Prevent dialog from being closed by user child: const AlertDialog( @@ -57,7 +56,7 @@ void showProgressIndicator(BuildContext context) { ); } finally { if (dialogContext != null) { - // Add 2 second delay before closing the dialog + // Add 2 second delay before closing dialog Future.delayed(const Duration(seconds: 2), () { Navigator.of(dialogContext!).pop(); Navigator.of(context).pop(); diff --git a/app/lib/widgets/main_layout.dart b/app/lib/widgets/main_layout.dart index 46cad0e90e99164daf80b6c6e22a19faa1974c7a..21226b652f4cbfa56b7c3ff87954e497381c5e42 100644 --- a/app/lib/widgets/main_layout.dart +++ b/app/lib/widgets/main_layout.dart @@ -8,8 +8,6 @@ import 'stat_charts.dart'; import '../../consts.dart'; import 'choropleth_map.dart'; import '../data_classes.dart'; -import 'satellite_layer.dart'; -import 'quick_view_chart.dart'; import '../utils/export_data.dart'; import '../utils/format_month.dart'; diff --git a/app/lib/widgets/osm_layer.dart b/app/lib/widgets/osm_layer.dart index 3cdbc91ce493b7abbc7ecb69300e26f9146b3117..d125a9d7dd860cd08a7169aae8e9291fc87e6f7f 100644 --- a/app/lib/widgets/osm_layer.dart +++ b/app/lib/widgets/osm_layer.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:latlong2/latlong.dart'; import 'package:flutter_map/flutter_map.dart'; -import '../../consts.dart'; import '../data_classes.dart'; class OSM extends StatelessWidget {