UI elements using the new structs #8
@@ -35,7 +35,7 @@ jobs:
 | 
				
			|||||||
    - run: flutter pub get
 | 
					    - run: flutter pub get
 | 
				
			||||||
      working-directory: ./frontend
 | 
					      working-directory: ./frontend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - run: flutter build apk --debug --split-per-abi
 | 
					    - run: flutter build apk --release --split-per-abi
 | 
				
			||||||
      working-directory: ./frontend
 | 
					      working-directory: ./frontend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,9 @@ android {
 | 
				
			|||||||
        applicationId "com.example.fast_network_navigation"
 | 
					        applicationId "com.example.fast_network_navigation"
 | 
				
			||||||
        // You can update the following values to match your application needs.
 | 
					        // You can update the following values to match your application needs.
 | 
				
			||||||
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
 | 
					        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
 | 
				
			||||||
 | 
					        // Minimum Android version for Google Maps SDK
 | 
				
			||||||
 | 
					        // https://developers.google.com/maps/flutter-package/config#android
 | 
				
			||||||
 | 
					        minSdk = 21
 | 
				
			||||||
        minSdkVersion flutter.minSdkVersion
 | 
					        minSdkVersion flutter.minSdkVersion
 | 
				
			||||||
        targetSdkVersion flutter.targetSdkVersion
 | 
					        targetSdkVersion flutter.targetSdkVersion
 | 
				
			||||||
        versionCode flutterVersionCode.toInteger()
 | 
					        versionCode flutterVersionCode.toInteger()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,9 @@
 | 
				
			|||||||
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
 | 
					             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
 | 
				
			||||||
        <meta-data
 | 
					        <meta-data
 | 
				
			||||||
            android:name="flutterEmbedding"
 | 
					            android:name="flutterEmbedding"
 | 
				
			||||||
            android:value="2" />
 | 
					            android:value="2"
 | 
				
			||||||
 | 
					            android:name="com.google.android.geo.API_KEY"
 | 
				
			||||||
 | 
					            android:value="AIzaSyCeWk_D2xvfOHLidvV56EZeQCUybypEntw"/> />
 | 
				
			||||||
    </application>
 | 
					    </application>
 | 
				
			||||||
    <!-- Required to query activities that can process text, see:
 | 
					    <!-- Required to query activities that can process text, see:
 | 
				
			||||||
         https://developer.android.com/training/package-visibility?hl=en and
 | 
					         https://developer.android.com/training/package-visibility?hl=en and
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										81
									
								
								frontend/lib/modules/map.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								frontend/lib/modules/map.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:google_maps_flutter/google_maps_flutter.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MapWidget extends StatefulWidget {
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  State<MapWidget> createState() => _MapWidgetState();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class _MapWidgetState extends State<MapWidget> {
 | 
				
			||||||
 | 
					  late GoogleMapController mapController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final LatLng _center = const LatLng(45.521563, -122.677433);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _onMapCreated(GoogleMapController controller) {
 | 
				
			||||||
 | 
					    mapController = controller;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  void _onCameraIdle() {
 | 
				
			||||||
 | 
					    // print(mapController.getLatLng());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return GoogleMap(
 | 
				
			||||||
 | 
					      onMapCreated: _onMapCreated,
 | 
				
			||||||
 | 
					      initialCameraPosition: CameraPosition(
 | 
				
			||||||
 | 
					        target: _center,
 | 
				
			||||||
 | 
					        zoom: 11.0,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      onCameraIdle: _onCameraIdle,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // GeoCode geoCode = GeoCode();
 | 
				
			||||||
 | 
					  // String _currentCityName = "...";
 | 
				
			||||||
 | 
					  // final Debounce _debounce = Debounce(Duration(seconds: 3));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // final LatLng _center = const LatLng(45.521563, -122.677433);
 | 
				
			||||||
 | 
					  // late GoogleMapController mapController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // void _onMapCreated(GoogleMapController controller) {
 | 
				
			||||||
 | 
					  //   mapController = controller;
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // // void _setCurrentCityName() async {
 | 
				
			||||||
 | 
					  //   if (mapController.camera.zoom < 9) {
 | 
				
			||||||
 | 
					  //     return; // Don't bother if the view is too wide
 | 
				
			||||||
 | 
					  //   }
 | 
				
			||||||
 | 
					  //   var currentCoordinates = mapController.camera.center;
 | 
				
			||||||
 | 
					  //   String? city;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  //   try{
 | 
				
			||||||
 | 
					  //     List<Placemark> placemarks = await placemarkFromCoordinates(currentCoordinates.latitude, currentCoordinates.longitude);
 | 
				
			||||||
 | 
					  //     city = placemarks[0].locality.toString();
 | 
				
			||||||
 | 
					  //   } catch (e) {
 | 
				
			||||||
 | 
					  //     debugPrint("Error: $e");
 | 
				
			||||||
 | 
					  //     try {
 | 
				
			||||||
 | 
					  //       Address address = await geoCode.reverseGeocoding(latitude: currentCoordinates.latitude, longitude: currentCoordinates.longitude);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					  //       if (address.city == null || address.city.toString().contains("Throttled!")){
 | 
				
			||||||
 | 
					  //         throw Exception("Probably rate limited");
 | 
				
			||||||
 | 
					  //       }
 | 
				
			||||||
 | 
					  //       city = address.city.toString();
 | 
				
			||||||
 | 
					  //     } catch (e) {
 | 
				
			||||||
 | 
					  //       debugPrint("Error: $e");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //     }
 | 
				
			||||||
 | 
					  //   }
 | 
				
			||||||
 | 
					  //   if (city != null) {
 | 
				
			||||||
 | 
					  //     setState(() {
 | 
				
			||||||
 | 
					  //       _currentCityName = city!;
 | 
				
			||||||
 | 
					  //     });
 | 
				
			||||||
 | 
					  //   } else {
 | 
				
			||||||
 | 
					  //     _debounce(() async {_setCurrentCityName();});
 | 
				
			||||||
 | 
					  //   }
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
@@ -1,17 +1,21 @@
 | 
				
			|||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:flutter_map/flutter_map.dart';
 | 
					 | 
				
			||||||
import 'package:sliding_up_panel/sliding_up_panel.dart';
 | 
					import 'package:sliding_up_panel/sliding_up_panel.dart';
 | 
				
			||||||
import 'package:latlong2/latlong.dart';
 | 
					 | 
				
			||||||
import 'package:geocoding/geocoding.dart';
 | 
					 | 
				
			||||||
import 'package:geocode/geocode.dart';
 | 
					import 'package:geocode/geocode.dart';
 | 
				
			||||||
import 'dart:async';
 | 
					import 'dart:async';
 | 
				
			||||||
 | 
					import 'package:google_maps_flutter/google_maps_flutter.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:fast_network_navigation/modules/navigation.dart';
 | 
					import 'package:fast_network_navigation/modules/navigation.dart';
 | 
				
			||||||
 | 
					import 'package:fast_network_navigation/modules/map.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MapPage extends StatefulWidget {
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MainPage extends StatefulWidget {
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  _MapPageState createState() => _MapPageState();
 | 
					  State<MainPage> createState() => _MainPageState();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Debounce {
 | 
					class Debounce {
 | 
				
			||||||
  Duration delay;
 | 
					  Duration delay;
 | 
				
			||||||
  Timer? _timer;
 | 
					  Timer? _timer;
 | 
				
			||||||
@@ -31,44 +35,7 @@ class Debounce {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class _MapPageState extends State<MapPage> {
 | 
					class _MainPageState extends State<MainPage> {
 | 
				
			||||||
  GeoCode geoCode = GeoCode();
 | 
					 | 
				
			||||||
  final mapController = MapController();
 | 
					 | 
				
			||||||
  String _currentCityName = "...";
 | 
					 | 
				
			||||||
  final Debounce _debounce = Debounce(Duration(seconds: 3));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  void _setCurrentCityName() async {
 | 
					 | 
				
			||||||
    if (mapController.camera.zoom < 9) {
 | 
					 | 
				
			||||||
      return; // Don't bother if the view is too wide
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    var currentCoordinates = mapController.camera.center;
 | 
					 | 
				
			||||||
    String? city;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    try{
 | 
					 | 
				
			||||||
      List<Placemark> placemarks = await placemarkFromCoordinates(currentCoordinates.latitude, currentCoordinates.longitude);
 | 
					 | 
				
			||||||
      city = placemarks[0].locality.toString();
 | 
					 | 
				
			||||||
    } catch (e) {
 | 
					 | 
				
			||||||
      debugPrint("Error: $e");
 | 
					 | 
				
			||||||
      try {
 | 
					 | 
				
			||||||
        Address address = await geoCode.reverseGeocoding(latitude: currentCoordinates.latitude, longitude: currentCoordinates.longitude);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if (address.city == null || address.city.toString().contains("Throttled!")){
 | 
					 | 
				
			||||||
          throw Exception("Probably rate limited");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        city = address.city.toString();
 | 
					 | 
				
			||||||
      } catch (e) {
 | 
					 | 
				
			||||||
        debugPrint("Error: $e");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (city != null) {
 | 
					 | 
				
			||||||
      setState(() {
 | 
					 | 
				
			||||||
        _currentCityName = city!;
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      _debounce(() async {_setCurrentCityName();});
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
@@ -77,21 +44,7 @@ class _MapPageState extends State<MapPage> {
 | 
				
			|||||||
        renderPanelSheet: false,
 | 
					        renderPanelSheet: false,
 | 
				
			||||||
        panel: _floatingPanel(theme),
 | 
					        panel: _floatingPanel(theme),
 | 
				
			||||||
        collapsed: _floatingCollapsed(theme),
 | 
					        collapsed: _floatingCollapsed(theme),
 | 
				
			||||||
        body: FlutterMap(
 | 
					        body: MapWidget()
 | 
				
			||||||
          mapController: mapController,
 | 
					 | 
				
			||||||
          options: MapOptions(
 | 
					 | 
				
			||||||
            initialZoom: 11,
 | 
					 | 
				
			||||||
            initialCenter: LatLng(51.509364, -0.128928),
 | 
					 | 
				
			||||||
            onMapReady: () {
 | 
					 | 
				
			||||||
                mapController.mapEventStream.listen((evt) {_debounce(() async {_setCurrentCityName();});});
 | 
					 | 
				
			||||||
                // And any other `MapController` dependent non-movement methods
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          children: [
 | 
					 | 
				
			||||||
            openStreetMapTileLayer,
 | 
					 | 
				
			||||||
          ],
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -138,16 +91,9 @@ class _MapPageState extends State<MapPage> {
 | 
				
			|||||||
  Widget Greeting (ThemeData theme) {
 | 
					  Widget Greeting (ThemeData theme) {
 | 
				
			||||||
    return Center(
 | 
					    return Center(
 | 
				
			||||||
        child: Text(
 | 
					        child: Text(
 | 
				
			||||||
            "Explore ${_currentCityName}",
 | 
					            "Explore #todo",
 | 
				
			||||||
          style: TextStyle(color: theme.primaryColor, fontSize: 24.0, fontWeight: FontWeight.bold),
 | 
					          style: TextStyle(color: theme.primaryColor, fontSize: 24.0, fontWeight: FontWeight.bold),
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
TileLayer get openStreetMapTileLayer => TileLayer(
 | 
					 | 
				
			||||||
  urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
 | 
					 | 
				
			||||||
  userAgentPackageName: 'flutter_map',
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Add a pin to the map
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,6 +41,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "1.18.0"
 | 
					    version: "1.18.0"
 | 
				
			||||||
 | 
					  csslib:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: csslib
 | 
				
			||||||
 | 
					      sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.0.0"
 | 
				
			||||||
  cupertino_icons:
 | 
					  cupertino_icons:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -78,11 +86,24 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "6.1.0"
 | 
					    version: "6.1.0"
 | 
				
			||||||
 | 
					  flutter_plugin_android_lifecycle:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_plugin_android_lifecycle
 | 
				
			||||||
 | 
					      sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.19"
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
    dependency: "direct dev"
 | 
					    dependency: "direct dev"
 | 
				
			||||||
    description: flutter
 | 
					    description: flutter
 | 
				
			||||||
    source: sdk
 | 
					    source: sdk
 | 
				
			||||||
    version: "0.0.0"
 | 
					    version: "0.0.0"
 | 
				
			||||||
 | 
					  flutter_web_plugins:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description: flutter
 | 
				
			||||||
 | 
					    source: sdk
 | 
				
			||||||
 | 
					    version: "0.0.0"
 | 
				
			||||||
  geocode:
 | 
					  geocode:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -123,6 +144,62 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.2.0"
 | 
					    version: "3.2.0"
 | 
				
			||||||
 | 
					  google_maps:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps
 | 
				
			||||||
 | 
					      sha256: "47eef3836b49bb030d5cb3afc60b8451408bf34cf753e571b645d6529eb4251a"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "7.1.0"
 | 
				
			||||||
 | 
					  google_maps_flutter:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps_flutter
 | 
				
			||||||
 | 
					      sha256: c1972cbad779bc5346c49045f26ae45550a0958b1cbca5b524dd3c8954995d28
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.6.1"
 | 
				
			||||||
 | 
					  google_maps_flutter_android:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps_flutter_android
 | 
				
			||||||
 | 
					      sha256: "0bcadb80eba39afda77dede89a6caafd3b68f2786b90491eceea4a01c3db181c"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.8.0"
 | 
				
			||||||
 | 
					  google_maps_flutter_ios:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps_flutter_ios
 | 
				
			||||||
 | 
					      sha256: e5132d17f051600d90d79d9f574b177c24231da702453a036db2490f9ced4646
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.6.0"
 | 
				
			||||||
 | 
					  google_maps_flutter_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps_flutter_platform_interface
 | 
				
			||||||
 | 
					      sha256: "167af879da4d004cd58771f1469b91dcc3b9b0a2c5334cc6bf71fd41d4b35403"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.6.0"
 | 
				
			||||||
 | 
					  google_maps_flutter_web:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_maps_flutter_web
 | 
				
			||||||
 | 
					      sha256: "0c0d5c723d94b295cf86dd1c45ff91d2ac1fff7c05ddca4f01bef9fa0a014690"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.5.7"
 | 
				
			||||||
 | 
					  html:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: html
 | 
				
			||||||
 | 
					      sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.15.4"
 | 
				
			||||||
  http:
 | 
					  http:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -147,6 +224,22 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.19.0"
 | 
					    version: "0.19.0"
 | 
				
			||||||
 | 
					  js:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: js
 | 
				
			||||||
 | 
					      sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.6.7"
 | 
				
			||||||
 | 
					  js_wrapping:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: js_wrapping
 | 
				
			||||||
 | 
					      sha256: e385980f7c76a8c1c9a560dfb623b890975841542471eade630b2871d243851c
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.7.4"
 | 
				
			||||||
  latlong2:
 | 
					  latlong2:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -267,6 +360,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "2.1.0"
 | 
					    version: "2.1.0"
 | 
				
			||||||
 | 
					  sanitize_html:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: sanitize_html
 | 
				
			||||||
 | 
					      sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.0"
 | 
				
			||||||
  sky_engine:
 | 
					  sky_engine:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description: flutter
 | 
					    description: flutter
 | 
				
			||||||
@@ -304,6 +405,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "2.1.2"
 | 
					    version: "2.1.2"
 | 
				
			||||||
 | 
					  stream_transform:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: stream_transform
 | 
				
			||||||
 | 
					      sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.0"
 | 
				
			||||||
  string_scanner:
 | 
					  string_scanner:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -378,4 +487,4 @@ packages:
 | 
				
			|||||||
    version: "2.0.0"
 | 
					    version: "2.0.0"
 | 
				
			||||||
sdks:
 | 
					sdks:
 | 
				
			||||||
  dart: ">=3.3.4 <4.0.0"
 | 
					  dart: ">=3.3.4 <4.0.0"
 | 
				
			||||||
  flutter: ">=3.18.0-18.0.pre.54"
 | 
					  flutter: ">=3.19.0"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,6 +40,7 @@ dependencies:
 | 
				
			|||||||
  latlong2: ^0.9.1
 | 
					  latlong2: ^0.9.1
 | 
				
			||||||
  geocoding: ^3.0.0
 | 
					  geocoding: ^3.0.0
 | 
				
			||||||
  geocode: ^1.0.3
 | 
					  geocode: ^1.0.3
 | 
				
			||||||
 | 
					  google_maps_flutter: ^2.6.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,7 @@
 | 
				
			|||||||
    This is a placeholder for base href that will be replaced by the value of
 | 
					    This is a placeholder for base href that will be replaced by the value of
 | 
				
			||||||
    the `--base-href` argument provided to `flutter build`.
 | 
					    the `--base-href` argument provided to `flutter build`.
 | 
				
			||||||
  -->
 | 
					  -->
 | 
				
			||||||
 | 
					  <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCeWk_D2xvfOHLidvV56EZeQCUybypEntw"></script>
 | 
				
			||||||
  <base href="$FLUTTER_BASE_HREF">
 | 
					  <base href="$FLUTTER_BASE_HREF">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <meta charset="UTF-8">
 | 
					  <meta charset="UTF-8">
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user