add group peer card

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2022-12-11 21:40:35 +08:00
parent 5ee3e3f347
commit 880a0d4209
42 changed files with 777 additions and 195 deletions

View File

@@ -321,6 +321,7 @@ enum CardType {
fav,
lan,
ab,
grp,
}
abstract class BasePeerCard extends StatelessWidget {
@@ -684,6 +685,9 @@ abstract class BasePeerCard extends StatelessWidget {
case CardType.ab:
gFFI.abModel.pullAb();
break;
case CardType.grp:
gFFI.groupModel.pull();
break;
}
}
}
@@ -937,6 +941,41 @@ class AddressBookPeerCard extends BasePeerCard {
}
}
class MyGroupPeerCard extends BasePeerCard {
MyGroupPeerCard({required Peer peer, EdgeInsets? menuPadding, Key? key})
: super(
peer: peer,
cardType: CardType.grp,
menuPadding: menuPadding,
key: key);
@override
Future<List<MenuEntryBase<String>>> _buildMenuItems(
BuildContext context) async {
final List<MenuEntryBase<String>> menuItems = [
_connectAction(context, peer),
_transferFileAction(context, peer.id),
];
if (isDesktop && peer.platform != 'Android') {
menuItems.add(_tcpTunnelingAction(context, peer.id));
}
menuItems.add(await _forceAlwaysRelayAction(peer.id));
if (peer.platform == 'Windows') {
menuItems.add(_rdpAction(context, peer.id));
}
menuItems.add(_wolAction(peer.id));
if (Platform.isWindows) {
menuItems.add(_createShortCutAction(peer.id));
}
menuItems.add(MenuEntryDivider());
menuItems.add(_renameAction(peer.id));
if (await bind.mainPeerHasPassword(id: peer.id)) {
menuItems.add(_unrememberPasswordAction(peer.id));
}
return menuItems;
}
}
void _rdpDialog(String id, CardType card) async {
String port, username;
if (card == CardType.ab) {