new targets
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import '../utils/translations.dart';
|
||||
import '../utils/target_colors.dart';
|
||||
|
||||
class SettingsScreen extends StatefulWidget {
|
||||
const SettingsScreen({super.key});
|
||||
@@ -10,6 +11,7 @@ class SettingsScreen extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _SettingsScreenState extends State<SettingsScreen> {
|
||||
Color _backgroundColor = Colors.grey[900]!;
|
||||
List<String> _cameraIPs = List.generate(6, (index) => 'Not Set');
|
||||
|
||||
final List<String> _defaultIPs = [
|
||||
@@ -57,9 +59,23 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
'assets/targets/Target5.jpg',
|
||||
'assets/targets/Target6.jpg',
|
||||
'assets/targets/Target7.jpg',
|
||||
'assets/targets/Target8.jpg',
|
||||
'assets/targets/Target9.jpg',
|
||||
'assets/targets/Target10.jpg',
|
||||
'assets/targets/Target11.jpg',
|
||||
'assets/targets/Target12.jpg',
|
||||
'assets/targets/Target13.jpg',
|
||||
'assets/targets/Target14.jpg',
|
||||
'assets/targets/Target15.jpg',
|
||||
'assets/targets/Target16.jpg',
|
||||
'assets/targets/Target17.jpg',
|
||||
'assets/targets/Target18.jpg',
|
||||
'assets/targets/Target19.jpg',
|
||||
'assets/targets/Target20.jpg',
|
||||
'assets/targets/Target21.jpg',
|
||||
'assets/targets/Target22.jpg',
|
||||
'assets/targets/Target23.jpg',
|
||||
'assets/targets/Target24.jpg',
|
||||
];
|
||||
|
||||
@override
|
||||
@@ -155,22 +171,27 @@ Future<void> _loadSelectedTarget() async {
|
||||
|
||||
setState(() {
|
||||
_selectedTarget = savedTarget;
|
||||
_backgroundColor = TargetColors.getBackgroundColor(savedTarget);
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _saveSelectedTarget(String target) async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString('selectedTarget', target);
|
||||
setState(() => _selectedTarget = target);
|
||||
setState(() {
|
||||
_selectedTarget = target;
|
||||
_backgroundColor = TargetColors.getBackgroundColor(target);
|
||||
});
|
||||
}
|
||||
|
||||
String _getTargetDisplayName(String targetPath) {
|
||||
if (targetPath == 'assets/target.png') {
|
||||
return 'Default Target';
|
||||
return _t('Default Target');
|
||||
}
|
||||
return targetPath
|
||||
final targetName = targetPath
|
||||
.replaceAll('assets/targets/', '')
|
||||
.replaceAll('.jpg', '');
|
||||
return _t(targetName);
|
||||
}
|
||||
|
||||
Future<void> _loadCameraIPs() async {
|
||||
@@ -345,7 +366,7 @@ String _getTargetDisplayName(String targetPath) {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
backgroundColor: _backgroundColor,
|
||||
body: SingleChildScrollView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16),
|
||||
child: Column(
|
||||
@@ -952,6 +973,12 @@ void _showTargetPopup() {
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey[300],
|
||||
borderRadius: index == 5
|
||||
? const BorderRadius.only(
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
)
|
||||
: null,
|
||||
border: index < 5
|
||||
? Border(
|
||||
bottom: BorderSide(
|
||||
@@ -984,15 +1011,6 @@ void _showTargetPopup() {
|
||||
],
|
||||
),
|
||||
),
|
||||
if (index == 5)
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: const BorderRadius.only(
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user