From 384d51450ce91639549858f021cb6b69e9966dff Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 18 Apr 2022 17:01:45 +0800 Subject: [PATCH] fix iOS --- lib/models/native_model.dart | 12 ++++++++---- lib/pages/scan_page.dart | 7 +++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/models/native_model.dart b/lib/models/native_model.dart index d2c83d7f2..30aad8d4d 100644 --- a/lib/models/native_model.dart +++ b/lib/models/native_model.dart @@ -53,7 +53,7 @@ class PlatformFFI { var a = name.toNativeUtf8(); var b = arg.toNativeUtf8(); var p = _getByName!(a, b); - assert(p != nullptr && p != null); + assert(p != nullptr); var res = p.toDartString(); calloc.free(p); calloc.free(a); @@ -86,7 +86,11 @@ class PlatformFFI { .lookupFunction), F4>('free_rgba'); _getRgba = dylib.lookupFunction('get_rgba'); _dir = (await getApplicationDocumentsDirectory()).path; - _homeDir = (await ExternalPath.getExternalStorageDirectories())[0]; + try { + _homeDir = (await ExternalPath.getExternalStorageDirectories())[0]; + } catch (e) { + print(e); + } String id = 'NA'; String name = 'Flutter'; DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); @@ -123,9 +127,9 @@ class PlatformFFI { }); } - static invokeMethod(String method,[ dynamic arguments ]) async { + static invokeMethod(String method, [dynamic arguments]) async { if (!isAndroid) return Future(() => false); - return await toAndroidChannel.invokeMethod(method,arguments); + return await toAndroidChannel.invokeMethod(method, arguments); } } diff --git a/lib/pages/scan_page.dart b/lib/pages/scan_page.dart index ab17c67b8..c2e3961a3 100644 --- a/lib/pages/scan_page.dart +++ b/lib/pages/scan_page.dart @@ -4,6 +4,7 @@ import 'package:image_picker/image_picker.dart'; import 'package:image/image.dart' as img; import 'package:zxing2/qrcode.dart'; import 'dart:io'; +import 'dart:async'; import 'dart:convert'; import '../common.dart'; import '../models/model.dart'; @@ -130,7 +131,7 @@ class _ScanPageState extends State { void showServerSettingFromQr(String data) async { backToHome(); - await controller!.stopCamera(); + await controller?.pauseCamera(); if (!data.startsWith('config=')) { showToast('Invalid QR code'); return; @@ -140,7 +141,9 @@ class _ScanPageState extends State { var host = values['host'] != null ? values['host'] as String : ''; var key = values['key'] != null ? values['key'] as String : ''; var api = values['api'] != null ? values['api'] as String : ''; - showServerSettingsWithValue(host, '', key, api); + Timer(Duration(milliseconds: 60), () { + showServerSettingsWithValue(host, '', key, api); + }); } catch (e) { showToast('Invalid QR code'); }