Expand Up @@ -9,6 +9,7 @@
import android.view.InputDevice;

import org.dolphinemu.dolphinemu.activities.EmulationActivity;
import org.dolphinemu.dolphinemu.features.settings.model.AdHocStringSetting;
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;

Expand All @@ -28,9 +29,8 @@ public static void initRumble(EmulationActivity activity)

for (int i = 0; i < 8; i++)
{
String deviceName = activity.getSettings()
.getSection(Settings.FILE_DOLPHIN, Settings.SECTION_BINDINGS)
.getString(SettingsFile.KEY_EMU_RUMBLE + i, "");
String deviceName = AdHocStringSetting.getStringGlobal(Settings.FILE_DOLPHIN,
Settings.SECTION_BINDINGS, SettingsFile.KEY_EMU_RUMBLE + i, "");

if (!deviceName.isEmpty())
{
Expand Down
2 changes: 1 addition & 1 deletion Source/Android/app/src/main/res/values/strings.xml
Expand Up @@ -158,14 +158,14 @@
<string name="lock_emulation_landscape_desc">Some touch controls will require additional tweaking if played in portrait</string>
<string name="analytics">Enable usage statistics reporting</string>
<string name="analytics_desc">If authorized, Dolphin can collect data on its performance, feature usage, and configuration, as well as data on your system\'s hardware and operating system.\n\nNo private data is ever collected. This data helps us understand how people and emulated games use Dolphin and prioritize our efforts. It also helps us identify rare configurations that are causing bugs, performance and stability issues. This authorization can be revoked at any time through Dolphin\'s settings.</string>
<string name="gametdb_thanks">Thanks to GameTDB.com for providing GameCube and Wii covers!</string>

<!-- Interface Preference Fragment -->
<string name="interface_submenu">Interface</string>
<string name="panic_handlers">Use Panic Handlers</string>
<string name="panic_handlers_description">Show a message box when a potentially serious error has occurred. Disabling this may avoid annoying and non-fatal messages, but it may result in major crashes having no explanation at all.</string>
<string name="osd_messages">Show On-Screen Display Messages</string>
<string name="osd_messages_description">Display messages over the emulation screen area. These messages include memory card writes, video backend and CPU information, and JIT cache clearing.</string>
<string name="download_game_covers">Download Game Covers from GameTDB.com</string>

<!-- Audio Settings -->
<string name="audio_submenu">Audio</string>
Expand Down
4 changes: 4 additions & 0 deletions Source/Core/Core/Config/UISettings.cpp
Expand Up @@ -9,7 +9,11 @@ namespace Config
// UI.General

const Info<bool> MAIN_USE_DISCORD_PRESENCE{{System::Main, "General", "UseDiscordPresence"}, true};
#ifdef ANDROID
const Info<bool> MAIN_USE_GAME_COVERS{{System::Main, "General", "UseGameCovers"}, true};
#else
const Info<bool> MAIN_USE_GAME_COVERS{{System::Main, "General", "UseGameCovers"}, false};
#endif
const Info<bool> MAIN_FOCUSED_HOTKEYS{{System::Main, "General", "HotkeysRequireFocus"}, true};
const Info<bool> MAIN_RECURSIVE_ISO_PATHS{{System::Main, "General", "RecursiveISOPaths"}, false};

Expand Down
17 changes: 14 additions & 3 deletions Source/Core/UICommon/GameFile.cpp
Expand Up @@ -52,6 +52,17 @@ namespace UICommon
namespace
{
const std::string EMPTY_STRING;

bool UseGameCovers()
{
#ifdef ANDROID
// Android has its own code for handling covers, written completely in Java.
// It's best if we disable the C++ cover code on Android to avoid duplicated data and such.
return false;
#else
return Config::Get(Config::MAIN_USE_GAME_COVERS);
#endif
}
} // Anonymous namespace

DiscIO::Language GameFile::GetConfigLanguage() const
Expand Down Expand Up @@ -169,7 +180,7 @@ bool GameFile::IsValid() const

bool GameFile::CustomCoverChanged()
{
if (!m_custom_cover.buffer.empty() || !Config::Get(Config::MAIN_USE_GAME_COVERS))
if (!m_custom_cover.buffer.empty() || !UseGameCovers())
return false;

std::string path, name;
Expand All @@ -196,7 +207,7 @@ bool GameFile::CustomCoverChanged()

void GameFile::DownloadDefaultCover()
{
if (!m_default_cover.buffer.empty() || !Config::Get(Config::MAIN_USE_GAME_COVERS))
if (!m_default_cover.buffer.empty() || !UseGameCovers())
return;

const auto cover_path = File::GetUserPath(D_COVERCACHE_IDX) + DIR_SEP;
Expand Down Expand Up @@ -262,7 +273,7 @@ void GameFile::DownloadDefaultCover()

bool GameFile::DefaultCoverChanged()
{
if (!m_default_cover.buffer.empty() || !Config::Get(Config::MAIN_USE_GAME_COVERS))
if (!m_default_cover.buffer.empty() || !UseGameCovers())
return false;

const auto cover_path = File::GetUserPath(D_COVERCACHE_IDX) + DIR_SEP;
Expand Down