From 70b9d20c643caf019a560dde6255d8ea7b36807c Mon Sep 17 00:00:00 2001
From: Logan McNaughton <848146+loganmc10@users.noreply.github.com>
Date: Tue, 23 Jun 2026 15:57:52 +0200
Subject: [PATCH] fix android build (#1113)
* fix android build
* more
* more
---
src/lib.rs | 12 +-
src/ui/android.rs | 379 ++++++++++++++++++++++++----------------------
2 files changed, 204 insertions(+), 187 deletions(-)
diff --git a/src/lib.rs b/src/lib.rs
index 1a71f457..c2855c5f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -352,7 +352,9 @@ fn android_main(app: slint::android::AndroidApp) {
slint::android::init_with_event_listener(app.clone(), move |event| match event {
slint::android::android_activity::PollEvent::Main(main_event) => match main_event {
slint::android::android_activity::MainEvent::TerminateWindow { .. } => {
- if let Some(weak_app_window) = android::WEAK_SLINT_WINDOW.blocking_lock().as_ref() {
+ if let Ok(weak_app_window) = android::WEAK_SLINT_WINDOW.lock()
+ && let Some(weak_app_window) = weak_app_window.as_ref()
+ {
weak_app_window
.upgrade_in_event_loop(move |handle| {
ui::gui::save_settings(&handle);
@@ -367,9 +369,9 @@ fn android_main(app: slint::android::AndroidApp) {
})
.unwrap();
let app_window = ui::gui::AppWindow::new().unwrap();
- *android::WEAK_SLINT_WINDOW.blocking_lock() = Some(app_window.as_weak());
+ *android::WEAK_SLINT_WINDOW.lock().unwrap() = Some(app_window.as_weak());
- *android::ANDROID_APP.blocking_lock() = Some(app);
+ *android::ANDROID_APP.lock().unwrap() = Some(app);
let dirs = ui::get_dirs();
@@ -380,6 +382,6 @@ fn android_main(app: slint::android::AndroidApp) {
ui::gui::app_window(&app_window, true);
close_tx.send(()).unwrap();
- *android::WEAK_SLINT_WINDOW.blocking_lock() = None;
- *android::ANDROID_APP.blocking_lock() = None;
+ *android::WEAK_SLINT_WINDOW.lock().unwrap() = None;
+ *android::ANDROID_APP.lock().unwrap() = None;
}
diff --git a/src/ui/android.rs b/src/ui/android.rs
index cf00549d..75765b72 100644
--- a/src/ui/android.rs
+++ b/src/ui/android.rs
@@ -13,15 +13,15 @@ const REQUEST_SELECT_ROM: jint = 1;
const CONFIGURE_INPUT_PROFILE: jint = 2;
const RUN_ROM: jint = 3;
-pub static ANDROID_APP: tokio::sync::Mutex