diff --git a/lib/home.dart b/lib/home.dart index 3dc71bd..8e72c16 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -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 { final GlobalKey tab4 = GlobalKey(); final GlobalKey tab5 = GlobalKey(); + @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().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().push(context, latest.htmlUrl!); + } + } + } + }); + } + _buildScreen(int index) { // print(Localizations.localeOf(context).toString()); // return GlProjectScreen(32221); diff --git a/lib/screens/login.dart b/lib/screens/login.dart index 0358c3a..24f92cf 100644 --- a/lib/screens/login.dart +++ b/lib/screens/login.dart @@ -27,14 +27,6 @@ class _LoginScreenState extends State { final _usernameController = TextEditingController(); final _passwordController = TextEditingController(); - // @override - // initState() { - // super.initState(); - // _tokenController.addListener(() { - // print(_tokenController.text); - // }); - // } - Widget _buildAccountItem(int index) { final theme = Provider.of(context); final auth = Provider.of(context); diff --git a/pubspec.lock b/pubspec.lock index 45f5809..659247c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -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" diff --git a/pubspec.yaml b/pubspec.yaml index cbea7be..fe98176 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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: