From f04c6ac86ac6bf43876f8016c5053d2f461b520d Mon Sep 17 00:00:00 2001 From: Isaac Deutsch Date: Sun, 16 Feb 2025 15:59:57 +0100 Subject: [PATCH 1/3] Save SRAM and state on Android shutdown --- location/drivers/android.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/location/drivers/android.c b/location/drivers/android.c index b98037f64b7d..1b32bd9084ed 100644 --- a/location/drivers/android.c +++ b/location/drivers/android.c @@ -134,12 +134,30 @@ static bool android_location_start(void *data) static void android_location_stop(void *data) { - struct android_app *android_app = (struct android_app*)g_android; androidlocation_t *androidlocation = (androidlocation_t*)data; JNIEnv *env = jni_thread_getenv(); - if (!env) + if (!androidlocation || !env) return; + settings_t* settings = config_get_ptr(); + bool auto_save_state = settings->bools.auto_save_state; + + if (auto_save_state) + { + /* Make a save state */ + command_event(CMD_EVENT_SAVE_STATE, NULL); + + /* Flush the auto save state to disk */ + command_event(CMD_EVENT_AUTOSAVE_DELETE, NULL); + } + + /* Flush SRAM to disk */ + command_event(CMD_EVENT_SAVE_FILES, NULL); + + /* TODO: Save config? */ + + /* Stop the location service */ + struct android_app *android_app = (struct android_app*)g_android; CALL_VOID_METHOD(env, android_app->activity->clazz, androidlocation->onLocationStop); } From 70067616605e3b84efe1081d10fd9f615374e0d5 Mon Sep 17 00:00:00 2001 From: Isaac Deutsch Date: Sun, 16 Feb 2025 16:17:23 +0100 Subject: [PATCH 2/3] Fix mising include --- location/drivers/android.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/location/drivers/android.c b/location/drivers/android.c index 1b32bd9084ed..d2f5e1393655 100644 --- a/location/drivers/android.c +++ b/location/drivers/android.c @@ -14,6 +14,7 @@ * If not, see . */ +#include "../../command.h" #include "../../location_driver.h" #include "../../retroarch.h" @@ -140,9 +141,7 @@ static void android_location_stop(void *data) return; settings_t* settings = config_get_ptr(); - bool auto_save_state = settings->bools.auto_save_state; - - if (auto_save_state) + if (settings->bools.auto_save_state) { /* Make a save state */ command_event(CMD_EVENT_SAVE_STATE, NULL); From ee889b7846d4e62cd9dc657a78a76d6b4cf97654 Mon Sep 17 00:00:00 2001 From: Isaac Deutsch Date: Sun, 16 Feb 2025 16:34:26 +0100 Subject: [PATCH 3/3] Comment out imaginary enum constant --- location/drivers/android.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/location/drivers/android.c b/location/drivers/android.c index d2f5e1393655..e70a559fff32 100644 --- a/location/drivers/android.c +++ b/location/drivers/android.c @@ -140,6 +140,7 @@ static void android_location_stop(void *data) if (!androidlocation || !env) return; +#if 0 settings_t* settings = config_get_ptr(); if (settings->bools.auto_save_state) { @@ -149,13 +150,10 @@ static void android_location_stop(void *data) /* Flush the auto save state to disk */ command_event(CMD_EVENT_AUTOSAVE_DELETE, NULL); } +#endif - /* Flush SRAM to disk */ command_event(CMD_EVENT_SAVE_FILES, NULL); - /* TODO: Save config? */ - - /* Stop the location service */ struct android_app *android_app = (struct android_app*)g_android; CALL_VOID_METHOD(env, android_app->activity->clazz, androidlocation->onLocationStop);