diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index 8ccb7fe6..c186ed54 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:journal/app.dart'; import 'package:journal/settings.dart'; -import 'package:package_info/package_info.dart'; +import 'package:journal/utils.dart'; class SettingsScreen extends StatelessWidget { @override @@ -143,40 +142,27 @@ class VersionNumberTile extends StatefulWidget { } class VersionNumberTileState extends State { - PackageInfo packageInfo; + String versionText; @override void initState() { super.initState(); () async { - PackageInfo info = await PackageInfo.fromPlatform(); + var str = await getVersionString(); setState(() { - packageInfo = info; + versionText = str; }); }(); } @override Widget build(BuildContext context) { - var text = ""; - if (packageInfo != null) { - text = packageInfo.appName + - " " + - packageInfo.version + - "+" + - packageInfo.buildNumber; - - if (JournalApp.isInDebugMode) { - text += " (Debug)"; - } - } - var textTheme = Theme.of(context).textTheme; return ListTile( title: Text("Version Info", style: textTheme.subhead), subtitle: Text( - text, + versionText, style: textTheme.body1, textAlign: TextAlign.left, ), diff --git a/lib/utils.dart b/lib/utils.dart new file mode 100644 index 00000000..a72512de --- /dev/null +++ b/lib/utils.dart @@ -0,0 +1,16 @@ +import 'package:journal/app.dart'; +import 'package:package_info/package_info.dart'; + +Future getVersionString() async { + var info = await PackageInfo.fromPlatform(); + var versionText = ""; + if (info != null) { + versionText = info.appName + " " + info.version + "+" + info.buildNumber; + + if (JournalApp.isInDebugMode) { + versionText += " (Debug)"; + } + } + + return versionText; +} diff --git a/lib/widgets/app_drawer.dart b/lib/widgets/app_drawer.dart index abbeda79..55ee8341 100644 --- a/lib/widgets/app_drawer.dart +++ b/lib/widgets/app_drawer.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:journal/state_container.dart'; +import 'package:journal/utils.dart'; import 'package:launch_review/launch_review.dart'; import 'package:share/share.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -67,11 +68,13 @@ class AppDrawer extends StatelessWidget { ListTile( leading: Icon(Icons.rate_review, color: textStyle.color), title: Text('Feedback', style: textStyle), - onTap: () { + onTap: () async { + var versionText = await getVersionString(); + var emailAddress = 'gitjournal.io@gmail.com'; var subject = 'GitJournal Feedback'; var body = - "Hey!\n\nHere are some ways to improve GitJournal - \n"; + "Hey!\n\nHere are some ways to improve GitJournal - \n \n\nVersion: $versionText"; var url = 'mailto:$emailAddress?subject=$subject&body=$body'; launch(url);