From 2692c295199967af0750af5957059947f113dcad Mon Sep 17 00:00:00 2001 From: dignow Date: Sun, 6 Aug 2023 10:56:57 +0800 Subject: [PATCH] refact, split window, debug Signed-off-by: dignow --- src/client/io_loop.rs | 13 ++++++++++++- src/ui_session_interface.rs | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/client/io_loop.rs b/src/client/io_loop.rs index eee857f60..c24d0f54c 100644 --- a/src/client/io_loop.rs +++ b/src/client/io_loop.rs @@ -125,7 +125,18 @@ impl Remote { .await { Ok((mut peer, direct, pk)) => { - self.handler.set_connection_type(peer.is_secured(), direct); // flutter -> connection_ready + let is_secured = peer.is_secured(); + #[cfg(feature = "flutter")] + #[cfg(not(any(target_os = "android", target_os = "ios")))] + { + self.handler + .cache_flutter + .write() + .unwrap() + .is_secured_direct + .replace((is_secured, direct)); + } + self.handler.set_connection_type(is_secured, direct); // flutter -> connection_ready self.handler.update_direct(Some(direct)); if conn_type == ConnType::DEFAULT_CONN { self.handler diff --git a/src/ui_session_interface.rs b/src/ui_session_interface.rs index 21b9c9d9e..704b91cf0 100644 --- a/src/ui_session_interface.rs +++ b/src/ui_session_interface.rs @@ -56,6 +56,7 @@ pub struct CacheFlutter { pub sp: Option, pub cursor_data: HashMap, pub cursor_id: u64, + pub is_secured_direct: Option<(bool, bool)>, } #[derive(Clone, Default)] @@ -1198,6 +1199,9 @@ impl Session { #[cfg(feature = "flutter")] #[cfg(not(any(target_os = "android", target_os = "ios")))] pub fn restore_flutter_cache(&mut self) { + if let Some((is_secured, direct)) = self.cache_flutter.read().unwrap().is_secured_direct { + self.set_connection_type(is_secured, direct); + } let pi = self.cache_flutter.read().unwrap().pi.clone(); self.handle_peer_info(pi); if let Some(sp) = self.cache_flutter.read().unwrap().sp.as_ref() {