From c9c40508e7c8770d81fb09e733b01876ef394f0d Mon Sep 17 00:00:00 2001 From: csf Date: Tue, 16 Aug 2022 17:14:59 +0800 Subject: [PATCH] add / remove favorite --- flutter/lib/desktop/widgets/peercard_widget.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/flutter/lib/desktop/widgets/peercard_widget.dart b/flutter/lib/desktop/widgets/peercard_widget.dart index 5a5780431..e260ef391 100644 --- a/flutter/lib/desktop/widgets/peercard_widget.dart +++ b/flutter/lib/desktop/widgets/peercard_widget.dart @@ -195,6 +195,17 @@ class _PeerCardState extends State<_PeerCard> } else if (value == 'file') { _connect(id, isFileTransfer: true); } else if (value == 'add-fav') { + final favs = (await bind.mainGetFav()).toList(); + if (favs.indexOf(id) < 0) { + favs.add(id); + bind.mainStoreFav(favs: favs); + } + } else if (value == 'remove-fav') { + final favs = (await bind.mainGetFav()).toList(); + if (favs.remove(id)) { + bind.mainStoreFav(favs: favs); + Get.forceAppUpdate(); // TODO use inner model / state + } } else if (value == 'connect') { _connect(id, isFileTransfer: false); } else if (value == 'ab-delete') { @@ -425,6 +436,8 @@ class RecentPeerCard extends BasePeerCard { PopupMenuItem( child: Text(translate('Unremember Password')), value: 'unremember-password'), + PopupMenuItem( + child: Text(translate('Add to Favorites')), value: 'add-fav'), ]; } } @@ -469,6 +482,8 @@ class DiscoveredPeerCard extends BasePeerCard { PopupMenuItem( child: Text(translate('Unremember Password')), value: 'unremember-password'), + PopupMenuItem( + child: Text(translate('Add to Favorites')), value: 'add-fav'), ]; } }