From c67b9528698fbfa902c9b10674234b89d6fcd519 Mon Sep 17 00:00:00 2001 From: csf Date: Tue, 20 Dec 2022 23:36:04 +0900 Subject: [PATCH 1/2] fix logOut fail, add logOut request timeout and catch err --- flutter/lib/models/user_model.dart | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/flutter/lib/models/user_model.dart b/flutter/lib/models/user_model.dart index 44fef5443..e5d2c9e15 100644 --- a/flutter/lib/models/user_model.dart +++ b/flutter/lib/models/user_model.dart @@ -79,12 +79,16 @@ class UserModel { final tag = gFFI.dialogManager.showLoading(translate('Waiting')); try { final url = await bind.mainGetApiServer(); - final _ = await http.post(Uri.parse('$url/api/logout'), - body: { - 'id': await bind.mainGetMyId(), - 'uuid': await bind.mainGetUuid(), - }, - headers: await getHttpHeaders()); + await http + .post(Uri.parse('$url/api/logout'), + body: { + 'id': await bind.mainGetMyId(), + 'uuid': await bind.mainGetUuid(), + }, + headers: await getHttpHeaders()) + .timeout(Duration(seconds: 2)); + } catch (e) { + print("request /api/logout failed: err=$e"); } finally { await reset(); gFFI.dialogManager.dismissByTag(tag); From 58c1be39c840dab33aab5e3d760f2c8688240442 Mon Sep 17 00:00:00 2001 From: csf Date: Tue, 20 Dec 2022 23:55:54 +0900 Subject: [PATCH 2/2] add catch err --- flutter/lib/desktop/pages/file_manager_page.dart | 2 ++ flutter/lib/desktop/widgets/remote_menubar.dart | 4 +++- flutter/lib/mobile/pages/remote_page.dart | 6 ++++-- flutter/lib/models/file_model.dart | 5 +++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/flutter/lib/desktop/pages/file_manager_page.dart b/flutter/lib/desktop/pages/file_manager_page.dart index b9fa1a143..60b22a516 100644 --- a/flutter/lib/desktop/pages/file_manager_page.dart +++ b/flutter/lib/desktop/pages/file_manager_page.dart @@ -982,6 +982,8 @@ class _FileManagerPageState extends State }, dismissOnClicked: true)); } + } catch (e) { + debugPrint("buildBread fetchDirectory err=$e"); } finally { if (!isLocal) { _ffi.dialogManager.dismissByTag(loadingTag); diff --git a/flutter/lib/desktop/widgets/remote_menubar.dart b/flutter/lib/desktop/widgets/remote_menubar.dart index c1a7bdce2..a7d7b6dc6 100644 --- a/flutter/lib/desktop/widgets/remote_menubar.dart +++ b/flutter/lib/desktop/widgets/remote_menubar.dart @@ -1032,7 +1032,9 @@ class _RemoteMenubarState extends State { final h265 = codecsJson['h265'] ?? false; codecs.add(h264); codecs.add(h265); - } finally {} + } catch (e) { + debugPrint("Show Codec Preference err=$e"); + } if (codecs.length == 2 && (codecs[0] || codecs[1])) { displayMenu.add(MenuEntryRadios( text: translate('Codec Preference'), diff --git a/flutter/lib/mobile/pages/remote_page.dart b/flutter/lib/mobile/pages/remote_page.dart index d0388b8fe..c1db230bb 100644 --- a/flutter/lib/mobile/pages/remote_page.dart +++ b/flutter/lib/mobile/pages/remote_page.dart @@ -696,7 +696,7 @@ class _RemotePageState extends State { gFFI.dialogManager.show((setState, close) { void setMode(String? v) async { await bind.sessionPeerOption( - id: widget.id, name: "keyboard-mode", value: v ?? ""); + id: widget.id, name: "keyboard-mode", value: v ?? ""); setState(() => current = v ?? ''); Future.delayed(Duration(milliseconds: 300), close); } @@ -978,7 +978,9 @@ void showOptions( final h265 = codecsJson['h265'] ?? false; codecs.add(h264); codecs.add(h265); - } finally {} + } catch (e) { + debugPrint("Show Codec Preference err=$e"); + } } dialogManager.show((setState, close) { diff --git a/flutter/lib/models/file_model.dart b/flutter/lib/models/file_model.dart index 142479c2a..c08d2e623 100644 --- a/flutter/lib/models/file_model.dart +++ b/flutter/lib/models/file_model.dart @@ -213,7 +213,6 @@ class FileModel extends ChangeNotifier { } receiveFileDir(Map evt) { - // debugPrint("recv file dir:$evt"); if (evt['is_local'] == "false") { // init remote home, the connection will automatic read remote home when established, try { @@ -237,7 +236,9 @@ class FileModel extends ChangeNotifier { debugPrint("init remote home:${fd.path}"); _currentRemoteDir = fd; } - } finally {} + } catch (e) { + debugPrint("receiveFileDir err=$e"); + } } _fileFetcher.tryCompleteTask(evt['value'], evt['is_local']); notifyListeners();