diff options
| author | JosJuice <josjuice@gmail.com> | 2023-06-19 20:47:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-19 20:47:27 +0200 |
| commit | 27db8d412391dbbc8bc51413cb5867ecddaea539 (patch) | |
| tree | e4b08d77cba8fa8b0910f844b9e83e8de426b244 /Source/Android | |
| parent | cff3e22f84b8335c8e0d110f9a202e5260d2b7b9 (diff) | |
| parent | cff7a4bfd2192726271d62f8c0144edc67396332 (diff) | |
Merge pull request #11935 from nitanmarcel/patch-1
Use getCacheDir if getExternalCacheDir returns null.
Diffstat (limited to 'Source/Android')
3 files changed, 15 insertions, 2 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 68fdfee277..b83a489256 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 @@ -297,6 +297,8 @@ public final class NativeLibrary public static native void SetCacheDirectory(String directory); + public static native String GetCacheDirectory(); + public static native int DefaultCPUCore(); public static native String GetDefaultGraphicsBackendName(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java index d5b34f21da..15d226afd4 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java @@ -122,7 +122,12 @@ public final class DirectoryInitialization File cacheDir = context.getExternalCacheDir(); if (cacheDir == null) - return false; + { + // In some custom ROMs getExternalCacheDir might return null for some reasons. If that is the case, fallback to getCacheDir which seems to work just fine. + cacheDir = context.getCacheDir(); + if (cacheDir == null) + return false; + } Log.debug("[DirectoryInitialization] Cache Dir: " + cacheDir.getPath()); NativeLibrary.SetCacheDirectory(cacheDir.getPath()); @@ -236,7 +241,7 @@ public final class DirectoryInitialization public static File getGameListCache(Context context) { - return new File(context.getExternalCacheDir(), "gamelist.cache"); + return new File(NativeLibrary.GetCacheDirectory(), "gamelist.cache"); } private static boolean copyAsset(String asset, File output, Context context) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index 90e56822f4..5741afb9d8 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -382,6 +382,12 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetCacheDire File::SetUserPath(D_CACHE_IDX, GetJString(env, jDirectory)); } +JNIEXPORT jstring JNICALL +Java_org_dolphinemu_dolphinemu_NativeLibrary_GetCacheDirectory(JNIEnv* env, jclass) +{ + return ToJString(env, File::GetUserPath(D_CACHE_IDX)); +} + JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_DefaultCPUCore(JNIEnv*, jclass) { return static_cast<jint>(PowerPC::DefaultCPUCore()); |
