diff --git a/lib/main.dart b/lib/main.dart index 40c34d65b2c1e28320b8e2b75f09e5e550d94c3e..6d9f0f10329d5378af1e15ebc75109db16199c35 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,7 +3,7 @@ import 'package:jihu_gitlab_app/cn/gitlab/app/icons/custom_icons.dart'; import 'package:jihu_gitlab_app/cn/gitlab/app/modules/project/project.dart'; import 'package:jihu_gitlab_app/cn/gitlab/app/modules/trends/trends.dart'; import 'package:jihu_gitlab_app/cn/gitlab/app/modules/users/application/get_home_page_name_use_case.dart'; - +import 'package:updater/updater.dart'; import 'cn/gitlab/app/modules/backlog/backlog.dart'; void main() { @@ -49,6 +49,67 @@ class _MyHomePageState extends State<MyHomePage> { int _currentIndex = 0; final List<Widget> _pages = const [Backlog(), Project(), Trends()]; final _appBarTitles = const ['待办', '项目', '动æ€']; + dynamic version; + + late UpdaterController controller; + late Updater updater; + + @override + void initState() { + super.initState(); + initializeUpdater(); + checkUpdate(); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + void initializeUpdater() { + controller = UpdaterController( + listener: (UpdateStatus status) { + debugPrint('Listener: $status'); + }, + onChecked: (bool isAvailable) { + debugPrint('$isAvailable'); + }, + progress: (current, total) { + // debugPrint('Progress: $current -- $total'); + }, + onError: (status) { + debugPrint('Error: $status'); + }, + ); + + updater = Updater( + context: context, + delay: const Duration(milliseconds: 300), + url: 'https://jihulab.com/api/v4/projects/59893/packages/generic/jihu-gitlab-app/1.0.0/updater.json', + titleText: 'Stay with time', + // backgroundDownload: false, + allowSkip: true, + contentText: + 'Update your app to the latest version to enjoy new feature.', + callBack: (UpdateModel model) { + debugPrint(model.versionName); + debugPrint(model.versionCode.toString()); + debugPrint(model.contentText); + }, + enableResume: true, + controller: controller, + ); + } + + checkUpdate() async { + bool isAvailable = await updater.check(); + + debugPrint('$isAvailable'); + + // controller.pause(); + // controller.resume(); + } @override Widget build(BuildContext context) { diff --git a/pubspec.yaml b/pubspec.yaml index 240e03ec845263c9653488b8a4da51ec2d6d4e79..c7972a8faad8c5efd17c460335a6c3dd5a5838cd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: cupertino_icons: ^1.0.2 dio: ^4.0.4 webview_flutter: ^3.0.4 + updater: ^0.1.5 dev_dependencies: flutter_test: