From 73884dc33d0686240ac7e7295be7ad95fc3b69c0 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Thu, 30 Apr 2026 11:43:53 -0300 Subject: [PATCH] chore: updates for tao 0.36 ref https://github.com/tauri-apps/tao/pull/1209 --- .changes/android-activity-lifecycle.md | 5 ++++ src/android/kotlin/Rust.kt | 8 +++---- src/android/kotlin/WryActivity.kt | 32 ++++++++++---------------- 3 files changed, 21 insertions(+), 24 deletions(-) create mode 100644 .changes/android-activity-lifecycle.md diff --git a/.changes/android-activity-lifecycle.md b/.changes/android-activity-lifecycle.md new file mode 100644 index 000000000..a825f3300 --- /dev/null +++ b/.changes/android-activity-lifecycle.md @@ -0,0 +1,5 @@ +--- +"wry": minor +--- + +Updated Android lifecycle JNI calls to pass the `WryActivity` instance for `start`, `resume`, `pause`, and `stop`, allowing Tao to emit window-specific lifecycle events. diff --git a/src/android/kotlin/Rust.kt b/src/android/kotlin/Rust.kt index b5b6bdfbb..f10f47d58 100644 --- a/src/android/kotlin/Rust.kt +++ b/src/android/kotlin/Rust.kt @@ -24,10 +24,10 @@ object Rust { @JvmStatic external fun onNewIntent(intent: Intent) @JvmStatic external fun create() - @JvmStatic external fun start() - @JvmStatic external fun resume() - @JvmStatic external fun pause() - @JvmStatic external fun stop() + @JvmStatic external fun start(activity: WryActivity) + @JvmStatic external fun resume(activity: WryActivity) + @JvmStatic external fun pause(activity: WryActivity) + @JvmStatic external fun stop(activity: WryActivity) @JvmStatic external fun wryCreate() @JvmStatic external fun onWebviewDestroy(activity: WryActivity, webviewId: String) diff --git a/src/android/kotlin/WryActivity.kt b/src/android/kotlin/WryActivity.kt index 7152e352b..95e638bea 100644 --- a/src/android/kotlin/WryActivity.kt +++ b/src/android/kotlin/WryActivity.kt @@ -24,26 +24,6 @@ object WryLifecycleObserver : DefaultLifecycleObserver { Rust.create() Rust.wryCreate() } - - override fun onStart(owner: LifecycleOwner) { - super.onStart(owner) - Rust.start() - } - - override fun onResume(owner: LifecycleOwner) { - super.onResume(owner) - Rust.resume() - } - - override fun onPause(owner: LifecycleOwner) { - super.onPause(owner) - Rust.pause() - } - - override fun onStop(owner: LifecycleOwner) { - super.onStop(owner) - Rust.stop() - } } abstract class WryActivity : AppCompatActivity() { @@ -116,6 +96,11 @@ abstract class WryActivity : AppCompatActivity() { Rust.onActivityCreate(this) } + override fun onStart() { + super.onStart() + Rust.start(this) + } + override fun onWindowFocusChanged(hasFocus: Boolean) { super.onWindowFocusChanged(hasFocus) Rust.onWindowFocusChanged(this, hasFocus) @@ -129,6 +114,7 @@ abstract class WryActivity : AppCompatActivity() { override fun onPause() { super.onPause() + Rust.pause(this) if (::mWebView.isInitialized) { mWebView.onPause() } @@ -136,11 +122,17 @@ abstract class WryActivity : AppCompatActivity() { override fun onResume() { super.onResume() + Rust.resume(this) if (::mWebView.isInitialized) { mWebView.onResume() } } + override fun onStop() { + super.onStop() + Rust.stop(this) + } + override fun onDestroy() { super.onDestroy() Rust.onActivityDestroy(this)