Cette mise à jour introduit une fonctionnalité de scan de QR codes directement depuis l'application, permettant aux utilisateurs de retrouver et d'accéder rapidement à la page de détail d'un équipement ou d'un conteneur.
**Features :**
- **Scan de QR Code :**
- Un nouveau bouton "Scanner QR Code" est ajouté sur les pages de gestion des équipements et des conteneurs.
- L'appui sur ce bouton ouvre une nouvelle boîte de dialogue (`QRCodeScannerDialog`) utilisant la caméra de l'appareil pour scanner un QR code.
- Le scanner affiche un overlay visuel clair avec un cadre de détection et fournit un retour visuel (icône de validation) lorsqu'un code est détecté avec succès.
- **Recherche et Redirection Intelligente :**
- Une fois un QR code scanné, l'application recherche l'ID correspondant d'abord dans les équipements, puis dans les conteneurs.
- Si une correspondance est trouvée, l'utilisateur est automatiquement redirigé vers la page de détail de l'élément correspondant (`EquipmentDetailPage` ou `ContainerDetailPage`).
- Un message informe l'utilisateur si aucun élément ne correspond à l'ID scanné.
**Changements Techniques :**
- **Dépendance :** Ajout de la bibliothèque `mobile_scanner` pour gérer la fonctionnalité de scan.
- **Nouveau Widget :** Création du widget `QRCodeScannerDialog`, un dialogue réutilisable et stylisé pour le scan, incluant un overlay personnalisé (`_ScannerOverlayPainter`).
- **Intégration UI :**
- Le `ManagementSearchBar` accepte désormais une liste de `additionalActions` pour permettre l'ajout de boutons personnalisés comme celui du scanner.
- Ajout du bouton de scan sur les écrans `EquipmentManagementPage` et `ContainerManagementPage`, à la fois en version bureau (icône) et mobile (bouton plein).
- **Logique de Recherche :** Implémentation de la fonction `_scanQRCode` dans les deux pages de gestion pour orchestrer l'ouverture du scanner, la recherche dans les `EquipmentProvider` et `ContainerProvider`, et la navigation.
75 lines
1.5 KiB
YAML
75 lines
1.5 KiB
YAML
name: em2rp
|
|
description: "A new Flutter project."
|
|
publish_to: 'none'
|
|
version: 1.0.0+1
|
|
|
|
environment:
|
|
sdk: ^3.5.4
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
|
|
firebase_core: ^4.2.0
|
|
firebase_auth: ^6.1.1
|
|
cloud_firestore: ^6.0.3
|
|
cloud_functions: ^6.0.4
|
|
google_sign_in: ^7.2.0
|
|
provider: ^6.1.2
|
|
firebase_storage: ^13.0.3
|
|
image_picker: ^1.1.2
|
|
universal_io: ^2.2.2
|
|
cupertino_icons: ^1.0.2
|
|
table_calendar: ^3.0.9
|
|
intl: ^0.20.2
|
|
google_maps_flutter: ^2.5.0
|
|
permission_handler: ^12.0.0+1
|
|
geolocator: ^14.0.1
|
|
flutter_map: ^8.1.1
|
|
latlong2: ^0.9.0
|
|
flutter_launcher_icons: ^0.14.3
|
|
flutter_native_splash: ^2.3.9
|
|
url_launcher: ^6.2.2
|
|
share_plus: ^12.0.1
|
|
path_provider: ^2.1.2
|
|
pdf: ^3.10.7
|
|
printing: ^5.11.1
|
|
qr_flutter: ^4.1.0
|
|
mobile_scanner: ^5.2.3
|
|
flutter_local_notifications: ^19.2.1
|
|
timezone: ^0.10.1
|
|
flutter_secure_storage: ^9.0.0
|
|
http: ^1.1.2
|
|
flutter_dotenv: ^6.0.0
|
|
google_fonts: ^6.1.0
|
|
flutter_svg: ^2.2.1
|
|
cached_network_image: ^3.3.1
|
|
flutter_staggered_grid_view: ^0.7.0
|
|
shimmer: ^3.0.0
|
|
flutter_slidable: ^4.0.0
|
|
flutter_datetime_picker: ^1.5.1
|
|
flutter_colorpicker: ^1.0.3
|
|
flutter_rating_bar: ^4.0.1
|
|
flutter_chat_ui: ^2.3.1
|
|
flutter_chat_types: ^3.6.2
|
|
uuid: ^4.2.2
|
|
file_picker: ^10.1.9
|
|
flutter_dropzone: ^4.2.1
|
|
flutter_localizations:
|
|
sdk: flutter
|
|
timeago: ^3.6.1
|
|
|
|
path: any
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
flutter_lints: ^6.0.0
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
assets:
|
|
- assets/
|
|
- assets/images/
|
|
- assets/logos/
|
|
- assets/icons/
|