mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-25 13:07:52 +08:00
3a0ece1447
* mobile add view mode menu, disable same menus as desktop * show forbidden cursor when not view mode && no keyboard permission && not show remote cursor * hide keyboard/mouse bottom action when keyboard disabled * fix not listen keyboard permission change * mobile missing changing resolution and http proxy setting, will add if needed. Signed-off-by: 21pages <sunboeasy@gmail.com>
1627 lines
43 KiB
Dart
1627 lines
43 KiB
Dart
import 'dart:async';
|
|
import 'dart:js' as js;
|
|
import 'dart:convert';
|
|
import 'dart:typed_data';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:uuid/uuid.dart';
|
|
|
|
import 'package:flutter_hbb/consts.dart';
|
|
|
|
final _privateConstructorUsedError = UnsupportedError(
|
|
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
|
|
|
|
mixin _$EventToUI {
|
|
Object get field0 => throw _privateConstructorUsedError;
|
|
}
|
|
|
|
sealed class EventToUI {
|
|
const factory EventToUI.event(
|
|
String field0,
|
|
) = EventToUI_Event;
|
|
const factory EventToUI.rgba(
|
|
int field0,
|
|
) = EventToUI_Rgba;
|
|
const factory EventToUI.texture(
|
|
int field0,
|
|
) = EventToUI_Texture;
|
|
}
|
|
|
|
class EventToUI_Event implements EventToUI {
|
|
const EventToUI_Event(final String field0) : this.field = field0;
|
|
final String field;
|
|
String get field0 => field;
|
|
}
|
|
|
|
class EventToUI_Rgba implements EventToUI {
|
|
const EventToUI_Rgba(final int field0) : this.field = field0;
|
|
final int field;
|
|
int get field0 => field;
|
|
}
|
|
|
|
class EventToUI_Texture implements EventToUI {
|
|
const EventToUI_Texture(final int field0) : this.field = field0;
|
|
final int field;
|
|
int get field0 => field;
|
|
}
|
|
|
|
class RustdeskImpl {
|
|
Future<void> stopGlobalEventStream({required String appType, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> hostStopSystemKeyPropagate(
|
|
{required bool stopped, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
int peerGetDefaultSessionsCount({required String id, dynamic hint}) {
|
|
return 0;
|
|
}
|
|
|
|
String sessionAddExistedSync(
|
|
{required String id,
|
|
required UuidValue sessionId,
|
|
required Int32List displays,
|
|
dynamic hint}) {
|
|
return '';
|
|
}
|
|
|
|
String sessionAddSync(
|
|
{required UuidValue sessionId,
|
|
required String id,
|
|
required bool isFileTransfer,
|
|
required bool isPortForward,
|
|
required bool isRdp,
|
|
required String switchUuid,
|
|
required bool forceRelay,
|
|
required String password,
|
|
required bool isSharedPassword,
|
|
dynamic hint}) {
|
|
return js.context.callMethod('setByName', [
|
|
'session_add_sync',
|
|
jsonEncode({'id': id, 'password': password})
|
|
]);
|
|
}
|
|
|
|
Stream<EventToUI> sessionStart(
|
|
{required UuidValue sessionId, required String id, dynamic hint}) {
|
|
js.context.callMethod('setByName', [
|
|
'session_start',
|
|
jsonEncode({'id': id})
|
|
]);
|
|
return Stream.empty();
|
|
}
|
|
|
|
Stream<EventToUI> sessionStartWithDisplays(
|
|
{required UuidValue sessionId,
|
|
required String id,
|
|
required Int32List displays,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool?> sessionGetRemember(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['remember']) == 'true');
|
|
}
|
|
|
|
Future<bool?> sessionGetToggleOption(
|
|
{required UuidValue sessionId, required String arg, dynamic hint}) {
|
|
return Future(
|
|
() => sessionGetToggleOptionSync(sessionId: sessionId, arg: arg));
|
|
}
|
|
|
|
bool sessionGetToggleOptionSync(
|
|
{required UuidValue sessionId, required String arg, dynamic hint}) {
|
|
return 'true' == js.context.callMethod('getByName', ['option:toggle', arg]);
|
|
}
|
|
|
|
Future<String?> sessionGetOption(
|
|
{required UuidValue sessionId, required String arg, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['option:session', arg]));
|
|
}
|
|
|
|
Future<void> sessionLogin(
|
|
{required UuidValue sessionId,
|
|
required String osUsername,
|
|
required String osPassword,
|
|
required String password,
|
|
required bool remember,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'login',
|
|
jsonEncode({
|
|
'os_username': osUsername,
|
|
'os_password': osPassword,
|
|
'password': password,
|
|
'remember': remember
|
|
})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionSend2Fa(
|
|
{required UuidValue sessionId, required String code, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['send_2fa', code]));
|
|
}
|
|
|
|
Future<void> sessionClose({required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['session_close']));
|
|
}
|
|
|
|
Future<void> sessionRefresh(
|
|
{required UuidValue sessionId, required int display, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['refresh']));
|
|
}
|
|
|
|
Future<void> sessionRecordScreen(
|
|
{required UuidValue sessionId,
|
|
required bool start,
|
|
required int display,
|
|
required int width,
|
|
required int height,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRecordStatus(
|
|
{required UuidValue sessionId, required bool status, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionReconnect(
|
|
{required UuidValue sessionId, required bool forceRelay, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['reconnect']));
|
|
}
|
|
|
|
Future<void> sessionToggleOption(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['toggle_option', value]));
|
|
}
|
|
|
|
Future<void> sessionTogglePrivacyMode(
|
|
{required UuidValue sessionId,
|
|
required String implKey,
|
|
required bool on,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'toggle_option',
|
|
jsonEncode({implKey, on})
|
|
]));
|
|
}
|
|
|
|
Future<String?> sessionGetFlutterOption(
|
|
{required UuidValue sessionId, required String k, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['option:flutter:peer', k]));
|
|
}
|
|
|
|
Future<void> sessionSetFlutterOption(
|
|
{required UuidValue sessionId,
|
|
required String k,
|
|
required String v,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:flutter:peer',
|
|
jsonEncode({'name': k, 'value': v})
|
|
]));
|
|
}
|
|
|
|
int getNextTextureKey({dynamic hint}) {
|
|
return 0;
|
|
}
|
|
|
|
String getLocalFlutterOption({required String k, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['option:flutter:local', k]);
|
|
}
|
|
|
|
Future<void> setLocalFlutterOption(
|
|
{required String k, required String v, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:flutter:local',
|
|
jsonEncode({'name': k, 'value': v})
|
|
]));
|
|
}
|
|
|
|
String getLocalKbLayoutType({dynamic hint}) {
|
|
throw js.context.callMethod('getByName', ['option:local', 'kb_layout']);
|
|
}
|
|
|
|
Future<void> setLocalKbLayoutType(
|
|
{required String kbLayoutType, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:local',
|
|
jsonEncode({'name': 'kb_layout', 'value': kbLayoutType})
|
|
]));
|
|
}
|
|
|
|
Future<String?> sessionGetViewStyle(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() =>
|
|
js.context.callMethod('getByName', ['option:session', 'view_style']));
|
|
}
|
|
|
|
Future<void> sessionSetViewStyle(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'view_style', 'value': value})
|
|
]));
|
|
}
|
|
|
|
Future<String?> sessionGetScrollStyle(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() =>
|
|
js.context.callMethod('getByName', ['option:session', 'scroll_style']));
|
|
}
|
|
|
|
Future<void> sessionSetScrollStyle(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'scroll_style', 'value': value})
|
|
]));
|
|
}
|
|
|
|
Future<String?> sessionGetImageQuality(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() => js.context
|
|
.callMethod('getByName', ['option:session', 'image_quality']));
|
|
}
|
|
|
|
Future<void> sessionSetImageQuality(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'image_quality', 'value': value})
|
|
]));
|
|
}
|
|
|
|
Future<String?> sessionGetKeyboardMode(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
final mode =
|
|
js.context.callMethod('getByName', ['option:session', 'keyboard_mode']);
|
|
return Future(() => mode == '' ? null : mode);
|
|
}
|
|
|
|
Future<void> sessionSetKeyboardMode(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'keyboard_mode', 'value': value})
|
|
]));
|
|
}
|
|
|
|
String? sessionGetReverseMouseWheelSync(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return js.context
|
|
.callMethod('getByName', ['option:session', 'reverse_mouse_wheel']);
|
|
}
|
|
|
|
Future<void> sessionSetReverseMouseWheel(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'reverse_mouse_wheel', 'value': value})
|
|
]));
|
|
}
|
|
|
|
String? sessionGetDisplaysAsIndividualWindows(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return js.context.callMethod(
|
|
'getByName', ['option:session', 'displays_as_individual_windows']);
|
|
}
|
|
|
|
Future<void> sessionSetDisplaysAsIndividualWindows(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
String? sessionGetUseAllMyDisplaysForTheRemoteSession(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return '';
|
|
}
|
|
|
|
Future<void> sessionSetUseAllMyDisplaysForTheRemoteSession(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
Future<Int32List?> sessionGetCustomImageQuality(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
try {
|
|
return Future(() => Int32List.fromList([
|
|
int.parse(js.context.callMethod(
|
|
'getByName', ['option:session', 'custom_image_quality']))
|
|
]));
|
|
} catch (e) {
|
|
return Future.value(null);
|
|
}
|
|
}
|
|
|
|
bool sessionIsKeyboardModeSupported(
|
|
{required UuidValue sessionId, required String mode, dynamic hint}) {
|
|
return mode == kKeyLegacyMode;
|
|
}
|
|
|
|
bool sessionIsMultiUiSession({required UuidValue sessionId, dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
Future<void> sessionSetCustomImageQuality(
|
|
{required UuidValue sessionId, required int value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'custom_image_quality', 'value': value})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionSetCustomFps(
|
|
{required UuidValue sessionId, required int fps, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:session',
|
|
jsonEncode({'name': 'custom_fps', 'value': fps})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionLockScreen({required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['lock_screen']));
|
|
}
|
|
|
|
Future<void> sessionCtrlAltDel({required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['ctrl_alt_del']));
|
|
}
|
|
|
|
Future<void> sessionSwitchDisplay(
|
|
{required bool isDesktop,
|
|
required UuidValue sessionId,
|
|
required Int32List value,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'switch_display',
|
|
jsonEncode({
|
|
isDesktop: isDesktop,
|
|
sessionId: sessionId.toString(),
|
|
value: value
|
|
})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionHandleFlutterKeyEvent(
|
|
{required UuidValue sessionId,
|
|
required String name,
|
|
required int platformCode,
|
|
required int positionCode,
|
|
required int lockModes,
|
|
required bool downOrUp,
|
|
dynamic hint}) {
|
|
// TODO: map mode
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
void sessionEnterOrLeave(
|
|
{required UuidValue sessionId, required bool enter, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionInputKey(
|
|
{required UuidValue sessionId,
|
|
required String name,
|
|
required bool down,
|
|
required bool press,
|
|
required bool alt,
|
|
required bool ctrl,
|
|
required bool shift,
|
|
required bool command,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'input_key',
|
|
jsonEncode({
|
|
'name': name,
|
|
if (down) 'down': 'true',
|
|
if (press) 'press': 'true',
|
|
if (alt) 'alt': 'true',
|
|
if (ctrl) 'ctrl': 'true',
|
|
if (shift) 'shift': 'true',
|
|
if (command) 'command': 'true'
|
|
})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionInputString(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['input_string', value]));
|
|
}
|
|
|
|
Future<void> sessionSendChat(
|
|
{required UuidValue sessionId, required String text, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionPeerOption(
|
|
{required UuidValue sessionId,
|
|
required String name,
|
|
required String value,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('SetByName', [
|
|
'option:session',
|
|
jsonEncode({'name': name, 'value': value})
|
|
]));
|
|
}
|
|
|
|
Future<String> sessionGetPeerOption(
|
|
{required UuidValue sessionId, required String name, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['option:session', name]));
|
|
}
|
|
|
|
Future<void> sessionInputOsPassword(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['input_os_password', value]));
|
|
}
|
|
|
|
Future<void> sessionReadRemoteDir(
|
|
{required UuidValue sessionId,
|
|
required String path,
|
|
required bool includeHidden,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionSendFiles(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required String to,
|
|
required int fileNum,
|
|
required bool includeHidden,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionSetConfirmOverrideFile(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required int fileNum,
|
|
required bool needOverride,
|
|
required bool remember,
|
|
required bool isUpload,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRemoveFile(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required int fileNum,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionReadDirRecursive(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required bool isRemote,
|
|
required bool showHidden,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRemoveAllEmptyDirs(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionCancelJob(
|
|
{required UuidValue sessionId, required int actId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionCreateDir(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> sessionReadLocalDirSync(
|
|
{required UuidValue sessionId,
|
|
required String path,
|
|
required bool showHidden,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> sessionGetPlatform(
|
|
{required UuidValue sessionId, required bool isRemote, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionLoadLastTransferJobs(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionAddJob(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required String path,
|
|
required String to,
|
|
required int fileNum,
|
|
required bool includeHidden,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionResumeJob(
|
|
{required UuidValue sessionId,
|
|
required int actId,
|
|
required bool isRemote,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionElevateDirect(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionElevateWithLogon(
|
|
{required UuidValue sessionId,
|
|
required String username,
|
|
required String password,
|
|
dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'elevate_with_logon',
|
|
jsonEncode({username, password})
|
|
]));
|
|
}
|
|
|
|
Future<void> sessionSwitchSides(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionChangeResolution(
|
|
{required UuidValue sessionId,
|
|
required int display,
|
|
required int width,
|
|
required int height,
|
|
dynamic hint}) {
|
|
// note: restore on disconnected
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionSetSize(
|
|
{required UuidValue sessionId,
|
|
required int display,
|
|
required int width,
|
|
required int height,
|
|
dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
Future<void> sessionSendSelectedSessionId(
|
|
{required UuidValue sessionId, required String sid, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<List<String>> mainGetSoundInputs({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String?> mainGetDefaultSoundInput({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetLoginDeviceInfo({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainChangeId({required String newId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetAsyncStatus({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetOption({required String key, dynamic hint}) {
|
|
return Future.value(mainGetOptionSync(key: key));
|
|
}
|
|
|
|
String mainGetOptionSync({required String key, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['option', key]);
|
|
}
|
|
|
|
Future<String> mainGetError({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainShowOption({required String key, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetOption(
|
|
{required String key, required String value, dynamic hint}) {
|
|
js.context.callMethod('setByName', [
|
|
'option',
|
|
jsonEncode({'name': key, 'value': value})
|
|
]);
|
|
return Future.value();
|
|
}
|
|
|
|
// get server settings
|
|
Future<String> mainGetOptions({dynamic hint}) {
|
|
return Future(() => mainGetOptionsSync());
|
|
}
|
|
|
|
// get server settings
|
|
String mainGetOptionsSync({dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['options']);
|
|
}
|
|
|
|
Future<void> mainSetOptions({required String json, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['options', json]));
|
|
}
|
|
|
|
Future<String> mainTestIfValidServer(
|
|
{required String server, required bool testWithProxy, dynamic hint}) {
|
|
// TODO: implement
|
|
return Future.value('');
|
|
}
|
|
|
|
Future<void> mainSetSocks(
|
|
{required String proxy,
|
|
required String username,
|
|
required String password,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<List<String>> mainGetSocks({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetAppName({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetAppNameSync({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainUriPrefixSync({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetLicense({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetVersion({dynamic hint}) {
|
|
return Future(() => js.context.callMethod('getByName', ['version']));
|
|
}
|
|
|
|
Future<List<String>> mainGetFav({dynamic hint}) {
|
|
List<String> favs = [];
|
|
try {
|
|
favs = (jsonDecode(js.context.callMethod('getByName', ['fav']))
|
|
as List<dynamic>)
|
|
.map((e) => e.toString())
|
|
.toList();
|
|
} catch (e) {
|
|
debugPrint('Failed to load favs: $e');
|
|
}
|
|
return Future.value(favs);
|
|
}
|
|
|
|
Future<void> mainStoreFav({required List<String> favs, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['fav', jsonEncode(favs)]));
|
|
}
|
|
|
|
String mainGetPeerSync({required String id, dynamic hint}) {
|
|
// TODO:
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetLanPeers({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetConnectStatus({dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ["get_conn_status"]));
|
|
}
|
|
|
|
Future<void> mainCheckConnectStatus({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool> mainIsUsingPublicServer({dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ["is_using_public_server"]));
|
|
}
|
|
|
|
Future<void> mainDiscover({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetApiServer({dynamic hint}) {
|
|
return Future(() => js.context.callMethod('getByName', ['api_server']));
|
|
}
|
|
|
|
Future<void> mainPostRequest(
|
|
{required String url,
|
|
required String body,
|
|
required String header,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool> mainGetProxyStatus({dynamic hint}) {
|
|
return Future(() => false);
|
|
}
|
|
|
|
Future<void> mainHttpRequest({
|
|
required String url,
|
|
required String method,
|
|
String? body,
|
|
required String header,
|
|
dynamic hint,
|
|
}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String?> mainGetHttpStatus({required String url, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetLocalOption({required String key, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['option:local', key]);
|
|
}
|
|
|
|
String mainGetEnv({required String key, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetLocalOption(
|
|
{required String key, required String value, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', [
|
|
'option:local',
|
|
jsonEncode({'name': key, 'value': value})
|
|
]));
|
|
}
|
|
|
|
String mainGetInputSource({dynamic hint}) {
|
|
// // rdev grab mode
|
|
// const CONFIG_INPUT_SOURCE_1 = "Input source 1";
|
|
// // flutter grab mode
|
|
// const CONFIG_INPUT_SOURCE_2 = "Input source 2";
|
|
return 'Input source 2';
|
|
}
|
|
|
|
Future<void> mainSetInputSource(
|
|
{required UuidValue sessionId, required String value, dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
Future<String> mainGetMyId({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetUuid({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetPeerOption(
|
|
{required String id, required String key, dynamic hint}) {
|
|
return Future(() => mainGetPeerOptionSync(id: id, key: key, hint: hint));
|
|
}
|
|
|
|
String mainGetPeerOptionSync(
|
|
{required String id, required String key, dynamic hint}) {
|
|
return js.context.callMethod('getByName', [
|
|
'option:peer',
|
|
jsonEncode({'id': id, 'name': key})
|
|
]);
|
|
}
|
|
|
|
String mainGetPeerFlutterOptionSync(
|
|
{required String id, required String k, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['option:flutter:peer', k]);
|
|
}
|
|
|
|
void mainSetPeerFlutterOptionSync(
|
|
{required String id,
|
|
required String k,
|
|
required String v,
|
|
dynamic hint}) {
|
|
js.context.callMethod('setByName', [
|
|
'option:flutter:peer',
|
|
jsonEncode({'name': k, 'value': v})
|
|
]);
|
|
}
|
|
|
|
Future<void> mainSetPeerOption(
|
|
{required String id,
|
|
required String key,
|
|
required String value,
|
|
dynamic hint}) {
|
|
mainSetPeerOptionSync(id: id, key: key, value: value, hint: hint);
|
|
return Future.value();
|
|
}
|
|
|
|
bool mainSetPeerOptionSync(
|
|
{required String id,
|
|
required String key,
|
|
required String value,
|
|
dynamic hint}) {
|
|
js.context.callMethod('setByName', [
|
|
'option:peer',
|
|
jsonEncode({'id': id, 'name': key, 'value': value})
|
|
]);
|
|
return true;
|
|
}
|
|
|
|
Future<void> mainSetPeerAlias(
|
|
{required String id, required String alias, dynamic hint}) {
|
|
mainSetPeerOptionSync(id: id, key: 'alias', value: alias, hint: hint);
|
|
return Future.value();
|
|
}
|
|
|
|
Future<String> mainGetNewStoredPeers({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainForgetPassword({required String id, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['forget']));
|
|
}
|
|
|
|
Future<bool> mainPeerHasPassword({required String id, dynamic hint}) {
|
|
return Future(() =>
|
|
js.context.callMethod('getByName', ['peer_has_password', id]) ==
|
|
'true');
|
|
}
|
|
|
|
Future<bool> mainPeerExists({required String id, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['peer_exists', id]));
|
|
}
|
|
|
|
Future<void> mainLoadRecentPeers({dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['load_recent_peers']));
|
|
}
|
|
|
|
String mainLoadRecentPeersSync({dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['load_recent_peers_sync']);
|
|
}
|
|
|
|
String mainLoadLanPeersSync({dynamic hint}) {
|
|
return '{}';
|
|
}
|
|
|
|
Future<String> mainLoadRecentPeersForAb(
|
|
{required String filter, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainLoadFavPeers({dynamic hint}) {
|
|
return Future(() => js.context.callMethod('getByName', ['load_fav_peers']));
|
|
}
|
|
|
|
Future<void> mainLoadLanPeers({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainRemoveDiscovered({required String id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainChangeTheme({required String dark, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainChangeLanguage({required String lang, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainVideoSaveDirectory({required bool root, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetUserDefaultOption(
|
|
{required String key, required String value, dynamic hint}) {
|
|
return js.context.callMethod('getByName', [
|
|
'option:user:default',
|
|
jsonEncode({'name': key, 'value': value})
|
|
]);
|
|
}
|
|
|
|
String mainGetUserDefaultOption({required String key, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['option:user:default', key]);
|
|
}
|
|
|
|
Future<String> mainHandleRelayId({required String id, dynamic hint}) {
|
|
var newId = id;
|
|
if (id.endsWith("\\r") || id.endsWith("/r")) {
|
|
newId = id.substring(0, id.length - 2);
|
|
}
|
|
return Future.value(newId);
|
|
}
|
|
|
|
String mainGetMainDisplay({dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['main_display']);
|
|
}
|
|
|
|
String mainGetDisplays({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionAddPortForward(
|
|
{required UuidValue sessionId,
|
|
required int localPort,
|
|
required String remoteHost,
|
|
required int remotePort,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRemovePortForward(
|
|
{required UuidValue sessionId, required int localPort, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionNewRdp({required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRequestVoiceCall(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionCloseVoiceCall(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmHandleIncomingVoiceCall(
|
|
{required int id, required bool accept, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmCloseVoiceCall({required int id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetLastRemoteId({dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['option', 'last_remote_id']));
|
|
}
|
|
|
|
Future<String> mainGetSoftwareUpdateUrl({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetHomeDir({dynamic hint}) {
|
|
return Future.value('');
|
|
}
|
|
|
|
Future<String> mainGetLangs({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetTemporaryPassword({dynamic hint}) {
|
|
return Future.value('');
|
|
}
|
|
|
|
Future<String> mainGetPermanentPassword({dynamic hint}) {
|
|
return Future.value('');
|
|
}
|
|
|
|
Future<String> mainGetFingerprint({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> cmGetClientsState({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String?> cmCheckClientsLength({required int length, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<int> cmGetClientsLength({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainInit({required String appDir, dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
Future<void> mainDeviceId({required String id, dynamic hint}) {
|
|
// TODO: ?
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainDeviceName({required String name, dynamic hint}) {
|
|
// TODO: ?
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainRemovePeer({required String id, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['remove', id]));
|
|
}
|
|
|
|
bool mainHasHwcodec({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainHasVram({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainSupportedHwdecodings({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool> mainIsRoot({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
int getDoubleClickTime({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainStartDbusServer({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSaveAb({required String json, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainClearAb({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainLoadAb({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSaveGroup({required String json, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainClearGroup({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainLoadGroup({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionSendPointer(
|
|
{required UuidValue sessionId, required String msg, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionSendMouse(
|
|
{required UuidValue sessionId, required String msg, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['send_mouse', msg]));
|
|
}
|
|
|
|
Future<void> sessionRestartRemoteDevice(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(() => js.context.callMethod('setByName', ['restart']));
|
|
}
|
|
|
|
String sessionGetAuditServerSync(
|
|
{required UuidValue sessionId, required String typ, dynamic hint}) {
|
|
return js.context.callMethod('getByName', ['audit_server', typ]);
|
|
}
|
|
|
|
Future<void> sessionSendNote(
|
|
{required UuidValue sessionId, required String note, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> sessionAlternativeCodecs(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('getByName', ['alternative_codecs']));
|
|
}
|
|
|
|
Future<void> sessionChangePreferCodec(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future(
|
|
() => js.context.callMethod('setByName', ['change_prefer_codec']));
|
|
}
|
|
|
|
Future<void> sessionOnWaitingForImageDialogShow(
|
|
{required UuidValue sessionId, dynamic hint}) {
|
|
return Future.value();
|
|
}
|
|
|
|
Future<void> sessionToggleVirtualDisplay(
|
|
{required UuidValue sessionId,
|
|
required int index,
|
|
required bool on,
|
|
dynamic hint}) {
|
|
// TODO
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetHomeDir({required String home, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetDataDirIos({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainStopService({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainStartService({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainUpdateTemporaryPassword({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetPermanentPassword(
|
|
{required String password, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool> mainCheckSuperUserPermission({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainCheckMouseTime({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<double> mainGetMouseTime({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainWol({required String id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainCreateShortcut({required String id, dynamic hint}) {
|
|
// TODO:
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmSendChat(
|
|
{required int connId, required String msg, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmLoginRes(
|
|
{required int connId, required bool res, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmCloseConnection({required int connId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmRemoveDisconnectedConnection(
|
|
{required int connId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmCheckClickTime({required int connId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<double> cmGetClickTime({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmSwitchPermission(
|
|
{required int connId,
|
|
required String name,
|
|
required bool enabled,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool cmCanElevate({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmElevatePortable({required int connId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> cmSwitchBack({required int connId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> cmGetConfig({required String name, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainGetBuildDate({dynamic hint}) {
|
|
// TODO
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String translate(
|
|
{required String name, required String locale, dynamic hint}) {
|
|
return js.context.callMethod('getByName', [
|
|
'translate',
|
|
jsonEncode({'locale': locale, 'text': name})
|
|
]);
|
|
}
|
|
|
|
int sessionGetRgbaSize(
|
|
{required UuidValue sessionId, required int display, dynamic hint}) {
|
|
return 0;
|
|
}
|
|
|
|
void sessionNextRgba(
|
|
{required UuidValue sessionId, required int display, dynamic hint}) {}
|
|
|
|
void sessionRegisterPixelbufferTexture(
|
|
{required UuidValue sessionId,
|
|
required int display,
|
|
required int ptr,
|
|
dynamic hint}) {}
|
|
|
|
void sessionRegisterGpuTexture(
|
|
{required UuidValue sessionId,
|
|
required int display,
|
|
required int ptr,
|
|
dynamic hint}) {}
|
|
|
|
Future<void> queryOnlines({required List<String> ids, dynamic hint}) {
|
|
return Future(() =>
|
|
js.context.callMethod('setByName', ['query_onlines', jsonEncode(ids)]));
|
|
}
|
|
|
|
// Dup to the function in hbb_common, lib.rs
|
|
// Maybe we need to move this function to js part.
|
|
int versionToNumber({required String v, dynamic hint}) {
|
|
return int.tryParse(
|
|
js.context.callMethod('getByName', ['get_version_number', v])) ??
|
|
0;
|
|
}
|
|
|
|
Future<bool> optionSynced({dynamic hint}) {
|
|
return Future.value(true);
|
|
}
|
|
|
|
bool mainIsInstalled({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
void mainInitInputSource({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsInstalledLowerVersion({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsInstalledDaemon({required bool prompt, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsProcessTrusted({required bool prompt, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsCanScreenRecording({required bool prompt, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsCanInputMonitoring({required bool prompt, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsShareRdp({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainSetShareRdp({required bool enable, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainGotoInstall({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetNewVersion({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainUpdateMe({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> setCurSessionId({required UuidValue sessionId, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool installShowRunWithoutInstall({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> installRunWithoutInstall({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> installInstallMe(
|
|
{required String options, required String path, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String installInstallPath({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainAccountAuth(
|
|
{required String op, required bool rememberMe, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainAccountAuthCancel({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainAccountAuthResult({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainOnMainWindowClose({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainCurrentIsWayland({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool mainIsLoginWayland({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool mainHideDocker({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainHasFileClipboard({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool mainHasGpuTextureRender({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
Future<void> cmInit({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainStartIpcUrlServer({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainTestWallpaper({required int second, dynamic hint}) {
|
|
// TODO: implement mainTestWallpaper
|
|
return Future.value();
|
|
}
|
|
|
|
Future<bool> mainSupportRemoveWallpaper({dynamic hint}) {
|
|
// TODO: implement mainSupportRemoveWallpaper
|
|
return Future.value(false);
|
|
}
|
|
|
|
bool isIncomingOnly({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isOutgoingOnly({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isCustomClient({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isDisableSettings({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isDisableAb({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isDisableGroupPanel({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isDisableAccount({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
bool isDisableInstallation({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
Future<bool> isPresetPassword({dynamic hint}) {
|
|
return Future.value(false);
|
|
}
|
|
|
|
Future<void> sendUrlScheme({required String url, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginEvent(
|
|
{required String id,
|
|
required String peer,
|
|
required Uint8List event,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Stream<EventToUI> pluginRegisterEventStream(
|
|
{required String id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String? pluginGetSessionOption(
|
|
{required String id,
|
|
required String peer,
|
|
required String key,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginSetSessionOption(
|
|
{required String id,
|
|
required String peer,
|
|
required String key,
|
|
required String value,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String? pluginGetSharedOption(
|
|
{required String id, required String key, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginSetSharedOption(
|
|
{required String id,
|
|
required String key,
|
|
required String value,
|
|
dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginReload({required String id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
void pluginEnable({required String id, required bool v, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool pluginIsEnabled({required String id, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool pluginFeatureIsEnabled({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginSyncUi({required String syncTo, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginListReload({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> pluginInstall(
|
|
{required String id, required bool b, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool isSupportMultiUiSession({required String version, dynamic hint}) {
|
|
return versionToNumber(v: version) > versionToNumber(v: '1.2.4');
|
|
}
|
|
|
|
bool isSelinuxEnforcing({dynamic hint}) {
|
|
return false;
|
|
}
|
|
|
|
String mainDefaultPrivacyModeImpl({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainSupportedPrivacyModeImpls({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainSupportedInputSource({dynamic hint}) {
|
|
return jsonEncode([
|
|
['Input source 2', 'input_source_2_tip']
|
|
]);
|
|
}
|
|
|
|
Future<String> mainGenerate2Fa({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<bool> mainVerify2Fa({required String code, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainHasValid2FaSync({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
String mainGetHardOption({required String key, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> mainCheckHwcodec({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<void> sessionRequestNewDisplayInitMsgs(
|
|
{required UuidValue sessionId, required int display, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainHandleWaylandScreencastRestoreToken(
|
|
{required String key, required String value, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainIsOptionFixed({required String key, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainGetUseTextureRender({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
bool mainHasValidBotSync({dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
Future<String> mainVerifyBot({required String token, dynamic hint}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
void dispose() {}
|
|
}
|