Merge pull request #11935 from nitanmarcel/patch-1

Use getCacheDir if getExternalCacheDir returns null.
This commit is contained in:
JosJuice 2023-06-19 20:47:27 +02:00 committed by GitHub
commit 27db8d4123
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 2 deletions

View File

@ -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();

View File

@ -121,8 +121,13 @@ public final class DirectoryInitialization
NativeLibrary.SetUserDirectory(userPath);
File cacheDir = context.getExternalCacheDir();
if (cacheDir == null)
{
// 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)

View File

@ -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());