From 2db8f1f9d1c52166f9fd859f9ca0250a3711324a Mon Sep 17 00:00:00 2001 From: dignow Date: Sat, 5 Aug 2023 19:48:32 +0800 Subject: [PATCH] refact, separate remote window Signed-off-by: dignow --- flutter/lib/models/model.dart | 8 ++++---- src/flutter_ffi.rs | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index a77b3b238..ba6c50ac0 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -1656,13 +1656,13 @@ class FFI { final cb = ffiModel.startEventListener(sessionId, id); final useTextureRender = bind.mainUseTextureRender(); - final SimpleWrapper isCacheRestored = SimpleWrapper(false); + final SimpleWrapper isToNewWindowNotified = SimpleWrapper(false); // Preserved for the rgba data. stream.listen((message) { if (closed) return; - if (isSessionAdded && !isCacheRestored.value) { - bind.sessionRestoreCache(sessionId: sessionId); - isCacheRestored.value = true; + if (isSessionAdded && !isToNewWindowNotified.value) { + bind.sessionReadyToNewWindow(sessionId: sessionId); + isToNewWindowNotified.value = true; } () async { if (message is EventToUI_Event) { diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index 05819dfd8..0a93ac58c 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -601,10 +601,11 @@ pub fn session_change_resolution(session_id: SessionID, display: i32, width: i32 } } -pub fn session_restore_cache(session_id: SessionID) { +pub fn session_ready_to_new_window(session_id: SessionID) { #[cfg(not(any(target_os = "android", target_os = "ios")))] if let Some(session) = SESSIONS.write().unwrap().get_mut(&session_id) { session.restore_flutter_cache(); + session.refresh_video(); } }