aboutsummaryrefslogtreecommitdiff
path: root/lib/views/info_view.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/views/info_view.dart')
-rw-r--r--lib/views/info_view.dart89
1 files changed, 89 insertions, 0 deletions
diff --git a/lib/views/info_view.dart b/lib/views/info_view.dart
new file mode 100644
index 0000000..e2faeab
--- /dev/null
+++ b/lib/views/info_view.dart
@@ -0,0 +1,89 @@
+import 'package:flutter/material.dart';
+
+import 'package:kulinar_app/constants.dart';
+import 'package:kulinar_app/widgets/custom_drawer_widget.dart';
+
+import 'package:url_launcher/url_launcher.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+
+class InfoView extends StatefulWidget {
+ const InfoView({Key? key}) : super(key: key);
+
+ @override
+ _InfoViewState createState() => _InfoViewState();
+}
+
+class _InfoViewState extends State<InfoView> {
+ String websiteUrl = "https://davidpkj.github.io/kulinar_app.html";
+ String sourceCodeUrl = "https://github.com/davidpkj/kulinar_app";
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(title: Text(AppLocalizations.of(context)!.category9)),
+ drawer: CustomDrawer(initalIndex: 6),
+ body: ListView(
+ children: <Widget>[
+ Padding(
+ padding: const EdgeInsets.only(top: 15.0, left: 15.0),
+ child: Text(AppLocalizations.of(context)!.category9, style: cTinyTitleStyle),
+ ),
+ ListTile(
+ title: Text(AppLocalizations.of(context)!.info1, style: cDefaultTextStyle),
+ subtitle: Text(cVersion, style: cDetailsTextStyle),
+ ),
+ ListTile(
+ title: Text(AppLocalizations.of(context)!.info2, style: cDefaultTextStyle),
+ subtitle: Text("David Penkowoj", style: cDetailsTextStyle),
+ ),
+ ListTile(
+ title: Text(AppLocalizations.of(context)!.info3, style: cDefaultTextStyle),
+ subtitle: Text(websiteUrl, style: cDetailsTextStyle, overflow: TextOverflow.ellipsis),
+ trailing: IconButton(
+ icon: Icon(Icons.north_east_rounded),
+ onPressed: () {
+ _launchURL(Uri.parse(websiteUrl));
+ },
+ ),
+ ),
+ ListTile(
+ title: Text(AppLocalizations.of(context)!.info4, style: cDefaultTextStyle),
+ subtitle: Text(sourceCodeUrl, style: cDetailsTextStyle, overflow: TextOverflow.ellipsis),
+ trailing: IconButton(
+ icon: Icon(Icons.north_east_rounded),
+ onPressed: () {
+ _launchURL(Uri.parse(sourceCodeUrl));
+ },
+ ),
+ ),
+ ListTile(
+ title: Text(AppLocalizations.of(context)!.info5, style: cDefaultTextStyle),
+ trailing: IconButton(
+ icon: Icon(Icons.launch_rounded),
+ onPressed: () {
+ _showDialog();
+ },
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ _showDialog() {
+ showAboutDialog(
+ context: context,
+ applicationVersion: cVersion,
+ applicationIcon: SizedBox(height: 35, width: 35, child: Image.asset("assets/icons/icon.png")),
+ applicationLegalese: AppLocalizations.of(context)!.legalease,
+ );
+ }
+
+ _launchURL(Uri url) async {
+ if (await canLaunchUrl(url)) {
+ await launchUrl(url);
+ } else {
+ throw 'Could not launch $url';
+ }
+ }
+}