93 lines
3.5 KiB
Dart
93 lines
3.5 KiB
Dart
|
import 'package:cvak/okna/domu.dart';
|
||
|
import 'package:cvak/okna/nahrat.dart';
|
||
|
import 'package:cvak/okna/nastaveni.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||
|
import 'package:url_launcher/url_launcher.dart';
|
||
|
|
||
|
/*
|
||
|
Copyright (C) 2022 Matyáš Caras
|
||
|
|
||
|
This program is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation, either version 3 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
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 <https://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
|
||
|
AppBar bar(context, {String nadpis = "Domů"}) => AppBar(
|
||
|
title: Text(nadpis),
|
||
|
actions: [
|
||
|
PopupMenuButton<String>(
|
||
|
itemBuilder: (c) => {'Nastavení', 'O Aplikaci'}
|
||
|
.map((e) => PopupMenuItem<String>(value: e, child: Text(e)))
|
||
|
.toList(),
|
||
|
onSelected: ((value) async {
|
||
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||
|
switch (value) {
|
||
|
case "Nastavení":
|
||
|
Navigator.of(context)
|
||
|
.push(MaterialPageRoute(builder: (c) => const Nastaveni()));
|
||
|
break;
|
||
|
case "O Aplikaci":
|
||
|
showAboutDialog(
|
||
|
context: context,
|
||
|
applicationName: "Cvak",
|
||
|
applicationLegalese:
|
||
|
"Copyright ©️ 2022 Matyáš Caras\nVydáno pod licencí GNU GPLv3",
|
||
|
applicationVersion: packageInfo.version,
|
||
|
children: [
|
||
|
TextButton(
|
||
|
child: const Text("Zdrojový kód"),
|
||
|
onPressed: () => launchUrl(
|
||
|
Uri.parse("https://git.mnau.xyz/hernik/cvak"),
|
||
|
mode: LaunchMode.externalApplication),
|
||
|
)
|
||
|
]);
|
||
|
break;
|
||
|
}
|
||
|
}),
|
||
|
)
|
||
|
],
|
||
|
);
|
||
|
|
||
|
Drawer drawer(int selected, BuildContext context) => Drawer(
|
||
|
child: ListView(
|
||
|
padding: EdgeInsets.zero,
|
||
|
children: [
|
||
|
const DrawerHeader(child: Text("Cvak")),
|
||
|
ListTile(
|
||
|
title: const Text("Domů"),
|
||
|
leading: const Icon(Icons.home),
|
||
|
selected: selected == 1,
|
||
|
onTap: () => (selected == 1)
|
||
|
? Navigator.of(context).pop()
|
||
|
: Navigator.of(context).pushReplacement(MaterialPageRoute(
|
||
|
builder: (c) => const DomovskaObrazovka())),
|
||
|
),
|
||
|
ListTile(
|
||
|
title: const Text("Nová jízdenka"),
|
||
|
leading: const Icon(Icons.new_label),
|
||
|
selected: selected == 2,
|
||
|
onTap: () => Navigator.of(context).pop(),
|
||
|
),
|
||
|
ListTile(
|
||
|
title: const Text("Nahrát jízdenky"),
|
||
|
leading: const Icon(Icons.download),
|
||
|
selected: selected == 3,
|
||
|
onTap: () => (selected == 3)
|
||
|
? Navigator.of(context).pop()
|
||
|
: Navigator.of(context).push(
|
||
|
MaterialPageRoute(builder: (c) => const NahratJizdenku())),
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
);
|