This commit is contained in:
2025-10-16 17:42:46 +02:00
parent dc86955721
commit 2e3a69a23e
12 changed files with 1421 additions and 604 deletions
+23 -8
View File
@@ -5,6 +5,7 @@ import 'package:image/image.dart' as img;
import 'package:shared_preferences/shared_preferences.dart';
import 'yolo_detector.dart';
import 'preview_screen.dart';
import '../utils/translations.dart';
class CameraScreen extends StatefulWidget {
const CameraScreen({super.key});
@@ -21,6 +22,7 @@ class _CameraScreenState extends State<CameraScreen> {
// The variable to hold the number of bullets entered by the user (default set to 5)
int _numberOfBullets = 5;
String _selectedLanguage = 'English';
@override
void initState() {
@@ -28,9 +30,21 @@ class _CameraScreenState extends State<CameraScreen> {
_loadBulletCount();
_initCamera();
_loadBulletColor(); // 👈
_loadLanguage();
YOLODetector.create().then((detector) => _yoloDetector = detector);
}
String _t(String key) {
return AppTranslations.translate(key, _selectedLanguage);
}
Future<void> _loadLanguage() async {
final prefs = await SharedPreferences.getInstance();
setState(() {
_selectedLanguage = prefs.getString('language') ?? 'English';
});
}
Future<void> _loadBulletColor() async {
final prefs = await SharedPreferences.getInstance();
final selected = prefs.getString('bulletColor') ?? 'Blue';
@@ -168,13 +182,14 @@ Color _getColorFromName(String colorName) {
padding: const EdgeInsets.all(24.0), // Increased padding for better spacing
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Padding(
padding: EdgeInsets.only(bottom: 16.0),
Padding(
padding: const EdgeInsets.only(bottom: 16.0),
child: Text(
'Select the number of bullets',
style: TextStyle(
_t('Select the number of bullets'),
textAlign: TextAlign.center,
style: const TextStyle(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.bold,
@@ -245,9 +260,9 @@ Color _getColorFromName(String colorName) {
extendBody: true,
appBar: AppBar(
backgroundColor: Colors.grey[900],
title: const Text(
"Align the target inside the square",
style: TextStyle(
title: Text(
_t("Align the target inside the square"),
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.white,