diff options
| author | JosJuice <josjuice@gmail.com> | 2017-09-10 08:43:12 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2017-12-26 09:53:43 +0100 |
| commit | 3262314435bb394d27aa3e1f490905e6868e4203 (patch) | |
| tree | 4311ee0d05bd0ca39fc4db50b79879b1decabf20 /Source/Android/app/src/main/java | |
| parent | b3b7aef09a99eb10ce73a9a625654c69c74cf7bc (diff) | |
Android: Don't extract Sys if it already is extracted
Diffstat (limited to 'Source/Android/app/src/main/java')
2 files changed, 17 insertions, 5 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java index a11a4ad154..8d193e75ec 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -283,6 +283,8 @@ public final class NativeLibrary */ public static native String GetVersionString(); + public static native String GetGitRevision(); + /** * Saves a screen capture of the game */ diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/DirectoryInitializationService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/DirectoryInitializationService.java index f6362ff9cc..7d41df25ac 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/DirectoryInitializationService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/DirectoryInitializationService.java @@ -9,6 +9,8 @@ package org.dolphinemu.dolphinemu.services; import android.app.IntentService; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.v4.content.LocalBroadcastManager; import org.dolphinemu.dolphinemu.NativeLibrary; @@ -74,11 +76,19 @@ public final class DirectoryInitializationService extends IntentService { File sysDirectory = new File(getFilesDir(), "Sys"); - // Delete the existing extracted Sys directory in case it's from a different version of Dolphin. - deleteDirectoryRecursively(sysDirectory); - - // Extract the Sys directory to app-local internal storage. - copyAssetFolder("Sys", sysDirectory, true); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + String revision = NativeLibrary.GetGitRevision(); + if (!preferences.getString("sysDirectoryVersion", "").equals(revision)) + { + // There is no extracted Sys directory, or there is a Sys directory from another + // version of Dolphin that might contain outdated files. Let's (re-)extract Sys. + deleteDirectoryRecursively(sysDirectory); + copyAssetFolder("Sys", sysDirectory, true); + + SharedPreferences.Editor editor = preferences.edit(); + editor.putString("sysDirectoryVersion", revision); + editor.apply(); + } // Let the native code know where the Sys directory is. SetSysDirectory(sysDirectory.getPath()); |
