From f17198cd2a3205d890087ae41b6aa6d8a844f222 Mon Sep 17 00:00:00 2001 From: fufesou Date: Wed, 14 Sep 2022 22:22:23 -0700 Subject: [PATCH] flutter_desktop: fix remove fav peer && remove unused code Signed-off-by: fufesou --- .../lib/desktop/pages/connection_page.dart | 1 + flutter/lib/desktop/widgets/peer_widget.dart | 19 ++++-- .../lib/desktop/widgets/peercard_widget.dart | 66 ++++++------------- 3 files changed, 34 insertions(+), 52 deletions(-) diff --git a/flutter/lib/desktop/pages/connection_page.dart b/flutter/lib/desktop/pages/connection_page.dart index b7aa92c0f..9024c996f 100644 --- a/flutter/lib/desktop/pages/connection_page.dart +++ b/flutter/lib/desktop/pages/connection_page.dart @@ -782,6 +782,7 @@ class _PeerTabbedPageState extends State<_PeerTabbedPage> bind.mainDiscover(); break; case 3: + gFFI.abModel.updateAb(); break; } } diff --git a/flutter/lib/desktop/widgets/peer_widget.dart b/flutter/lib/desktop/widgets/peer_widget.dart index 9511fcec8..f137241a9 100644 --- a/flutter/lib/desktop/widgets/peer_widget.dart +++ b/flutter/lib/desktop/widgets/peer_widget.dart @@ -43,7 +43,7 @@ class _PeerWidgetState extends State<_PeerWidget> with WindowListener { final _curPeers = {}; var _lastChangeTime = DateTime.now(); var _lastQueryPeers = {}; - var _lastQueryTime = DateTime.now().subtract(Duration(hours: 1)); + var _lastQueryTime = DateTime.now().subtract(const Duration(hours: 1)); var _queryCoun = 0; var _exit = false; @@ -143,8 +143,8 @@ class _PeerWidgetState extends State<_PeerWidget> with WindowListener { while (!_exit) { final now = DateTime.now(); if (!setEquals(_curPeers, _lastQueryPeers)) { - if (now.difference(_lastChangeTime) > Duration(seconds: 1)) { - if (_curPeers.length > 0) { + if (now.difference(_lastChangeTime) > const Duration(seconds: 1)) { + if (_curPeers.isNotEmpty) { platformFFI.ffiBind .queryOnlines(ids: _curPeers.toList(growable: false)); _lastQueryPeers = {..._curPeers}; @@ -154,8 +154,8 @@ class _PeerWidgetState extends State<_PeerWidget> with WindowListener { } } else { if (_queryCoun < _maxQueryCount) { - if (now.difference(_lastQueryTime) > Duration(seconds: 20)) { - if (_curPeers.length > 0) { + if (now.difference(_lastQueryTime) > const Duration(seconds: 20)) { + if (_curPeers.isNotEmpty) { platformFFI.ffiBind .queryOnlines(ids: _curPeers.toList(growable: false)); _lastQueryTime = DateTime.now(); @@ -164,7 +164,7 @@ class _PeerWidgetState extends State<_PeerWidget> with WindowListener { } } } - await Future.delayed(Duration(milliseconds: 300)); + await Future.delayed(const Duration(milliseconds: 300)); } }(); } @@ -292,4 +292,11 @@ class AddressBookPeerWidget extends BasePeerWidget { } return true; } + + @override + Widget build(BuildContext context) { + final widget = super.build(context); + gFFI.abModel.updateAb(); + return widget; + } } diff --git a/flutter/lib/desktop/widgets/peercard_widget.dart b/flutter/lib/desktop/widgets/peercard_widget.dart index d9a87cd7b..fc93c59c6 100644 --- a/flutter/lib/desktop/widgets/peercard_widget.dart +++ b/flutter/lib/desktop/widgets/peercard_widget.dart @@ -113,15 +113,16 @@ class _PeerCardState extends State<_PeerCard> children: [ Row(children: [ Padding( - padding: EdgeInsets.fromLTRB(0, 4, 4, 4), + padding: const EdgeInsets.fromLTRB(0, 4, 4, 4), child: CircleAvatar( radius: 5, backgroundColor: peer.online ? Colors.green : Colors.yellow)), Text( - formatID('${peer.id}'), - style: TextStyle(fontWeight: FontWeight.w400), + formatID(peer.id), + style: + const TextStyle(fontWeight: FontWeight.w400), ), ]), Align( @@ -136,7 +137,7 @@ class _PeerCardState extends State<_PeerCard> : snapshot.data!; return Tooltip( message: name, - waitDuration: Duration(seconds: 1), + waitDuration: const Duration(seconds: 1), child: Text( name, style: greyStyle, @@ -208,10 +209,11 @@ class _PeerCardState extends State<_PeerCard> : widget.alias.value; return Tooltip( message: name, - waitDuration: Duration(seconds: 1), + waitDuration: + const Duration(seconds: 1), child: Text( name, - style: TextStyle( + style: const TextStyle( color: Colors.white70, fontSize: 12), textAlign: TextAlign.center, @@ -236,7 +238,7 @@ class _PeerCardState extends State<_PeerCard> children: [ Row(children: [ Padding( - padding: EdgeInsets.fromLTRB(0, 4, 8, 4), + padding: const EdgeInsets.fromLTRB(0, 4, 8, 4), child: CircleAvatar( radius: 5, backgroundColor: peer.online @@ -501,7 +503,7 @@ abstract class BasePeerCard extends StatelessWidget { final favs = (await bind.mainGetFav()).toList(); if (!favs.contains(id)) { favs.add(id); - bind.mainStoreFav(favs: favs); + await bind.mainStoreFav(favs: favs); } }(); }, @@ -510,7 +512,8 @@ abstract class BasePeerCard extends StatelessWidget { } @protected - MenuEntryBase _rmFavAction(String id) { + MenuEntryBase _rmFavAction( + String id, Future Function() reloadFunc) { return MenuEntryButton( childBuilder: (TextStyle? style) => Text( translate('Remove from Favorites'), @@ -520,8 +523,9 @@ abstract class BasePeerCard extends StatelessWidget { () async { final favs = (await bind.mainGetFav()).toList(); if (favs.remove(id)) { - bind.mainStoreFav(favs: favs); - Get.forceAppUpdate(); // TODO use inner model / state + await bind.mainStoreFav(favs: favs); + await reloadFunc(); + // Get.forceAppUpdate(); // TODO use inner model / state } }(); }, @@ -646,7 +650,9 @@ class FavoritePeerCard extends BasePeerCard { await bind.mainLoadFavPeers(); })); menuItems.add(_unrememberPasswordAction(peer.id)); - menuItems.add(_rmFavAction(peer.id)); + menuItems.add(_rmFavAction(peer.id, () async { + await bind.mainLoadFavPeers(); + })); return menuItems; } } @@ -817,8 +823,8 @@ class AddressBookPeerCard extends BasePeerCard { color: rxTags.contains(tagName) ? Colors.blue : null, border: Border.all(color: MyTheme.darkGray), borderRadius: BorderRadius.circular(10)), - margin: EdgeInsets.symmetric(horizontal: 4.0, vertical: 8.0), - padding: EdgeInsets.symmetric(vertical: 2.0, horizontal: 8.0), + margin: const EdgeInsets.symmetric(horizontal: 4.0, vertical: 8.0), + padding: const EdgeInsets.symmetric(vertical: 2.0, horizontal: 8.0), child: Text( tagName, style: TextStyle( @@ -831,38 +837,6 @@ class AddressBookPeerCard extends BasePeerCard { } } -Future> _forceAlwaysRelayMenuItem(String id) async { - bool force_always_relay = - (await bind.mainGetPeerOption(id: id, key: 'force-always-relay')) - .isNotEmpty; - return PopupMenuItem( - child: Row( - children: [ - Offstage( - offstage: !force_always_relay, - child: Icon(Icons.check), - ), - Text(translate('Always connect via relay')), - ], - ), - value: 'force-always-relay'); -} - -PopupMenuItem _rdpMenuItem(String id) { - return PopupMenuItem( - child: Row( - children: [ - Text('RDP'), - SizedBox(width: 20), - IconButton( - icon: Icon(Icons.edit), - onPressed: () => _rdpDialog(id), - ) - ], - ), - value: 'RDP'); -} - void _rdpDialog(String id) async { final portController = TextEditingController( text: await bind.mainGetPeerOption(id: id, key: 'rdp_port'));