// * Widget for selecting camera trap media type // * Provides radio button selection between: // * - Photo mode // * - Film/Video mode // * Includes localization support import 'package:flutter/material.dart'; import 'package:fforte/l10n/app_localizations.dart'; /// Widget for selecting between photo and film/video mode /// Uses radio buttons for selection with localized labels class FotoFilm extends StatefulWidget { /// Callback function when media type selection changes final Function(String) onFotoFilmChanged; /// Initial media type selection ('foto' by default) final String initialFotoFilm; const FotoFilm( {super.key, required this.onFotoFilmChanged, this.initialFotoFilm = 'foto'}); @override State createState() => _FotoFilmState(); } /// State class for the photo/film selection widget class _FotoFilmState extends State { /// Currently selected media type String? _selectedFotoFilm; @override void initState() { super.initState(); _selectedFotoFilm = widget.initialFotoFilm; } @override Widget build(BuildContext context) { return Column( children: [ // Photo mode radio button ListTile( visualDensity: const VisualDensity(vertical: -4), title: Text(AppLocalizations.of(context)!.foto), leading: Radio( value: 'Foto', groupValue: _selectedFotoFilm, onChanged: (value) { setState(() { _selectedFotoFilm = value; widget.onFotoFilmChanged(value!); }); }, ), ), // Film/Video mode radio button ListTile( visualDensity: const VisualDensity(vertical: -4), title: Text(AppLocalizations.of(context)!.film), leading: Radio( value: 'Film', groupValue: _selectedFotoFilm, onChanged: (value) { setState(() { _selectedFotoFilm = value; widget.onFotoFilmChanged(value!); }); }, ), ), ], ); } }