diff --git a/app/lib/data_classes.dart b/app/lib/data_classes.dart index 6bb3d5387e44da7be9d40ee832b92103093ef578..554953821fc25f0973eb109fcc7248c17c896029 100644 --- a/app/lib/data_classes.dart +++ b/app/lib/data_classes.dart @@ -1,5 +1,6 @@ import 'dart:core'; import 'package:latlong2/latlong.dart'; +import 'package:flutter/material.dart'; class Measurement { int measurementID; @@ -17,47 +18,54 @@ class Measurement { required this.bodyOfWater, required this.center, required this.subDiv, - required this.corners + required this.corners, }); factory Measurement.fromJson(Map<String, dynamic> json) { return Measurement( - measurementID: json['MeasurementID'], - timeMeasured: DateTime.parse(json['TimeMeasured']), - sensor: Sensor.fromJson(json['Sensor']), - bodyOfWater: json['BodyOfWater'] ?? 'nil', - center: LatLng(json['CenterLat'], json['CenterLon']), - subDiv: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(), - corners: (json['Corners'] as List<dynamic>).map((corner) => LatLng(corner[0], corner[1])).toList(), + measurementID: json['MeasurementID'], + timeMeasured: DateTime.parse(json['TimeMeasured']), + sensor: Sensor.fromJson(json['Sensor']), + bodyOfWater: json['BodyOfWater'] ?? 'nil', + center: LatLng(json['CenterLat'], json['CenterLon']), + subDiv: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(), + corners: (json['Corners'] as List<dynamic>).map((corner) => LatLng(corner[0], corner[1])).toList(), ); } } class SubDiv { - int subDivID; + int sub_div_id; int groupID; double minThickness; double avgThickness; LatLng center; double accuracy; + Color color; + Color savedColor; SubDiv({ - required this.subDivID, + required this.sub_div_id, required this.groupID, required this.minThickness, required this.avgThickness, required this.center, required this.accuracy, + required this.color, + required this.savedColor }); factory SubDiv.fromJson(Map<String, dynamic> json) { return SubDiv( - subDivID: json['SubdivID'], + sub_div_id: json['SubdivID'], groupID: json['GroupID'], minThickness: json['MinThickness'], avgThickness: json['AvgThickness'], center: LatLng(json['CenLatitude'], json['CenLongitude']), accuracy: json['Accuracy'], + // Set grey as default color + color: json['Color'] != null ? Color(json['Color']) : Colors.grey, + savedColor: json['Color'] != null ? Color(json['Color']) : Colors.grey, ); } } diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart index a8d21b9214b07e48d8e0abc98df465d668eed6de..81aec4857298dc51a9f9328c27f8de2f1a607b9c 100644 --- a/app/lib/pages/default_page.dart +++ b/app/lib/pages/default_page.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'dart:typed_data'; import '../consts.dart'; -import '../widgets/main_widgets_container.dart'; +import '../widgets/main_layout.dart'; import '../data_classes.dart'; import '../server_requests/fetch_markers.dart'; import '../server_requests/fetch_relation.dart'; @@ -120,7 +120,7 @@ class _DefaultPageState extends State<DefaultPage> { } else { // Alert the user after the build completes if there is no server connection WidgetsBinding.instance.addPostFrameCallback((_) { - if (serverConnection && !dialogShown) { + if (!serverConnection && !dialogShown) { dialogShown = true; showConnectionMessage(); } diff --git a/app/lib/widgets/main_widgets_container.dart b/app/lib/widgets/main_layout.dart similarity index 100% rename from app/lib/widgets/main_widgets_container.dart rename to app/lib/widgets/main_layout.dart