mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-05 04:36:11 +08:00
21b277ea3f
Signed-off-by: fufesou <shuanglongchen@yeah.net>
29 lines
974 B
Dart
29 lines
974 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_hbb/utils/multi_window_manager.dart';
|
|
|
|
/// Connect to a peer with [id].
|
|
/// If [isFileTransfer], starts a session only for file transfer.
|
|
/// If [isTcpTunneling], starts a session only for tcp tunneling.
|
|
/// If [isRDP], starts a session only for rdp.
|
|
void connect(BuildContext context, String id,
|
|
{bool isFileTransfer = false,
|
|
bool isTcpTunneling = false,
|
|
bool isRDP = false}) async {
|
|
if (id == '') return;
|
|
id = id.replaceAll(' ', '');
|
|
assert(!(isFileTransfer && isTcpTunneling && isRDP),
|
|
"more than one connect type");
|
|
|
|
FocusScopeNode currentFocus = FocusScope.of(context);
|
|
if (isFileTransfer) {
|
|
await rustDeskWinManager.newFileTransfer(id);
|
|
} else if (isTcpTunneling || isRDP) {
|
|
await rustDeskWinManager.newPortForward(id, isRDP);
|
|
} else {
|
|
await rustDeskWinManager.newRemoteDesktop(id);
|
|
}
|
|
if (!currentFocus.hasPrimaryFocus) {
|
|
currentFocus.unfocus();
|
|
}
|
|
}
|