From 5530de0fb796fcf767bc6bd11ccef24df6682141 Mon Sep 17 00:00:00 2001 From: Themaister Date: Mon, 16 Jun 2014 21:50:29 +0200 Subject: [PATCH] Android: Fix handling of libretro_path/libretro_directory. --- .../retroarch/browser/mainmenu/MainMenuFragment.java | 2 +- .../browser/preferences/util/UserPreferences.java | 12 ++++++++---- retroarch.c | 1 + settings.c | 5 ++++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java index d40dcba531..988614709e 100644 --- a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java +++ b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java @@ -215,7 +215,7 @@ public final class MainMenuFragment extends PreferenceListFragment implements On MainMenuFragment.startRetroActivity( retro, null, - prefs.getString("libretro_path", ctx.getApplicationInfo().dataDir + "/cores"), + prefs.getString("libretro_path", ctx.getApplicationInfo().dataDir + "/cores/"), UserPreferences.getDefaultConfigPath(ctx), Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD), ctx.getApplicationInfo().dataDir); diff --git a/android/phoenix/src/com/retroarch/browser/preferences/util/UserPreferences.java b/android/phoenix/src/com/retroarch/browser/preferences/util/UserPreferences.java index 9e768f1352..36ac8ffda9 100644 --- a/android/phoenix/src/com/retroarch/browser/preferences/util/UserPreferences.java +++ b/android/phoenix/src/com/retroarch/browser/preferences/util/UserPreferences.java @@ -42,17 +42,18 @@ public final class UserPreferences // Native library directory and data directory for this front-end. final String nativeLibraryDir = ctx.getApplicationInfo().nativeLibraryDir; final String dataDir = ctx.getApplicationInfo().dataDir; + final String coreDir = dataDir + "/cores/"; // Get libretro name and path final SharedPreferences prefs = getPreferences(ctx); - final String libretro_path = prefs.getString("libretro_path", nativeLibraryDir); + final String libretro_path = prefs.getString("libretro_path", coreDir); // Check if global config is being used. Return true upon failure. final boolean globalConfigEnabled = prefs.getBoolean("global_config_enable", true); String append_path; // If we aren't using the global config. - if (!globalConfigEnabled && !libretro_path.equals(nativeLibraryDir)) + if (!globalConfigEnabled && !libretro_path.equals(coreDir)) { String sanitized_name = sanitizeLibretroPath(libretro_path); append_path = File.separator + sanitized_name + ".cfg"; @@ -158,11 +159,13 @@ public final class UserPreferences Log.i(TAG, "Writing config to: " + path); final String dataDir = ctx.getApplicationInfo().dataDir; + final String coreDir = dataDir + "/cores/"; final String nativeLibraryDir = ctx.getApplicationInfo().nativeLibraryDir; final SharedPreferences prefs = getPreferences(ctx); - config.setString("libretro_path", prefs.getString("libretro_path", nativeLibraryDir)); + config.setString("libretro_path", prefs.getString("libretro_path", coreDir)); + config.setString("libretro_directory", coreDir); config.setString("rgui_browser_directory", prefs.getString("rgui_browser_directory", "")); config.setBoolean("audio_rate_control", prefs.getBoolean("audio_rate_control", true)); config.setInt("audio_out_rate", getOptimalSamplingRate(ctx)); @@ -217,7 +220,8 @@ public final class UserPreferences config.setBoolean("video_shader_enable", prefs.getBoolean("video_shader_enable", false) && new File(prefs.getString("video_shader", "")).exists()); - config.setBoolean("input_overlay_enable", prefs.getBoolean("input_overlay_enable", false)); + if (prefs.contains("input_overlay_enable")) + config.setBoolean("input_overlay_enable", prefs.getBoolean("input_overlay_enable", true)); config.setString("input_overlay", prefs.getString("input_overlay", "")); if (prefs.getBoolean("savefile_directory_enable", false)) diff --git a/retroarch.c b/retroarch.c index 42a4c5baeb..8631674e52 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1087,6 +1087,7 @@ static void parse_input(int argc, char *argv[]) strlcpy(g_settings.libretro_directory, optarg, sizeof(g_settings.libretro_directory)); g_extern.has_set_libretro = true; g_extern.has_set_libretro_directory = true; + RARCH_WARN("Using old --libretro behavior. Setting libretro_directory to \"%s\" instead.\n", optarg); } else { diff --git a/settings.c b/settings.c index a2ea51ff98..ede69b1b5e 100644 --- a/settings.c +++ b/settings.c @@ -416,8 +416,11 @@ void config_set_defaults(void) *g_extern.savefile_dir = '\0'; if (!g_extern.has_set_state_path) *g_extern.savestate_dir = '\0'; + *g_settings.libretro_info_path = '\0'; - *g_settings.libretro_directory = '\0'; + if (!g_extern.has_set_libretro_directory) + *g_settings.libretro_directory = '\0'; + *g_settings.core_options_path = '\0'; *g_settings.game_history_path = '\0'; *g_settings.cheat_database = '\0';