import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher_string.dart'; import 'package:voyagehandbook/views/downloads.dart'; import 'package:voyagehandbook/views/home.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import '../views/search.dart'; /* Voyage Handbook - The open-source WikiVoyage reader Copyright (C) 2023 Matyáš Caras This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /// Used to generate the drawer /// /// Use `0` in `page` if you don't want any tile selected Drawer genDrawer(int page, BuildContext context) => Drawer( child: ListView( children: [ DrawerHeader( child: Column( children: [ const Text( "Voyage Handbook", style: TextStyle(fontWeight: FontWeight.bold), ), Text(AppLocalizations.of(context)!.creditsCreatedBy), Text(AppLocalizations.of(context)!.creditsAffiliation) ], ), ), ListTile( selected: page == 1, title: const Text("Home"), leading: const Icon(Icons.home), onTap: () => page == 1 ? Navigator.of(context).pop() : Navigator.of(context).push( MaterialPageRoute( builder: (_) => const HomeView(), ), ), ), ListTile( selected: page == 2, title: Text(AppLocalizations.of(context)!.search), leading: const Icon(Icons.search), onTap: () => page == 2 ? Navigator.of(context).pop() : Navigator.of(context).push( MaterialPageRoute( builder: (_) => const SearchView(), ), ), ), ListTile( selected: page == 3, title: Text(AppLocalizations.of(context)!.downloadsTitle), leading: const Icon(Icons.search), onTap: () => page == 3 ? Navigator.of(context).pop() : Navigator.of(context).push( MaterialPageRoute( builder: (_) => const DownloadsView(), ), ), ), ListTile( selected: page == 99, title: Text(AppLocalizations.of(context)!.about), leading: const Icon(Icons.info_outline), onTap: () => page == 99 ? Navigator.of(context).pop() : Navigator.of(context).push( MaterialPageRoute( builder: (_) => const LicensePage( applicationName: "Voyage Handbook", applicationLegalese: "Copyright ©️ 2023 Matyáš Caras,\nReleased under the GNU GPL version 3", ), ), ), ), ListTile( selected: page == 99, title: Text(AppLocalizations.of(context)!.sourceCode), leading: const Icon(Icons.code), onTap: () => page == 99 ? Navigator.of(context).pop() : launchUrlString("https://git.mnau.xyz/hernik/voyagehandbook", mode: LaunchMode.externalApplication), ), ], ), );