diff --git a/lib/app.dart b/lib/app.dart index b9242683..23f18847 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -3,7 +3,6 @@ import 'package:provider/provider.dart'; import 'core/theme/theme_provider.dart'; import 'core/theme/app_theme.dart'; import 'main_navigation_holder.dart'; -import 'features/home/home_screen.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; class BullyApp extends StatelessWidget { diff --git a/lib/data/database/database_helper.dart b/lib/data/database/database_helper.dart index bcbdd0c1..7736a9c1 100644 --- a/lib/data/database/database_helper.dart +++ b/lib/data/database/database_helper.dart @@ -1,4 +1,3 @@ -import 'dart:io'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import '../models/session.dart'; diff --git a/lib/features/analysis/analysis_screen.dart b/lib/features/analysis/analysis_screen.dart index 30cc8fd6..aec18c81 100644 --- a/lib/features/analysis/analysis_screen.dart +++ b/lib/features/analysis/analysis_screen.dart @@ -118,7 +118,6 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> { TransformationController(); final GlobalKey _imageKey = GlobalKey(); double _currentZoomScale = 1.0; - String? _movingShotId; @override void initState() { diff --git a/lib/features/analysis/impact_editor_screen.dart b/lib/features/analysis/impact_editor_screen.dart index 8bb54cc9..4039c3a8 100644 --- a/lib/features/analysis/impact_editor_screen.dart +++ b/lib/features/analysis/impact_editor_screen.dart @@ -20,7 +20,6 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../../core/theme/app_theme.dart'; import '../../data/models/shot.dart'; import 'analysis_provider.dart'; import 'widgets/target_overlay.dart'; diff --git a/lib/features/analysis/widgets/target_calibration.dart b/lib/features/analysis/widgets/target_calibration.dart index e3fe3e0d..51a1dd25 100644 --- a/lib/features/analysis/widgets/target_calibration.dart +++ b/lib/features/analysis/widgets/target_calibration.dart @@ -4,7 +4,6 @@ /// Les anneaux sont répartis proportionnellement. library; -import 'dart:math' as math; import 'package:flutter/material.dart'; import '../../../core/theme/app_theme.dart'; import '../../../data/models/target_type.dart'; diff --git a/lib/features/capture/capture_screen.dart b/lib/features/capture/capture_screen.dart index 3626b331..da4faee5 100644 --- a/lib/features/capture/capture_screen.dart +++ b/lib/features/capture/capture_screen.dart @@ -15,7 +15,6 @@ import '../../data/models/target_type.dart'; import '../crop/crop_screen.dart'; import '../session/session_provider.dart'; import 'widgets/image_source_button.dart'; -import '../../services/image_crop_service.dart'; import '../../services/opencv_target_service.dart'; import '../../services/parallelism_service.dart'; // NOUVEAU import 'package:image/image.dart' as img; @@ -31,7 +30,6 @@ class CaptureScreen extends StatefulWidget { class _CaptureScreenState extends State with SingleTickerProviderStateMixin { final ImagePicker _picker = ImagePicker(); - final ImageCropService _cropService = ImageCropService(); final TargetType _selectedType = TargetType.concentric; final OpenCVTargetService _opencvService = OpenCVTargetService(); @@ -56,15 +54,12 @@ class _CaptureScreenState extends State // Caméra live CameraController? _cameraController; List? _cameras; - bool _isCameraInitialized = false; bool _showLiveCamera = false; // Animation pulsation du viseur late AnimationController _scanAnimationController; - late Animation _scanAnimation; // Détection OpenCV (cible circulaire) — on garde le résultat COMPLET - bool? _alignmentStatus; TargetDetectionResult? _targetResult; // NOUVEAU : centre + rayon de la cible Timer? _detectionTimer; bool _isAnalyzingFrame = false; @@ -80,10 +75,6 @@ class _CaptureScreenState extends State duration: const Duration(seconds: 2), vsync: this, )..repeat(reverse: true); - - _scanAnimation = Tween(begin: 0.8, end: 1.0).animate( - CurvedAnimation(parent: _scanAnimationController, curve: Curves.easeInOut), - ); } @override @@ -190,7 +181,6 @@ class _CaptureScreenState extends State if (_cameraController != null) { await _cameraController!.dispose(); _cameraController = null; - _isCameraInitialized = false; } _cameras = await availableCameras(); @@ -211,9 +201,7 @@ class _CaptureScreenState extends State await _cameraController!.initialize(); setState(() { - _isCameraInitialized = true; _showLiveCamera = true; - _alignmentStatus = null; _targetResult = null; // reset détection cible _parallelismData = null; // NOUVEAU : reset IMU }); @@ -269,16 +257,6 @@ class _CaptureScreenState extends State setState(() { // On garde le résultat complet pour dessiner le cercle. _targetResult = result.success ? result : null; - - if (!result.success) { - _alignmentStatus = null; - } else { - final bool isCentered = - result.centerX > 0.25 && result.centerX < 0.75 && - result.centerY > 0.25 && result.centerY < 0.75; - final bool isSizedCorrectly = result.radius > 0.15; - _alignmentStatus = isCentered && isSizedCorrectly; - } }); } } catch (e) { @@ -298,7 +276,6 @@ class _CaptureScreenState extends State _cameraController!.stopImageStream(); } } catch (_) {} - _alignmentStatus = null; _targetResult = null; } diff --git a/lib/features/crop/crop_screen.dart b/lib/features/crop/crop_screen.dart index e1e62116..c6368e8e 100644 --- a/lib/features/crop/crop_screen.dart +++ b/lib/features/crop/crop_screen.dart @@ -345,21 +345,6 @@ class _CropScreenState extends State { void _initializeImagePosition() { if (_imageSize == null) return; - final imageAspect = _imageSize!.width / _imageSize!.height; - final viewportAspect = _viewportSize.width / _viewportSize.height; - - // 1. Calcul strict de la taille de l'image affichée en BoxFit.contain - double displayWidth, displayHeight; - if (imageAspect > viewportAspect) { - displayWidth = _viewportSize.width; - displayHeight = _viewportSize.width / imageAspect; - } else { - displayHeight = _viewportSize.height; - displayWidth = _viewportSize.height * imageAspect; - } - - final minDisplayDim = math.min(displayWidth, displayHeight); - // 2. Calcul du scale initial basé sur la dimension de l'image (et non du viewport) _scale = widget.initialScale ?? 1.0; if (_scale < 1.0 && widget.initialScale == null) _scale = 1.0; diff --git a/lib/features/session/session_provider.dart b/lib/features/session/session_provider.dart index 6b58129b..b5257973 100644 --- a/lib/features/session/session_provider.dart +++ b/lib/features/session/session_provider.dart @@ -1,7 +1,5 @@ import 'package:flutter/foundation.dart'; -import '../../data/models/session.dart'; import '../../data/models/target_analysis.dart'; -import '../../data/models/weapon.dart'; class SessionProvider extends ChangeNotifier { DateTime? _sessionDate; diff --git a/lib/features/settings/settings_screen.dart b/lib/features/settings/settings_screen.dart index c36b2e37..b0d52df9 100644 --- a/lib/features/settings/settings_screen.dart +++ b/lib/features/settings/settings_screen.dart @@ -85,8 +85,6 @@ class _SettingsScreenState extends State { } void _showThemeDialog() { - final themeProvider = context.read(); - showDialog( context: context, builder: (context) => AlertDialog( diff --git a/lib/services/parallelism_service.dart b/lib/services/parallelism_service.dart index 004ea182..4dc909b0 100644 --- a/lib/services/parallelism_service.dart +++ b/lib/services/parallelism_service.dart @@ -119,7 +119,6 @@ class ParallelismService { // Normalisation par la magnitude réelle (indépendant de g exact) final double nx = gx / magnitude; - final double ny = gy / magnitude; final double nz = gz / magnitude; // Pitch et Roll mesurent l'inclinaison autour de chaque axe.