summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-09-10 08:43:12 +0200
committerJosJuice <josjuice@gmail.com>2017-12-26 09:53:43 +0100
commit3262314435bb394d27aa3e1f490905e6868e4203 (patch)
tree4311ee0d05bd0ca39fc4db50b79879b1decabf20 /Source/Android/app/src/main/java
parentb3b7aef09a99eb10ce73a9a625654c69c74cf7bc (diff)
Android: Don't extract Sys if it already is extracted
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/DirectoryInitializationService.java20
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());