diff options
| author | Ryan Meredith <rwm@udel.edu> | 2020-05-31 10:00:09 -0400 |
|---|---|---|
| committer | Ryan Meredith <rwm@udel.edu> | 2020-05-31 10:00:09 -0400 |
| commit | 77f539355da7efd5d8cfcd8620f801b8277bc8ff (patch) | |
| tree | 0085c97c483b603c77d57e70c3b8a9405b8069c9 /Source/Android/app/src/main/java | |
| parent | b3c705fa968b8d9a0ea18da044c6de8841019790 (diff) | |
Android: Add recursive game paths to UI
Diffstat (limited to 'Source/Android/app/src/main/java')
3 files changed, 16 insertions, 2 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index d65a3f28f8..b6a1094f18 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -317,6 +317,7 @@ public final class SettingsFragmentPresenter private void addPathsSettings(ArrayList<SettingsItem> sl) { + Setting recursiveISOPaths = null; Setting defaultISO = null; Setting NANDRootPath = null; Setting dumpPath = null; @@ -326,6 +327,7 @@ public final class SettingsFragmentPresenter SettingSection coreSection = mSettings.getSection(Settings.SECTION_INI_CORE); SettingSection generalSection = mSettings.getSection(Settings.SECTION_INI_GENERAL); + recursiveISOPaths = generalSection.getSetting(SettingsFile.KEY_RECURSIVE_ISO_PATHS); defaultISO = coreSection.getSetting(SettingsFile.KEY_DEFAULT_ISO); NANDRootPath = generalSection.getSetting(SettingsFile.KEY_NAND_ROOT_PATH); dumpPath = generalSection.getSetting(SettingsFile.KEY_DUMP_PATH); @@ -333,6 +335,9 @@ public final class SettingsFragmentPresenter resourcePackPath = generalSection.getSetting(SettingsFile.KEY_RESOURCE_PACK_PATH); wiiSDCardPath = generalSection.getSetting(SettingsFile.KEY_WII_SD_CARD_PATH); + sl.add(new CheckBoxSetting(SettingsFile.KEY_RECURSIVE_ISO_PATHS, Settings.SECTION_INI_GENERAL, + R.string.search_subfolders, R.string.search_subfolders_description, false, + recursiveISOPaths)); sl.add(new FilePicker(SettingsFile.FILE_NAME_DOLPHIN, SettingsFile.KEY_DEFAULT_ISO, Settings.SECTION_INI_CORE, R.string.default_ISO, 0, "", MainPresenter.REQUEST_GAME_FILE, defaultISO)); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java index bb47068d9a..e032e03d02 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java @@ -59,6 +59,7 @@ public final class SettingsFile public static final String KEY_SLOT_A_DEVICE = "SlotA"; public static final String KEY_SLOT_B_DEVICE = "SlotB"; public static final String KEY_ENABLE_SAVE_STATES = "EnableSaveStates"; + public static final String KEY_RECURSIVE_ISO_PATHS = "RecursiveISOPaths"; public static final String KEY_DEFAULT_ISO = "DefaultISO"; public static final String KEY_NAND_ROOT_PATH = "NANDRootPath"; public static final String KEY_DUMP_PATH = "DumpPath"; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java index 87837f5464..ec574ffaa4 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFileCache.java @@ -4,6 +4,10 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; +import org.dolphinemu.dolphinemu.NativeLibrary; +import org.dolphinemu.dolphinemu.features.settings.model.Settings; +import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile; + import java.io.File; import java.util.HashSet; import java.util.Set; @@ -66,13 +70,17 @@ public class GameFileCache */ public boolean scanLibrary(Context context) { + boolean recursiveScan = NativeLibrary + .GetConfig(SettingsFile.FILE_NAME_DOLPHIN + ".ini", Settings.SECTION_INI_GENERAL, + SettingsFile.KEY_RECURSIVE_ISO_PATHS, "False").equals("True"); + removeNonExistentGameFolders(context); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); Set<String> folderPathsSet = preferences.getStringSet(GAME_FOLDER_PATHS_PREFERENCE, EMPTY_SET); String[] folderPaths = folderPathsSet.toArray(new String[folderPathsSet.size()]); - boolean cacheChanged = update(folderPaths); + boolean cacheChanged = update(folderPaths, recursiveScan); cacheChanged |= updateAdditionalMetadata(); if (cacheChanged) { @@ -85,7 +93,7 @@ public class GameFileCache public native GameFile addOrGet(String gamePath); - private native boolean update(String[] folderPaths); + private native boolean update(String[] folderPaths, boolean recursiveScan); private native boolean updateAdditionalMetadata(); |
