From 26c3ed9af4a8d8bc711bc34adc90b9e96e651dfc Mon Sep 17 00:00:00 2001 From: c Date: Fri, 29 May 2026 16:42:02 +0200 Subject: [PATCH 1/2] partial revert of 145b36f #1736 --- src/android/binding.rs | 5 +---- src/android/main_pipe.rs | 15 ++++++--------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/android/binding.rs b/src/android/binding.rs index c84e6e0e0..6ea24af91 100644 --- a/src/android/binding.rs +++ b/src/android/binding.rs @@ -255,10 +255,7 @@ fn handle_request( #[allow(non_snake_case)] pub unsafe fn wryCreate(env: JNIEnv, _: JClass) { - let mut main_pipe = MainPipe { - env, - package: super::PACKAGE.get().unwrap(), - }; + let mut main_pipe = MainPipe { env }; let looper = ThreadLooper::for_thread().unwrap(); diff --git a/src/android/main_pipe.rs b/src/android/main_pipe.rs index d58226ce0..a5a2b2f41 100644 --- a/src/android/main_pipe.rs +++ b/src/android/main_pipe.rs @@ -126,7 +126,6 @@ pub fn get_webview(activity_id: ActivityId) -> Option { pub struct MainPipe<'a> { pub env: JNIEnv<'a>, - pub package: &'static str, } impl<'a> MainPipe<'a> { @@ -144,6 +143,7 @@ impl<'a> MainPipe<'a> { } pub fn recv(&mut self) -> JniResult<()> { + let package = super::PACKAGE.get().unwrap(); // SAFETY: The `CHANNEL` is `static` that the sender never drops let (activity_id, message) = CHANNEL.1.recv().unwrap(); match message { @@ -190,11 +190,8 @@ impl<'a> MainPipe<'a> { } let id = self.env.new_string(id)?; // Create webview - let rust_webview_class = find_class( - &mut self.env, - &activity, - format!("{}/RustWebView", self.package), - )?; + let rust_webview_class = + find_class(&mut self.env, &activity, format!("{package}/RustWebView"))?; let webview = self.env.new_object( &rust_webview_class, "(Landroid/content/Context;[Ljava/lang/String;Ljava/lang/String;)V", @@ -242,7 +239,7 @@ impl<'a> MainPipe<'a> { )?; } - let webview_class_name = format!("{}/RustWebView", self.package); + let webview_class_name = format!("{package}/RustWebView"); self.env.call_method( &activity, "setWebView", @@ -273,7 +270,7 @@ impl<'a> MainPipe<'a> { set_background_color(&mut self.env, &webview, color)?; } // Create and set webview client - let client_class_name = format!("{}/RustWebViewClient", self.package); + let client_class_name = format!("{package}/RustWebViewClient"); let rust_webview_client_class = find_class(&mut self.env, &activity, client_class_name.clone())?; let webview_client = self.env.new_object( @@ -296,7 +293,7 @@ impl<'a> MainPipe<'a> { )?; // Add javascript interface (IPC) - let ipc_class = find_class(&mut self.env, &activity, format!("{}/Ipc", self.package))?; + let ipc_class = find_class(&mut self.env, &activity, format!("{package}/Ipc"))?; let ipc = self.env.new_object( ipc_class, format!("(L{webview_class_name};L{client_class_name};)V"), From ab80ba7e1985abafa220addec9be9c31442a08aa Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 27 May 2026 21:38:32 +0800 Subject: [PATCH 2/2] Clean up --- src/android/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/mod.rs b/src/android/mod.rs index 8c0beed76..dfa60e14a 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -109,7 +109,7 @@ pub unsafe fn android_setup( _looper: &ThreadLooper, activity: GlobalRef, ) { - let package = PACKAGE.get_or_init(|| package.to_string()); + PACKAGE.get_or_init(|| package.to_string()); let vm = env.get_java_vm().unwrap();