Files
SDKmuta/lib/screens/home_screen.dart
T
2025-10-16 17:42:46 +02:00

127 lines
3.2 KiB
Dart

import 'package:flutter/material.dart';
import 'book_screen.dart';
import 'calendar_screen.dart';
import 'settings_screen.dart';
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 {
const HomeScreen({super.key});
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
int _selectedIndex = 1; // Default to Shooting Screen
String _selectedLanguage = 'English';
static final List<Widget> _pages = <Widget>[
BookScreen(),
TargetScreen(),
Placeholder(), // Placeholder for Scan - optional
CalendarScreen(),
SettingsScreen(),
];
final List<String> _pageTitles = [
'Book',
'Shooting',
'Scan',
'Calendar',
'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();
return;
}
setState(() {
_selectedIndex = index;
});
// Reload language when switching screens to pick up any changes from Settings
_loadLanguage();
}
//void _logout() {
// Navigator.of(context).pushAndRemoveUntil(
// MaterialPageRoute(builder: (context) => const LoginScreen()),
// (Route<dynamic> route) => false,
// );
//}
// When opening the camera screen, ensure the shooting screen is always selected after returning
void _openCameraScan() async {
// Navigate to CameraScreen
await Navigator.of(context).push(
MaterialPageRoute(builder: (context) => const CameraScreen()),
);
// After returning, ensure that Shooting screen (index 1) is selected
setState(() {
_selectedIndex = 1;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
_t(_pageTitles[_selectedIndex]),
style: const TextStyle(color: Colors.white),
),
backgroundColor: Colors.grey[900],
iconTheme: const IconThemeData(color: Colors.white),
automaticallyImplyLeading: false,
scrolledUnderElevation: 0, // For Material 3 (Flutter 3.7+)
actions: [
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,
),
),
),
),
],
),
body: _pages[_selectedIndex],
bottomNavigationBar: BottomNavBar(
selectedIndex: _selectedIndex,
onItemTapped: _onItemTapped,
selectedLanguage: _selectedLanguage,
),
);
}
}