fix(about): změnit about stránku na AboutDialog

closes #26
This commit is contained in:
Matyáš Caras 2022-09-26 16:46:22 +02:00
parent 04f9a24e84
commit 5d4c94c209
8 changed files with 84 additions and 128 deletions

View file

@ -133,12 +133,12 @@ abstract class Languages {
// About // About
String get usedLibs;
String get license; String get license;
String get copyright; String get copyright;
String get source;
// Nastavení // Nastavení
String get settings; String get settings;

View file

@ -148,9 +148,6 @@ class LanguageCz extends Languages {
@override @override
String get tuesday => "Úterý"; String get tuesday => "Úterý";
@override
String get usedLibs => "Použité knihovny:";
@override @override
String get username => "Uživatelské jméno"; String get username => "Uživatelské jméno";
@ -234,4 +231,7 @@ class LanguageCz extends Languages {
@override @override
String get jump => "Přeskočit"; String get jump => "Přeskočit";
@override
String get source => "Zdrojový kód";
} }

View file

@ -55,7 +55,7 @@ class LanguageEn extends Languages {
String get inExchange => "ON EXCHANGE"; String get inExchange => "ON EXCHANGE";
@override @override
String get license => "Released under GNU GPLv3"; String get license => "Released under the GNU GPLv3";
@override @override
String get loading => "Loading..."; String get loading => "Loading...";
@ -148,9 +148,6 @@ class LanguageEn extends Languages {
@override @override
String get tuesday => "Tuesday"; String get tuesday => "Tuesday";
@override
String get usedLibs => "Used libraries:";
@override @override
String get username => "Username"; String get username => "Username";
@ -232,4 +229,7 @@ class LanguageEn extends Languages {
@override @override
String get jump => "Jump"; String get jump => "Jump";
@override
String get source => "Source code";
} }

View file

@ -1,109 +0,0 @@
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import '../lang/lang.dart';
class AboutPage extends StatefulWidget {
const AboutPage({Key? key}) : super(key: key);
@override
State<AboutPage> createState() => _AboutPageState();
}
class _AboutPageState extends State<AboutPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(Languages.of(context)!.about),
),
body: Center(
child: SizedBox(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width - 50,
child: SingleChildScrollView(
child: Column(mainAxisSize: MainAxisSize.min, children: [
const Text("OpenCanteen", style: TextStyle(fontSize: 30)),
Text(Languages.of(context)!.copyright),
InkWell(
onTap: () => launchUrl(Uri.parse(
"https://github.com/hernikplays/opencanteen/blob/main/LICENSE")),
child: Text(Languages.of(context)!.license)),
const SizedBox(height: 15),
Text(Languages.of(context)!.usedLibs,
style: const TextStyle(fontSize: 19)),
const SizedBox(height: 10),
cudlik(
"Flutter",
"Copyright 2014 The Flutter Authors. All rights reserved, licence BSD 3-Clause",
"https://github.com/flutter/flutter/blob/master/LICENSE"),
const SizedBox(height: 10),
cudlik(
"Flutter_secure_storage",
"Copyright 2017 German Saprykin. All rights reserved, licence BSD 3-Clause",
"https://github.com/mogol/flutter_secure_storage/blob/develop/flutter_secure_storage/LICENSE"),
const SizedBox(height: 10),
cudlik(
"url_launcher",
"Copyright 2013 The Flutter Authors. All rights reserved, licence BSD 3-Clause",
"https://github.com/flutter/plugins/blob/main/packages/url_launcher/url_launcher/LICENSE"),
const SizedBox(height: 10),
cudlik(
"canteenlib",
"Copyright (c) 2022 Matyáš Caras and contributors, licence MIT",
"https://github.com/hernikplays/canteenlib/blob/main/LICENSE"),
const SizedBox(height: 10),
cudlik(
"path_provider",
"Copyright 2013 The Flutter Authors. All rights reserved, licence BSD-3-Clause",
"https://github.com/flutter/plugins/blob/main/packages/path_provider/path_provider/LICENSE"),
const SizedBox(height: 10),
cudlik(
"shared_preferences",
"Copyright 2013 The Flutter Authors. All rights reserved, licence BSD-3-Clause",
"https://github.com/flutter/plugins/blob/main/packages/path_provider/path_provider/LICENSE"),
const SizedBox(height: 10),
cudlik(
"introduction_screen",
"Copyright 2019 Jean-Charles Moussé, licence MIT",
"https://github.com/Pyozer/introduction_screen/blob/master/LICENSE"),
const SizedBox(height: 10),
cudlik(
"flutter_local_notifications",
"Copyright 2018 Michael Bui. All rights reserved, licence BSD-3-Clause",
"https://github.com/MaikuB/flutter_local_notifications/blob/master/flutter_local_notifications/LICENSE"),
const SizedBox(height: 10),
cudlik(
"timezone",
"Copyright 2014, timezone project authors, licence BSD-2-Clause",
"https://github.com/srawlins/timezone/blob/master/LICENSE"),
const SizedBox(height: 10),
cudlik(
"flutter_native_timezone",
"Copyright 2019 pinkfish, licence Apache 2.0",
"https://github.com/pinkfish/flutter_native_timezone/blob/master/LICENSE"),
]),
),
),
),
);
}
Widget cudlik(String nazev, String copyright, String licence) {
return InkWell(
onTap: () => launchUrl(Uri.parse(licence)),
child: Column(children: [
Text(
nazev,
style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 17),
textAlign: TextAlign.center,
),
Text(
copyright,
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 12),
),
]),
);
}
}

View file

@ -7,13 +7,13 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:opencanteen/okna/nastaveni.dart'; import 'package:opencanteen/okna/nastaveni.dart';
import 'package:opencanteen/util.dart'; import 'package:opencanteen/util.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../lang/lang.dart'; import '../lang/lang.dart';
import '../main.dart'; import '../main.dart';
import 'about.dart';
class JidelnicekPage extends StatefulWidget { class JidelnicekPage extends StatefulWidget {
const JidelnicekPage({Key? key, required this.canteen, required this.n}) const JidelnicekPage({Key? key, required this.canteen, required this.n})
@ -344,8 +344,20 @@ class _JidelnicekPageState extends State<JidelnicekPage> {
launchUrl(Uri.parse( launchUrl(Uri.parse(
"https://github.com/hernikplays/opencanteen/issues/new/choose")); "https://github.com/hernikplays/opencanteen/issues/new/choose"));
} else if (value == Languages.of(context)!.about) { } else if (value == Languages.of(context)!.about) {
Navigator.push( var packageInfo = await PackageInfo.fromPlatform();
context, MaterialPageRoute(builder: (c) => const AboutPage())); if (!mounted) return;
showAboutDialog(
context: context,
applicationName: "OpenCanteen",
applicationLegalese:
"${Languages.of(context)!.copyright}\n${Languages.of(context)!.license}",
applicationVersion: packageInfo.version,
children: [
TextButton(
onPressed: (() => launchUrl(
Uri.parse("https://github.com/hernikplays/opencanteen"))),
child: Text(Languages.of(context)!.source))
]);
} else if (value == Languages.of(context)!.settings) { } else if (value == Languages.of(context)!.settings) {
Navigator.push( Navigator.push(
context, MaterialPageRoute(builder: (c) => Nastaveni(n: n))); context, MaterialPageRoute(builder: (c) => Nastaveni(n: n)));

View file

@ -1,11 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:opencanteen/util.dart'; import 'package:opencanteen/util.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../lang/lang.dart'; import '../lang/lang.dart';
import '../main.dart'; import '../main.dart';
import 'about.dart';
class OfflineJidelnicek extends StatefulWidget { class OfflineJidelnicek extends StatefulWidget {
const OfflineJidelnicek({Key? key, required this.jidla}) : super(key: key); const OfflineJidelnicek({Key? key, required this.jidla}) : super(key: key);
@ -75,7 +75,7 @@ class _OfflineJidelnicekState extends State<OfflineJidelnicek> {
setState(() {}); setState(() {});
} }
void kliknuti(String value, BuildContext context) { void kliknuti(String value, BuildContext context) async {
if (value == Languages.of(context)!.signOut) { if (value == Languages.of(context)!.signOut) {
const storage = FlutterSecureStorage(); const storage = FlutterSecureStorage();
storage.deleteAll(); storage.deleteAll();
@ -85,8 +85,20 @@ class _OfflineJidelnicekState extends State<OfflineJidelnicek> {
launchUrl(Uri.parse( launchUrl(Uri.parse(
"https://github.com/hernikplays/opencanteen/issues/new/choose")); "https://github.com/hernikplays/opencanteen/issues/new/choose"));
} else if (value == Languages.of(context)!.about) { } else if (value == Languages.of(context)!.about) {
Navigator.push( var packageInfo = await PackageInfo.fromPlatform();
context, MaterialPageRoute(builder: (c) => const AboutPage())); if (!mounted) return;
showAboutDialog(
context: context,
applicationName: "OpenCanteen",
applicationLegalese:
"${Languages.of(context)!.copyright}\n${Languages.of(context)!.license}",
applicationVersion: packageInfo.version,
children: [
TextButton(
onPressed: (() => launchUrl(
Uri.parse("https://github.com/hernikplays/opencanteen"))),
child: Text(Languages.of(context)!.source))
]);
} }
} }

View file

@ -247,6 +247,48 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0" version: "1.8.0"
package_info_plus:
dependency: "direct main"
description:
name: package_info_plus
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.3+1"
package_info_plus_linux:
dependency: transitive
description:
name: package_info_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
package_info_plus_macos:
dependency: transitive
description:
name: package_info_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
package_info_plus_web:
dependency: transitive
description:
name: package_info_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
package_info_plus_windows:
dependency: transitive
description:
name: package_info_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
path: path:
dependency: transitive dependency: transitive
description: description:

View file

@ -26,6 +26,7 @@ dependencies:
timezone: ^0.8.0 timezone: ^0.8.0
flutter_native_timezone: ^2.0.0 flutter_native_timezone: ^2.0.0
intl: ^0.17.0 intl: ^0.17.0
package_info_plus: ^1.4.3+1
dev_dependencies: dev_dependencies:
flutter_lints: ^2.0.1 flutter_lints: ^2.0.1
@ -41,9 +42,7 @@ flutter:
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
assets: assets:
- assets/burza.png - assets/
- assets/doburzy.png
- assets/objednavam.png
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware. # https://flutter.dev/assets-and-images/#resolution-aware.