Compare commits

..

No commits in common. "8adcd803069d50b40a11360e9aa9084a9aa68f14" and "938b677b6ecc1ea5b189672bfd4074a3a6d59d59" have entirely different histories.

8 changed files with 47 additions and 59 deletions

View File

@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'alert.dart';
class MyDrawer extends StatelessWidget with ShowAlertDialog {
class MyDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Drawer(
@ -40,8 +39,7 @@ class MyDrawer extends StatelessWidget with ShowAlertDialog {
leading: Icon(Icons.info),
title: Text('About'),
onTap: () {
showAlertDialog(
context, 'About', "Version 0.0.1"); // Close the drawer
Navigator.pop(context); // Close the drawer
},
),
],

View File

@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
mixin ShowAlertDialog {
void showAlertDialog(BuildContext context, String title, String text) {
mixin ShowErrorDialog<T extends StatefulWidget> on State<T> {
void showErrorDialog(BuildContext context, String text) {
// Create AlertDialog
AlertDialog dialog = AlertDialog(
title: Text(title),
title: Text("Error"),
content: Text(text),
actions: [
ElevatedButton(

View File

@ -32,7 +32,7 @@ class LoginDemo extends StatefulWidget {
_LoginDemoState createState() => _LoginDemoState();
}
class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
class _LoginDemoState extends State<LoginDemo> with ShowErrorDialog {
TextEditingController inputPseudo = TextEditingController();
TextEditingController inputPassword = TextEditingController();
Future<void> _login(BuildContext context) async {
@ -120,13 +120,13 @@ class _LoginDemoState extends State<LoginDemo> with ShowAlertDialog {
}
break;
}
showAlertDialog(context, "Erreur serveur", text);
showErrorDialog(context, text);
}
} catch (e) {
showAlertDialog(context, "Erreur", "${e}");
showErrorDialog(context, "${e}");
}
} else {
showAlertDialog(context, "Erreur", "Champ vide");
showErrorDialog(context, "Champ vide");
}
}

View File

@ -54,7 +54,7 @@ class DisplayPictureScreen extends StatefulWidget {
// A widget that displays the picture taken by the user.
class DisplayPictureScreenState extends State<DisplayPictureScreen>
with ShowDescImageAdd, ShowAlertDialog, TickerProviderStateMixin {
with ShowDescImageAdd, ShowErrorDialog, TickerProviderStateMixin {
late AnimationController controller;
@override
void initState() {
@ -80,7 +80,7 @@ class DisplayPictureScreenState extends State<DisplayPictureScreen>
Future<void> displayError(String e) async {
print("problem gemini : ${e}");
showAlertDialog(context, 'Error IA',
showErrorDialog(context,
"L'IA de Google n'a pas su analyser l'image. Recommecer avec une autre");
}
@ -119,15 +119,14 @@ class DisplayPictureScreenState extends State<DisplayPictureScreen>
builder: (_) => ItemMenu(title: events[0]["id"])));
}
} else {
showAlertDialog(context, 'Erreur de reponse',
showErrorDialog(context,
"response status code update : ${responseGet.statusCode}");
}
} else {
showAlertDialog(context, "Erreur de reponse", "Erreur de token");
showErrorDialog(context, "Erreur de token");
}
} catch (e) {
showAlertDialog(
context, "Erreur IA", "Erreur de format de donnée fourni par l'IA");
showErrorDialog(context, "Erreur de format de donnée fourni par l'IA");
}
//showDescImageAddDialog(context, message);

View File

@ -52,7 +52,7 @@ class EditEvent extends StatefulWidget {
}
class _EditEventState extends State<EditEvent>
with ShowAlertDialog, ShowEventDialog {
with ShowErrorDialog, ShowEventDialog {
TextEditingController inputName = TextEditingController();
TextEditingController inputDate = TextEditingController();
@ -208,8 +208,7 @@ class _EditEventState extends State<EditEvent>
var events = jsonDecode(utf8.decode(responseGet.bodyBytes));
if (events.length > 0) {
if (events[0]["id"] != widget.events!.id) {
showAlertDialog(
context, "Info evenement", "Evenement deja existant");
showErrorDialog(context, "Evenement deja existant");
}
return;
@ -237,7 +236,7 @@ class _EditEventState extends State<EditEvent>
final status = res.statusCode;
print("code status imgbb ${status}");
if (status != 200) {
showAlertDialog(context, "Erreur image", "Image non posté");
showErrorDialog(context, "Image non posté");
return;
}
var body = json.decode(utf8.decode(res.bodyBytes));
@ -307,23 +306,22 @@ class _EditEventState extends State<EditEvent>
}
break;
}
showAlertDialog(context, "Erreur serveur", text);
showErrorDialog(context, text);
}
} else {
showAlertDialog(
context, "Erreur serveur", "Aucune donnée geographique");
showErrorDialog(context, "Aucune donnée geographique");
}
} else {
showAlertDialog(context, "Erreur serveur", "Mapbox non accessible");
showErrorDialog(context, "Mapbox non accessible");
}
} catch (e) {
showAlertDialog(context, "Erreur serveur", "${e}");
showErrorDialog(context, "${e}");
}
} else {
showAlertDialog(context, "Erreur utilisateur", "Champ vide");
showErrorDialog(context, "Champ vide");
}
} else {
showAlertDialog(context, "Erreur evenement", "Evenement non futur");
showErrorDialog(context, "Evenement non futur");
}
}

View File

@ -67,7 +67,7 @@ class ItemMenu extends StatefulWidget {
State<ItemMenu> createState() => _ItemMenuState();
}
class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
class _ItemMenuState extends State<ItemMenu> with ShowErrorDialog {
String listUser = "";
String eventName = "";
String eventStartDate = "";
@ -169,10 +169,10 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
}
break;
}
showAlertDialog(context, "Erreur serveur", text);
showErrorDialog(context, text);
}
} else {
showAlertDialog(context, "Erreur serveur", "Cache invalide");
showErrorDialog(context, "Cache invalide");
}
setState(() {

View File

@ -42,7 +42,7 @@ class MapboxPages extends StatefulWidget {
State<MapboxPages> createState() => _MapboxPagesState();
}
class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
class _MapboxPagesState extends State<MapboxPages> with ShowErrorDialog {
late MapboxMapController mapController;
late String mapboxAccessToken;
List<LatLng> routeCoordinates = [];
@ -63,8 +63,7 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
void _initToken() {
mapboxAccessToken = dotenv.env['MAPBOX_ACCESS_TOKEN'] ?? '';
if (mapboxAccessToken.isEmpty) {
showAlertDialog(
context, "Erreur Mapbox", "Mapbox Access Token is not available.");
showErrorDialog(context, "Mapbox Access Token is not available.");
}
}
@ -89,7 +88,7 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
_handleErrorResponse(responseGet.statusCode);
}
} else {
showAlertDialog(context, "Erreur serveur", "Invalid cache.");
showErrorDialog(context, "Invalid cache.");
}
}
@ -117,15 +116,14 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
default:
text = "Unknown error.";
}
showAlertDialog(context, "Erreur serveur", text);
showErrorDialog(context, text);
}
Future<void> _getUserLocation() async {
try {
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
showAlertDialog(
context, "Erreur de service", "Location services are disabled.");
showErrorDialog(context, "Location services are disabled.");
return;
}
@ -133,14 +131,13 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
if (permission == LocationPermission.denied) {
permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
showAlertDialog(context, "Erreur de permission",
"Location permissions are denied.");
showErrorDialog(context, "Location permissions are denied.");
return;
}
}
if (permission == LocationPermission.deniedForever) {
showAlertDialog(context, "Erreur de permission",
showErrorDialog(context,
"Location permissions are permanently denied. Enable them in settings.");
return;
}
@ -174,7 +171,7 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
_initToken();
_getEventInfo();
} catch (e) {
showAlertDialog(context, "Erreur geo", "Failed to get user location: $e");
showErrorDialog(context, "Failed to get user location: $e");
}
}
@ -194,8 +191,8 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
}).toList();
});
} else {
showAlertDialog(context, "Erreur serveur",
"Failed to fetch the route: ${response.statusCode}");
showErrorDialog(
context, "Failed to fetch the route: ${response.statusCode}");
}
}
@ -247,8 +244,8 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
currentRouteLine = null;
}
if (!isUserPositionInitialized) {
showAlertDialog(context, "Erreur de position",
"User position is not yet initialized. Try again.");
showErrorDialog(
context, "User position is not yet initialized. Try again.");
return;
}
@ -287,8 +284,7 @@ class _MapboxPagesState extends State<MapboxPages> with ShowAlertDialog {
_zoomToFitRoute(routeCoordinates);
}
} else {
showAlertDialog(context, "Erreur de coordonée",
"Invalid coordinates or user position.");
showErrorDialog(context, "Invalid coordinates or user position.");
}
}

View File

@ -44,7 +44,7 @@ class UpdateeventImage extends StatefulWidget {
}
class _UpdateeventImageState extends State<UpdateeventImage>
with ShowAlertDialog, ShowEventDialog {
with ShowErrorDialog, ShowEventDialog {
TextEditingController inputName = TextEditingController();
TextEditingController inputDate = TextEditingController();
@ -156,7 +156,7 @@ class _UpdateeventImageState extends State<UpdateeventImage>
var endDate = "${endDateFormat}T${endTimepicker.text.replaceAll('-', ':')}";
if (!startDateCompare.isAfter(dateNow)) {
showAlertDialog(context, "Erreur evenement", "Evenement non futur");
showErrorDialog(context, "Evenement non futur");
return;
}
@ -164,7 +164,7 @@ class _UpdateeventImageState extends State<UpdateeventImage>
var accessToken = prefs.getString("access_token") ?? "";
if (accessToken.isEmpty) {
showAlertDialog(context, "Erreur token", "Token d'accès manquant");
showErrorDialog(context, "Token d'accès manquant");
return;
}
@ -179,14 +179,13 @@ class _UpdateeventImageState extends State<UpdateeventImage>
final searchboxResponse = await http.get(searchboxUrl);
if (searchboxResponse.statusCode != 200) {
showAlertDialog(context, "Erreur map",
"Erreur lors de la géocodage avec Searchbox");
showErrorDialog(context, "Erreur lors de la géocodage avec Searchbox");
return;
}
final searchboxData = json.decode(searchboxResponse.body);
if (searchboxData['results'].isEmpty) {
showAlertDialog(context, "Erreur", "Lieu introuvable");
showErrorDialog(context, "Lieu introuvable");
return;
}
@ -230,8 +229,7 @@ class _UpdateeventImageState extends State<UpdateeventImage>
await http.Response.fromStream(await imgbbRequest.send());
if (imgbbResponse.statusCode != 200) {
showAlertDialog(
context, "Erreur serveur", "Erreur lors de l'upload d'image");
showErrorDialog(context, "Erreur lors de l'upload d'image");
return;
}
@ -267,7 +265,7 @@ class _UpdateeventImageState extends State<UpdateeventImage>
handleHttpError(eventResponse.statusCode, context);
}
} catch (e) {
showAlertDialog(context, "Erreur", "Erreur: ${e.toString()}");
showErrorDialog(context, "Erreur: ${e.toString()}");
}
}
@ -281,8 +279,7 @@ class _UpdateeventImageState extends State<UpdateeventImage>
410: "Token invalide",
500: "Problème interne du serveur",
};
showAlertDialog(context, "Erreur serveur",
errorMessages[statusCode] ?? "Erreur inconnue");
showErrorDialog(context, errorMessages[statusCode] ?? "Erreur inconnue");
}
void start() async {