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 { 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: [ 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'; } } }