diff options
| author | Léo Lam <leo@leolam.fr> | 2021-03-05 00:48:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-05 00:48:04 +0100 |
| commit | 19c5a196298f8d4c116e22b7c0bc9ccb25fce04b (patch) | |
| tree | 947bb7b37c83643a8bef8973d97d9e917cf10820 /Source/Android/app/src/main/java | |
| parent | 5efd563b0359d43e948a77a93ef0661c4c7d5090 (diff) | |
| parent | 873d5f985209939e2518ff694394bfc1c33cc796 (diff) | |
Merge pull request #9529 from JosJuice/android-broadcast-before-metadata
Android: Broadcast update before updating additional metadata
Diffstat (limited to 'Source/Android/app/src/main/java')
2 files changed, 18 insertions, 12 deletions
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 e359d701bc..cca12267b2 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 @@ -99,7 +99,7 @@ public class GameFileCache * * @return true if the cache was modified */ - public boolean scanLibrary() + public boolean update() { boolean recursiveScan = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBooleanGlobal(); @@ -107,13 +107,7 @@ public class GameFileCache String[] folderPaths = folderPathsSet.toArray(new String[0]); - boolean cacheChanged = update(folderPaths, recursiveScan); - cacheChanged |= updateAdditionalMetadata(); - if (cacheChanged) - { - save(); - } - return cacheChanged; + return update(folderPaths, recursiveScan); } public native int getSize(); @@ -122,11 +116,11 @@ public class GameFileCache public native GameFile addOrGet(String gamePath); - private native boolean update(String[] folderPaths, boolean recursiveScan); + public native boolean update(String[] folderPaths, boolean recursiveScan); - private native boolean updateAdditionalMetadata(); + public native boolean updateAdditionalMetadata(); public native boolean load(); - private native boolean save(); + public native boolean save(); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java index 34bf1afa0a..0abd072467 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java @@ -177,12 +177,24 @@ public final class GameFileCacheService extends IntentService { synchronized (gameFileCache) { - boolean changed = gameFileCache.scanLibrary(); + boolean changed = gameFileCache.update(); if (changed) { updateGameFileArray(); sendBroadcast(CACHE_UPDATED); } + + boolean additionalMetadataChanged = gameFileCache.updateAdditionalMetadata(); + if (additionalMetadataChanged) + { + updateGameFileArray(); + sendBroadcast(CACHE_UPDATED); + } + + if (changed || additionalMetadataChanged) + { + gameFileCache.save(); + } } } |
