Fix Android controller mappings accidentally being in IsSettingSaveable

Settings.SECTION_INI_ANDROID and Settings.SECTION_BINDINGS
both have the value "Android", but we only want the former
to be marked as being handled by the new config system.

This change fixes a problem where controller settings were
not being properly saved to Dolphin.ini.
This commit is contained in:
JosJuice 2021-05-16 16:52:13 +02:00
parent b4ec550782
commit 1bf6762709
1 changed files with 15 additions and 2 deletions

View File

@ -26,12 +26,25 @@ bool IsSettingSaveable(const Config::Location& config_location)
if (config_location.system == Config::System::Main) if (config_location.system == Config::System::Main)
{ {
for (const std::string& section : {"NetPlay", "General", "Display", "Network", "Analytics", for (const std::string& section :
"AndroidOverlayButtons", "Android"}) {"NetPlay", "General", "Display", "Network", "Analytics", "AndroidOverlayButtons"})
{ {
if (config_location.section == section) if (config_location.section == section)
return true; return true;
} }
// Android controller mappings are not saveable, other Android settings are.
// TODO: Kill the current Android controller mappings system
if (config_location.section == "Android")
{
static constexpr std::array<const char*, 8> android_setting_saveable = {
"ControlScale", "ControlOpacity", "EmulationOrientation", "JoystickRelCenter",
"LastPlatformTab", "MotionControls", "PhoneRumble", "ShowInputOverlay"};
return std::any_of(
android_setting_saveable.cbegin(), android_setting_saveable.cend(),
[&config_location](const char* key) { return key == config_location.key; });
}
} }
static constexpr std::array<const Config::Location*, 17> s_setting_saveable = { static constexpr std::array<const Config::Location*, 17> s_setting_saveable = {