import 'package:fforte/screens/sharedMethods/send_file.dart'; import 'package:flutter/material.dart'; import 'l10n/app_localizations.dart'; import 'screens/addCam/add_cam_main.dart'; // * Home screen of the LUPUS app // * Serves as the main navigation hub with sections for: // * - Camera trap management // * - Excursion tracking // * - File operations // * - Settings access /// Home screen widget providing access to all main app features class HomePage extends StatelessWidget { const HomePage({super.key}); // Commented out legacy file sending functionality // void _sendFile() async { // // FilePickerResult? result = await FilePicker.platform.pickFiles(); // // if (result != null) { // // File file = File(result.files.single.path!); // // String content = await file.readAsString(); // // HttpRequest.httpRequest(saveDataString: content); // // } // } @override Widget build(BuildContext context) { return Scaffold( // App bar with settings menu appBar: AppBar( title: const Text("LUPUS"), actions: [ PopupMenuButton( onSelected: (value) { Navigator.pushNamed(context, value.toString()); }, itemBuilder: (context) => [ // Settings menu option PopupMenuItem( value: '/settings', child: Text(AppLocalizations.of(context)!.settings), ), // Option to show intro screen PopupMenuItem( value: '/introScreen', child: Text(AppLocalizations.of(context)!.showloginscreen), ), ], ), ], ), // Main content area body: Column( children: [ // App logo at the top Image.asset('assets/images/reconix_small.png'), Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const SizedBox(height: 30), // * Camera Trap Management Section // Button to add new camera location ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: const Size(250, 40), padding: const EdgeInsets.fromLTRB(10, 5, 10, 5), ), onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => const AddCamMain(), ), ); }, child: Text(AppLocalizations.of(context)!.addplace), ), // Button to view camera locations ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: const Size(250, 40), ), onPressed: () => Navigator.pushNamed(context, '/viewCams'), child: Text(AppLocalizations.of(context)!.viewplaces), ), // Visual section divider const SizedBox(height: 20), const Divider(), const SizedBox(height: 20), // * Excursion Management Section // Button to start new excursion ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: const Size(250, 40), ), onPressed: () => Navigator.pushNamed(context, '/excursion'), child: Text(AppLocalizations.of(context)!.excursion), ), const SizedBox(height: 10), // Button to view excursions ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: const Size(250, 40), ), onPressed: () => Navigator.pushNamed(context, '/viewExcursionen'), child: Text(AppLocalizations.of(context)!.viewExcursionen), ), // Visual section divider const SizedBox(height: 20), const Divider(), const SizedBox(height: 20), // * File Operations Section // Button to send data files ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: const Size(250, 40), ), onPressed: () { SendFile.sendFile(); }, child: Text(AppLocalizations.of(context)!.sendfile), ), ], ), ), ], ), ); } }