diff options
Diffstat (limited to 'lib/views/info_view.dart')
-rw-r--r-- | lib/views/info_view.dart | 89 |
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'; + } + } +} |