From 96792bec78a42ecf4039fadd76bdeb88147dbb53 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 27 Feb 2024 17:29:12 +0800 Subject: [PATCH] Refact. Qs, do not check qs on startup. (#7272) Process will not exit if early return on the flutter side. core_main.rs has checked qs already. Signed-off-by: fufesou --- flutter/lib/main.dart | 27 +++++++-------------------- flutter/lib/models/native_model.dart | 6 +----- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index a8298ccc7b10..e866e53864bd 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -98,11 +98,9 @@ Future main(List args) async { } } -Future initEnv(String appType) async { +Future initEnv(String appType) async { // global shared preference - if (!await platformFFI.init(appType)) { - return false; - } + await platformFFI.init(appType); // global FFI, use this **ONLY** for global configuration // for convenience, use global FFI on mobile platform // focus on multi-ffi on desktop first @@ -111,14 +109,11 @@ Future initEnv(String appType) async { _registerEventHandler(); // Update the system theme. updateSystemWindowTheme(); - return true; } void runMainApp(bool startService) async { // register uni links - if (!await initEnv(kAppTypeMain)) { - return; - } + await initEnv(kAppTypeMain); // trigger connection status updater await bind.mainCheckConnectStatus(); if (startService) { @@ -152,9 +147,7 @@ void runMainApp(bool startService) async { } void runMobileApp() async { - if (!await initEnv(kAppTypeMain)) { - return; - } + await initEnv(kAppTypeMain); if (isAndroid) androidChannelInit(); platformFFI.syncAndroidServiceAppDirConfigPath(); await Future.wait([gFFI.abModel.loadCache(), gFFI.groupModel.loadCache()]); @@ -167,9 +160,7 @@ void runMultiWindow( Map argument, String appType, ) async { - if (!await initEnv(appType)) { - return; - } + await initEnv(appType); final title = getWindowName(); // set prevent close to true, we handle close event manually WindowController.fromWindowId(kWindowId!).setPreventClose(true); @@ -232,9 +223,7 @@ void runMultiWindow( } void runConnectionManagerScreen() async { - if (!await initEnv(kAppTypeConnectionManager)) { - return; - } + await initEnv(kAppTypeConnectionManager); _runApp( '', const DesktopServerPage(), @@ -337,9 +326,7 @@ void _runApp( void runInstallPage() async { await windowManager.ensureInitialized(); - if (!await initEnv(kAppTypeMain)) { - return; - } + await initEnv(kAppTypeMain); _runApp('', const InstallPage(), MyTheme.currentThemeMode()); WindowOptions windowOptions = getHiddenTitleBarWindowOptions(size: Size(800, 600), center: true); diff --git a/flutter/lib/models/native_model.dart b/flutter/lib/models/native_model.dart index 1d0d27117e5f..53eeca572274 100644 --- a/flutter/lib/models/native_model.dart +++ b/flutter/lib/models/native_model.dart @@ -109,7 +109,7 @@ class PlatformFFI { sessionId: sessionId, display: display, ptr: ptr); /// Init the FFI class, loads the native Rust core library. - Future init(String appType) async { + Future init(String appType) async { _appType = appType; final dylib = Platform.isAndroid ? DynamicLibrary.open('librustdesk.so') @@ -130,9 +130,6 @@ class PlatformFFI { debugPrint('Failed to get documents directory: $e'); } _ffiBind = RustdeskImpl(dylib); - if (_ffiBind.isQs() && (_appType != kAppTypeMain && _appType != kAppTypeConnectionManager)) { - return false; - } if (Platform.isLinux) { // Start a dbus service, no need to await @@ -206,7 +203,6 @@ class PlatformFFI { debugPrintStack(label: 'initialize failed: $e'); } version = await getVersion(); - return true; } Future tryHandle(Map evt) async {