From e62f411a08aa0d7a3826596c1acf5eb4acfa99e9 Mon Sep 17 00:00:00 2001 From: open-trade Date: Mon, 30 Nov 2020 15:04:59 +0800 Subject: [PATCH] download --- flutter_hbb/lib/home_page.dart | 32 ++++++++++++++++++++++++++++++-- flutter_hbb/pubspec.lock | 2 +- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/flutter_hbb/lib/home_page.dart b/flutter_hbb/lib/home_page.dart index 1f1a6673d..b15d101ca 100644 --- a/flutter_hbb/lib/home_page.dart +++ b/flutter_hbb/lib/home_page.dart @@ -3,6 +3,7 @@ import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; import 'package:package_info/package_info.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'dart:async'; import 'common.dart'; import 'model.dart'; import 'remote_page.dart'; @@ -18,6 +19,16 @@ class HomePage extends StatefulWidget { class _HomePageState extends State { final _idController = TextEditingController(); + var _updateUrl = ''; + + @override + void initState() { + super.initState(); + Timer(Duration(seconds: 5), () { + _updateUrl = FFI.getByName('software_update_url'); + if (_updateUrl.isNotEmpty) setState(() {}); + }); + } @override Widget build(BuildContext context) { @@ -60,10 +71,27 @@ class _HomePageState extends State { mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.center, children: [ + _updateUrl.isEmpty + ? SizedBox(height: 0) + : InkWell( + onTap: () async { + final url = _updateUrl + '.apk'; + if (await canLaunch(url)) { + await launch(url); + } + }, + child: Container( + alignment: AlignmentDirectional.center, + width: double.infinity, + color: Colors.pinkAccent, + padding: EdgeInsets.symmetric(vertical: 12), + child: Text('Download new version', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold)))), getSearchBarUI(), getPeers(), ]), - padding: const EdgeInsets.fromLTRB(16.0, 0.0, 16.0, 0.0), )); } @@ -94,7 +122,7 @@ class _HomePageState extends State { return Container(); } return Padding( - padding: const EdgeInsets.only(top: 8.0), + padding: const EdgeInsets.fromLTRB(16.0, 8.0, 16.0, 0.0), child: Container( height: 84, child: Padding( diff --git a/flutter_hbb/pubspec.lock b/flutter_hbb/pubspec.lock index ad0879e75..dd24d84ca 100644 --- a/flutter_hbb/pubspec.lock +++ b/flutter_hbb/pubspec.lock @@ -179,7 +179,7 @@ packages: description: path: "." ref: HEAD - resolved-ref: "2d085c411dc262043b6173c3b962d3e66ce657b1" + resolved-ref: "663154242c05ccf85d4dde984852095664493e46" url: "git://github.com/open-trade/flutter_easyloading" source: git version: "2.2.0"