feat: check update after opening app

This commit is contained in:
Rongjian Zhang 2021-06-14 16:00:27 +08:00
parent b488b90f97
commit 36930eb8aa
4 changed files with 33 additions and 9 deletions

View File

@ -19,12 +19,17 @@ import 'package:git_touch/screens/login.dart';
import 'package:git_touch/screens/gh_notification.dart';
import 'package:git_touch/screens/gh_user.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:launch_review/launch_review.dart';
import 'package:package_info/package_info.dart';
import 'package:provider/provider.dart';
import 'package:git_touch/screens/gh_news.dart';
import 'package:git_touch/screens/gh_search.dart';
import 'package:git_touch/screens/gh_trending.dart';
import 'package:git_touch/screens/ge_search.dart';
import 'package:github/github.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:universal_io/io.dart';
class Home extends StatefulWidget {
@override
@ -39,6 +44,32 @@ class _HomeState extends State<Home> {
final GlobalKey<NavigatorState> tab4 = GlobalKey<NavigatorState>();
final GlobalKey<NavigatorState> tab5 = GlobalKey<NavigatorState>();
@override
initState() {
super.initState();
Future.delayed(Duration(seconds: 5), () async {
final latest = await GitHub()
.repositories
.getLatestRelease(RepositorySlug.full('git-touch/git-touch'));
final current =
await PackageInfo.fromPlatform().then((value) => value.version);
if (Version.parse(latest.tagName!.substring(1))
.compareTo(Version.parse(current)) ==
1) {
final res = await context.read<ThemeModel>().showConfirm(context,
Text('New version released. Would you like to download it?'));
if (res == true) {
if (Platform.isIOS) {
// go to app store
LaunchReview.launch(writeReview: false);
} else {
context.read<ThemeModel>().push(context, latest.htmlUrl!);
}
}
}
});
}
_buildScreen(int index) {
// print(Localizations.localeOf(context).toString());
// return GlProjectScreen(32221);

View File

@ -27,14 +27,6 @@ class _LoginScreenState extends State<LoginScreen> {
final _usernameController = TextEditingController();
final _passwordController = TextEditingController();
// @override
// initState() {
// super.initState();
// _tokenController.addListener(() {
// print(_tokenController.text);
// });
// }
Widget _buildAccountItem(int index) {
final theme = Provider.of<ThemeModel>(context);
final auth = Provider.of<AuthModel>(context);

View File

@ -687,7 +687,7 @@ packages:
source: hosted
version: "5.0.0"
pub_semver:
dependency: transitive
dependency: "direct main"
description:
name: pub_semver
url: "https://pub.dartlang.org"

View File

@ -51,6 +51,7 @@ dependencies:
url_launcher: ^6.0.3
webview_flutter: ^2.0.4
sentry_flutter: ^5.1.0
pub_semver: ^2.0.0
dev_dependencies:
flutter_test: