diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 3aa588e..a0bd446 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
+
+
UIApplicationSupportsIndirectInputEvents
NSLocationWhenInUseUsageDescription
- We need your location to show it on the map.
- NSLocationAlwaysAndWhenInUseUsageDescription
- We need your location to show it on the map even in background.
+ Cette application a besoin de votre position pour afficher votre localisation sur la carte
+ NSLocationAlwaysUsageDescription
+ Cette application a besoin de votre position pour afficher votre localisation sur la carte
GIDClientID
521527250907-3i1qe2656eojs8k9hjdi573j09i9p41m.apps.googleusercontent.com
diff --git a/lib/components/map/map_content.dart b/lib/components/map/map_content.dart
index 93e8747..eca342f 100644
--- a/lib/components/map/map_content.dart
+++ b/lib/components/map/map_content.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
+import 'package:geolocator/geolocator.dart';
class MapContent extends StatefulWidget {
const MapContent({super.key});
@@ -9,22 +10,100 @@ class MapContent extends StatefulWidget {
}
class _MapContentState extends State {
- final LatLng _initialPosition = const LatLng(48.8566, 2.3522); // Paris
+ GoogleMapController? _mapController;
+ LatLng _initialPosition = const LatLng(48.8566, 2.3522); // Paris par défaut
final TextEditingController _searchController = TextEditingController();
+ bool _isLoadingLocation = false;
+ Position? _currentPosition;
+
+ @override
+ void initState() {
+ super.initState();
+ _getCurrentLocation();
+ }
@override
void dispose() {
_searchController.dispose();
+ _mapController?.dispose();
super.dispose();
}
+ // Obtenir la position actuelle
+ Future _getCurrentLocation() async {
+ setState(() {
+ _isLoadingLocation = true;
+ });
+
+ try {
+ // Vérifier si la localisation est activée
+ bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
+ if (!serviceEnabled) {
+ _showError('Veuillez activer les services de localisation');
+ setState(() {
+ _isLoadingLocation = false;
+ });
+ return;
+ }
+
+ // Vérifier les permissions
+ LocationPermission permission = await Geolocator.checkPermission();
+ if (permission == LocationPermission.denied) {
+ permission = await Geolocator.requestPermission();
+ if (permission == LocationPermission.denied) {
+ _showError('Permission de localisation refusée');
+ setState(() {
+ _isLoadingLocation = false;
+ });
+ return;
+ }
+ }
+
+ if (permission == LocationPermission.deniedForever) {
+ _showError('Permission de localisation refusée définitivement');
+ setState(() {
+ _isLoadingLocation = false;
+ });
+ return;
+ }
+
+ // Obtenir la position actuelle
+ Position position = await Geolocator.getCurrentPosition(
+ desiredAccuracy: LocationAccuracy.high,
+ );
+
+ setState(() {
+ _currentPosition = position;
+ _initialPosition = LatLng(position.latitude, position.longitude);
+ _isLoadingLocation = false;
+ });
+
+ // Animer la caméra vers la position actuelle
+ if (_mapController != null) {
+ _mapController!.animateCamera(
+ CameraUpdate.newLatLngZoom(_initialPosition, 14),
+ );
+ }
+ } catch (e) {
+ _showError('Erreur lors de la récupération de la position: $e');
+ setState(() {
+ _isLoadingLocation = false;
+ });
+ }
+ }
+
+ void _showError(String message) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text(message), backgroundColor: Colors.red),
+ );
+ }
+
void _searchLocation() {
- // TODO: Implémenter la logique de recherche
final searchQuery = _searchController.text.trim();
if (searchQuery.isNotEmpty) {
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(content: Text('Recherche de: $searchQuery')),
- );
+ ScaffoldMessenger.of(
+ context,
+ ).showSnackBar(SnackBar(content: Text('Recherche de: $searchQuery')));
}
}
@@ -50,65 +129,62 @@ class _MapContentState extends State {
),
onSubmitted: (_) => _searchLocation(),
),
-
- const SizedBox(height: 8),
-
- // Bouton chercher
- SizedBox(
- width: double.infinity,
- height: 48,
- child: ElevatedButton(
- onPressed: _searchLocation,
- style: ElevatedButton.styleFrom(
- backgroundColor: Theme.of(context).colorScheme.primary,
- foregroundColor: Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(12.0),
- ),
- ),
- child: const Text(
- 'Chercher',
- style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500),
- ),
- ),
- ),
-
- const SizedBox(height: 8),
-
- // Container avec la carte
+
+ const SizedBox(height: 12),
+
+ // Google Maps
Expanded(
- child: Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(16.0),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withValues(alpha: 0.1),
- blurRadius: 8,
- offset: const Offset(0, 2),
+ child: Stack(
+ children: [
+ ClipRRect(
+ borderRadius: BorderRadius.circular(16),
+ child: GoogleMap(
+ initialCameraPosition: CameraPosition(
+ target: _initialPosition,
+ zoom: 14,
+ ),
+ onMapCreated: (GoogleMapController controller) {
+ _mapController = controller;
+ },
+ myLocationEnabled: true,
+ myLocationButtonEnabled: false,
+ zoomControlsEnabled: false,
),
- ],
- ),
- child: ClipRRect(
- borderRadius: BorderRadius.circular(16.0),
- child: GoogleMap(
- mapType: MapType.normal,
- initialCameraPosition: CameraPosition(
- target: _initialPosition,
- zoom: 12,
- ),
- onMapCreated: (GoogleMapController controller) {},
- myLocationEnabled: true,
- myLocationButtonEnabled: true,
- zoomControlsEnabled: true,
- compassEnabled: true,
),
- ),
+
+ // Indicateur de chargement
+ if (_isLoadingLocation)
+ Center(
+ child: Container(
+ padding: EdgeInsets.all(16),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(12),
+ ),
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ CircularProgressIndicator(),
+ SizedBox(height: 8),
+ Text('Localisation en cours...'),
+ ],
+ ),
+ ),
+ ),
+ ],
),
),
],
),
),
),
+
+ // Bouton flottant pour recentrer sur la position actuelle
+ floatingActionButton: FloatingActionButton(
+ onPressed: _getCurrentLocation,
+ tooltip: 'Ma position',
+ child: Icon(Icons.my_location),
+ ),
);
}
}
diff --git a/lib/main.dart b/lib/main.dart
index 8e97b25..aee12ec 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -53,16 +53,16 @@ class MyApp extends StatelessWidget {
create: (context) => ThemeBloc()..add(ThemeLoadRequested()),
),
BlocProvider(
- create: (context) => AuthBloc(
- authRepository: context.read(),
- )..add(AuthCheckRequested()),
+ create: (context) =>
+ AuthBloc(authRepository: context.read())
+ ..add(AuthCheckRequested()),
),
- BlocProvider(create: (context) => GroupBloc(
- context.read(),
- )),
- BlocProvider(create: (context) => TripBloc(
- tripRepository: context.read(),
- ),
+ BlocProvider(
+ create: (context) => GroupBloc(context.read()),
+ ),
+ BlocProvider(
+ create: (context) =>
+ TripBloc(tripRepository: context.read()),
),
BlocProvider(create: (context) => UserBloc()),
],
@@ -86,14 +86,7 @@ class MyApp extends StatelessWidget {
),
useMaterial3: true,
),
- home: BlocBuilder(
- builder: (context, authState) {
- if (authState is AuthAuthenticated) {
- return const HomePage();
- }
- return const LoginPage();
- },
- ),
+ home: const LoginPage(),
routes: {
'/login': (context) => const LoginPage(),
'/signup': (context) => const SignUpPage(),
diff --git a/pubspec.lock b/pubspec.lock
index 13b4fbc..392c30f 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,10 +5,18 @@ packages:
dependency: transitive
description:
name: _flutterfire_internals
- sha256: "23d16f00a2da8ffa997c782453c73867b0609bd90435195671a54de38a3566df"
+ sha256: f871a7d1b686bea1f13722aa51ab31554d05c81f47054d6de48cc8c45153508b
url: "https://pub.dev"
source: hosted
- version: "1.3.62"
+ version: "1.3.63"
+ args:
+ dependency: transitive
+ description:
+ name: args
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.7.0"
async:
dependency: transitive
description:
@@ -29,10 +37,10 @@ packages:
dependency: transitive
description:
name: bloc
- sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
+ sha256: a2cebb899f91d36eeeaa55c7b20b5915db5a9df1b8fd4a3c9c825e22e474537d
url: "https://pub.dev"
source: hosted
- version: "8.1.4"
+ version: "9.1.0"
boolean_selector:
dependency: transitive
description:
@@ -61,26 +69,26 @@ packages:
dependency: "direct main"
description:
name: cloud_firestore
- sha256: af66aeffe5943d582c0f655ec860433dbd773ac4a4ffc62c11960b52a18833fe
+ sha256: ea3fe98eaf0c3b675ab2a242d98430518da60f89d5cc9774df7b2d9110aaf160
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "6.0.3"
cloud_firestore_platform_interface:
dependency: transitive
description:
name: cloud_firestore_platform_interface
- sha256: "494dd3d275a0259e3ba08b442b54e64839b0cf58352a50fe97eb67cacf3bad28"
+ sha256: b5592862c451ebfd229b430907b6feb2082333d6e5a61d0eafd547c2afc6f68e
url: "https://pub.dev"
source: hosted
- version: "7.0.2"
+ version: "7.0.3"
cloud_firestore_web:
dependency: transitive
description:
name: cloud_firestore_web
- sha256: "85b7b071c23eecbbbb47a9fbd2cfdb1b6af20f2323663fd90234d91a064f0584"
+ sha256: eca0337985e0eedcef8a3e5380950af01c0853951b6b8427e7909115d81d7b9c
url: "https://pub.dev"
source: hosted
- version: "5.0.2"
+ version: "5.0.3"
collection:
dependency: transitive
description:
@@ -89,6 +97,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.19.1"
+ crypto:
+ dependency: transitive
+ description:
+ name: crypto
+ sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.6"
csslib:
dependency: transitive
description:
@@ -105,6 +121,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.8"
+ dbus:
+ dependency: transitive
+ description:
+ name: dbus
+ sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.11"
equatable:
dependency: "direct main"
description:
@@ -141,50 +165,58 @@ packages:
dependency: "direct main"
description:
name: firebase_auth
- sha256: "735f857c9363376eeb585e7ba57e67e5f495202cd3f609902b8769795fd823bc"
+ sha256: "3150a56fc0f20b4b926e1343bfdca3acb591a0aa1c95bae5426353f384085352"
url: "https://pub.dev"
source: hosted
- version: "6.1.0"
+ version: "6.1.1"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
- sha256: "5badda0ea5048ffbb1726169cf5530539490de8055c3bd43f4f9cd5fcef8e556"
+ sha256: "7bc50c0d74dd8f4c72d7840ae64ea7b638f203d089e5c4a90a157b2f2ead1963"
url: "https://pub.dev"
source: hosted
- version: "8.1.2"
+ version: "8.1.3"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
- sha256: "07c889d2c56e648ed30225e819801d7e45542747a658d9c385520de35d312dec"
+ sha256: "351dcb82bc542e21a426cd97ffcc40d7232981dafc3fd89a6c932876a09240e1"
url: "https://pub.dev"
source: hosted
- version: "6.0.3"
+ version: "6.0.4"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- sha256: "4dd96f05015c0dcceaa47711394c32971aee70169625d5e2477e7676c01ce0ee"
+ sha256: "132e1c311bc41e7d387b575df0aacdf24efbf4930365eb61042be5bde3978f03"
url: "https://pub.dev"
source: hosted
- version: "4.1.1"
+ version: "4.2.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
- sha256: "5873a370f0d232918e23a5a6137dbe4c2c47cf017301f4ea02d9d636e52f60f0"
+ sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64
url: "https://pub.dev"
source: hosted
- version: "6.0.1"
+ version: "6.0.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
- sha256: "61a51037312dac781f713308903bb7a1762a7f92f7bc286a3a0947fb2a713b82"
+ sha256: ecde2def458292404a4fcd3731ee4992fd631a0ec359d2d67c33baa8da5ec8ae
url: "https://pub.dev"
source: hosted
- version: "3.1.1"
+ version: "3.2.0"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
@@ -194,26 +226,26 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
- sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
+ sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38
url: "https://pub.dev"
source: hosted
- version: "8.1.6"
+ version: "9.1.1"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
- sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
+ sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "6.0.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
+ sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687"
url: "https://pub.dev"
source: hosted
- version: "2.0.30"
+ version: "2.0.32"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -224,6 +256,70 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ geoclue:
+ dependency: transitive
+ description:
+ name: geoclue
+ sha256: c2a998c77474fc57aa00c6baa2928e58f4b267649057a1c76738656e9dbd2a7f
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.1"
+ geolocator:
+ dependency: "direct main"
+ description:
+ name: geolocator
+ sha256: "79939537046c9025be47ec645f35c8090ecadb6fe98eba146a0d25e8c1357516"
+ url: "https://pub.dev"
+ source: hosted
+ version: "14.0.2"
+ geolocator_android:
+ dependency: transitive
+ description:
+ name: geolocator_android
+ sha256: "179c3cb66dfa674fc9ccbf2be872a02658724d1c067634e2c427cf6df7df901a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.0.2"
+ geolocator_apple:
+ dependency: transitive
+ description:
+ name: geolocator_apple
+ sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.3.13"
+ geolocator_linux:
+ dependency: transitive
+ description:
+ name: geolocator_linux
+ sha256: c4e966f0a7a87e70049eac7a2617f9e16fd4c585a26e4330bdfc3a71e6a721f3
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.3"
+ geolocator_platform_interface:
+ dependency: transitive
+ description:
+ name: geolocator_platform_interface
+ sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.2.6"
+ geolocator_web:
+ dependency: transitive
+ description:
+ name: geolocator_web
+ sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.1.3"
+ geolocator_windows:
+ dependency: transitive
+ description:
+ name: geolocator_windows
+ sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.5"
google_identity_services_web:
dependency: transitive
description:
@@ -252,10 +348,10 @@ packages:
dependency: transitive
description:
name: google_maps_flutter_android
- sha256: a6c9d43f6a944ff4bae5c3deb34817970ac3d591dcd7f5bd2ea450ab9e9c514a
+ sha256: f820a3990d4ff23e3baf01ce794f7f08cca9a9ce6c875ec96882d605f6f039df
url: "https://pub.dev"
source: hosted
- version: "2.18.2"
+ version: "2.18.4"
google_maps_flutter_ios:
dependency: transitive
description:
@@ -292,10 +388,10 @@ packages:
dependency: transitive
description:
name: google_sign_in_android
- sha256: "7abdfa0088dc8f7d08eb3dbb1665a72bcb5b37afa256c9ec5d21e1e2d7503e5c"
+ sha256: "7a0d3b7e73e21d88612ebbb1942e91ee1eb35ed3086b1a0a3398b2248be29034"
url: "https://pub.dev"
source: hosted
- version: "7.2.0"
+ version: "7.2.2"
google_sign_in_ios:
dependency: transitive
description:
@@ -320,6 +416,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.0"
+ gsettings:
+ dependency: transitive
+ description:
+ name: gsettings
+ sha256: "1b0ce661f5436d2db1e51f3c4295a49849f03d304003a7ba177d01e3a858249c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.8"
html:
dependency: transitive
description:
@@ -344,14 +448,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.2"
- js:
- dependency: transitive
- description:
- name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
- url: "https://pub.dev"
- source: hosted
- version: "0.6.7"
leak_tracker:
dependency: transitive
description:
@@ -380,34 +476,34 @@ packages:
dependency: transitive
description:
name: lints
- sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
+ sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0
url: "https://pub.dev"
source: hosted
- version: "5.1.1"
+ version: "6.0.0"
location:
dependency: "direct main"
description:
name: location
- sha256: "06be54f682c9073cbfec3899eb9bc8ed90faa0e17735c9d9fa7fe426f5be1dd1"
+ sha256: b080053c181c7d152c43dd576eec6436c40e25f326933051c330da563ddd5333
url: "https://pub.dev"
source: hosted
- version: "5.0.3"
+ version: "8.0.1"
location_platform_interface:
dependency: transitive
description:
name: location_platform_interface
- sha256: "8aa1d34eeecc979d7c9fe372931d84f6d2ebbd52226a54fe1620de6fdc0753b1"
+ sha256: ca8700bb3f6b1e8b2afbd86bd78b2280d116c613ca7bfa1d4d7b64eba357d749
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "6.0.1"
location_web:
dependency: transitive
description:
name: location_web
- sha256: ec484c66e8a4ff1ee5d044c203f4b6b71e3a0556a97b739a5bc9616de672412b
+ sha256: b8e3add5efe0d65c5e692b7a135d80a4015c580d3ea646fa71973e97668dd868
url: "https://pub.dev"
source: hosted
- version: "4.2.0"
+ version: "6.0.1"
matcher:
dependency: transitive
description:
@@ -440,6 +536,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
+ package_info_plus:
+ dependency: transitive
+ description:
+ name: package_info_plus
+ sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
+ url: "https://pub.dev"
+ source: hosted
+ version: "8.3.1"
+ package_info_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: package_info_plus_platform_interface
+ sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.2.1"
path:
dependency: transitive
description:
@@ -460,10 +572,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
- sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db"
+ sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16
url: "https://pub.dev"
source: hosted
- version: "2.2.18"
+ version: "2.2.20"
path_provider_foundation:
dependency: transitive
description:
@@ -496,6 +608,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.0"
+ petitparser:
+ dependency: transitive
+ description:
+ name: petitparser
+ sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.1"
platform:
dependency: transitive
description:
@@ -540,10 +660,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
- sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e
+ sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713"
url: "https://pub.dev"
source: hosted
- version: "2.4.13"
+ version: "2.4.15"
shared_preferences_foundation:
dependency: transitive
description:
@@ -597,6 +717,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.1"
+ sprintf:
+ dependency: transitive
+ description:
+ name: sprintf
+ sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.0"
stack_trace:
dependency: transitive
description:
@@ -653,6 +781,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.0"
+ uuid:
+ dependency: transitive
+ description:
+ name: uuid
+ sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.5.1"
vector_math:
dependency: transitive
description:
@@ -677,6 +813,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.1"
+ win32:
+ dependency: transitive
+ description:
+ name: win32
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.15.0"
xdg_directories:
dependency: transitive
description:
@@ -685,6 +829,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.0"
+ xml:
+ dependency: transitive
+ description:
+ name: xml
+ sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.6.1"
sdks:
dart: ">=3.9.2 <4.0.0"
- flutter: ">=3.29.0"
+ flutter: ">=3.35.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 40259da..8847e19 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -34,8 +34,8 @@ dependencies:
shared_preferences: ^2.2.2
path_provider: ^2.1.1
bcrypt: ^1.1.3
- location: ^5.0.0
- flutter_bloc : ^8.1.3
+ location: ^8.0.1
+ flutter_bloc : ^9.1.1
equatable: ^2.0.5
# The following adds the Cupertino Icons font to your application.
@@ -47,6 +47,7 @@ dependencies:
cloud_firestore: ^6.0.2
google_sign_in: ^7.2.0
google_sign_in_platform_interface: ^3.1.0
+ geolocator: ^14.0.2
dev_dependencies:
flutter_test:
@@ -57,7 +58,7 @@ dev_dependencies:
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
- flutter_lints: ^5.0.0
+ flutter_lints: ^6.0.0
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec