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
+37 -5
View File
@@ -6,6 +6,8 @@ import 'target_screen.dart';
import '../widgets/bottom_nav.dart';
//import 'login_screen.dart';
import 'camera_screen.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../utils/translations.dart';
class HomeScreen extends StatefulWidget {
@@ -17,6 +19,7 @@ class HomeScreen extends StatefulWidget {
class _HomeScreenState extends State<HomeScreen> {
int _selectedIndex = 1; // Default to Shooting Screen
String _selectedLanguage = 'English';
static final List<Widget> _pages = <Widget>[
BookScreen(),
@@ -26,7 +29,7 @@ class _HomeScreenState extends State<HomeScreen> {
SettingsScreen(),
];
static final List<String> _pageTitles = [
final List<String> _pageTitles = [
'Book',
'Shooting',
'Scan',
@@ -34,6 +37,23 @@ class _HomeScreenState extends State<HomeScreen> {
'Settings'
];
@override
void initState() {
super.initState();
_loadLanguage();
}
String _t(String key) {
return AppTranslations.translate(key, _selectedLanguage);
}
Future<void> _loadLanguage() async {
final prefs = await SharedPreferences.getInstance();
setState(() {
_selectedLanguage = prefs.getString('language') ?? 'English';
});
}
void _onItemTapped(int index) {
if (index == 2) {
_openCameraScan();
@@ -42,6 +62,8 @@ class _HomeScreenState extends State<HomeScreen> {
setState(() {
_selectedIndex = index;
});
// Reload language when switching screens to pick up any changes from Settings
_loadLanguage();
}
//void _logout() {
@@ -69,7 +91,7 @@ class _HomeScreenState extends State<HomeScreen> {
return Scaffold(
appBar: AppBar(
title: Text(
_pageTitles[_selectedIndex],
_t(_pageTitles[_selectedIndex]),
style: const TextStyle(color: Colors.white),
),
backgroundColor: Colors.grey[900],
@@ -77,9 +99,18 @@ class _HomeScreenState extends State<HomeScreen> {
automaticallyImplyLeading: false,
scrolledUnderElevation: 0, // For Material 3 (Flutter 3.7+)
actions: [
IconButton(
icon: const Icon(Icons.logout, color: Colors.red),
onPressed: null, // disables the button
Padding(
padding: const EdgeInsets.only(right: 16.0),
child: Center(
child: Text(
'V1.0.0',
style: TextStyle(
color: Colors.grey[400],
fontSize: 12,
fontWeight: FontWeight.w500,
),
),
),
),
],
),
@@ -87,6 +118,7 @@ class _HomeScreenState extends State<HomeScreen> {
bottomNavigationBar: BottomNavBar(
selectedIndex: _selectedIndex,
onItemTapped: _onItemTapped,
selectedLanguage: _selectedLanguage,
),
);
}