Feedback: Send us the version number of the app

This commit is contained in:
Vishesh Handa
2019-02-15 13:13:35 +01:00
parent 9e5548dbc9
commit c085475d9b
3 changed files with 26 additions and 21 deletions

View File

@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:journal/app.dart';
import 'package:journal/settings.dart'; import 'package:journal/settings.dart';
import 'package:package_info/package_info.dart'; import 'package:journal/utils.dart';
class SettingsScreen extends StatelessWidget { class SettingsScreen extends StatelessWidget {
@override @override
@ -143,40 +142,27 @@ class VersionNumberTile extends StatefulWidget {
} }
class VersionNumberTileState extends State<VersionNumberTile> { class VersionNumberTileState extends State<VersionNumberTile> {
PackageInfo packageInfo; String versionText;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
() async { () async {
PackageInfo info = await PackageInfo.fromPlatform(); var str = await getVersionString();
setState(() { setState(() {
packageInfo = info; versionText = str;
}); });
}(); }();
} }
@override @override
Widget build(BuildContext context) { 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; var textTheme = Theme.of(context).textTheme;
return ListTile( return ListTile(
title: Text("Version Info", style: textTheme.subhead), title: Text("Version Info", style: textTheme.subhead),
subtitle: Text( subtitle: Text(
text, versionText,
style: textTheme.body1, style: textTheme.body1,
textAlign: TextAlign.left, textAlign: TextAlign.left,
), ),

16
lib/utils.dart Normal file
View File

@ -0,0 +1,16 @@
import 'package:journal/app.dart';
import 'package:package_info/package_info.dart';
Future<String> 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;
}

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:journal/state_container.dart'; import 'package:journal/state_container.dart';
import 'package:journal/utils.dart';
import 'package:launch_review/launch_review.dart'; import 'package:launch_review/launch_review.dart';
import 'package:share/share.dart'; import 'package:share/share.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -67,11 +68,13 @@ class AppDrawer extends StatelessWidget {
ListTile( ListTile(
leading: Icon(Icons.rate_review, color: textStyle.color), leading: Icon(Icons.rate_review, color: textStyle.color),
title: Text('Feedback', style: textStyle), title: Text('Feedback', style: textStyle),
onTap: () { onTap: () async {
var versionText = await getVersionString();
var emailAddress = 'gitjournal.io@gmail.com'; var emailAddress = 'gitjournal.io@gmail.com';
var subject = 'GitJournal Feedback'; var subject = 'GitJournal Feedback';
var body = 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'; var url = 'mailto:$emailAddress?subject=$subject&body=$body';
launch(url); launch(url);