diff options
| author | Tilka <tilkax@gmail.com> | 2020-07-13 12:21:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-13 12:21:21 +0100 |
| commit | a98df567b11758c9581b23dc72cb1ee9afaf79ce (patch) | |
| tree | ada049414cdf66a7d8ce0c757f4411415c6726f2 /Source/Android/app/src/main/java | |
| parent | 695a96498a434c657b6c5ceb8b48f4c5194908ac (diff) | |
| parent | 05da2e30ad48ff4d8a1b4c33088b401a6315f3bb (diff) | |
Merge pull request #8949 from JosJuice/android-cache
Android: Use system cache directory as cache directory
Diffstat (limited to 'Source/Android/app/src/main/java')
5 files changed, 31 insertions, 22 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 87db570275..ff4521ffdb 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 @@ -366,6 +366,8 @@ public final class NativeLibrary */ public static native String GetUserDirectory(); + public static native void SetCacheDirectory(String directory); + public static native int DefaultCPUCore(); public static native void ReloadConfig(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java index 666103cf05..70ae2371b2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java @@ -1,5 +1,6 @@ package org.dolphinemu.dolphinemu.model; +import android.content.Context; import android.os.Environment; public class GameFile @@ -54,10 +55,9 @@ public class GameFile public native int getBannerHeight(); - public String getCoverPath() + public String getCoverPath(Context context) { - return Environment.getExternalStorageDirectory().getPath() + - "/dolphin-emu/Cache/GameCovers/" + getGameTdbId() + ".png"; + return context.getExternalCacheDir().getPath() + "/GameCovers/" + getGameTdbId() + ".png"; } public String getCustomCoverPath() 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 fbe5bc65ca..62aa4d3cac 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 @@ -64,7 +64,7 @@ public final class DirectoryInitialization { if (PermissionsHandler.hasWriteAccess(context)) { - if (setDolphinUserDirectory()) + if (setDolphinUserDirectory(context)) { initializeInternalStorage(context); initializeExternalStorage(context); @@ -88,22 +88,27 @@ public final class DirectoryInitialization sendBroadcastState(directoryState, context); } - private static boolean setDolphinUserDirectory() + private static boolean setDolphinUserDirectory(Context context) { - if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) - { - File externalPath = Environment.getExternalStorageDirectory(); - if (externalPath != null) - { - userPath = externalPath.getAbsolutePath() + "/dolphin-emu"; - Log.debug("[DirectoryInitialization] User Dir: " + userPath); - NativeLibrary.SetUserDirectory(userPath); - return true; - } + if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) + return false; - } + File externalPath = Environment.getExternalStorageDirectory(); + if (externalPath == null) + return false; + + userPath = externalPath.getAbsolutePath() + "/dolphin-emu"; + Log.debug("[DirectoryInitialization] User Dir: " + userPath); + NativeLibrary.SetUserDirectory(userPath); + + File cacheDir = context.getExternalCacheDir(); + if (cacheDir == null) + return false; + + Log.debug("[DirectoryInitialization] Cache Dir: " + cacheDir.getPath()); + NativeLibrary.SetCacheDirectory(cacheDir.getPath()); - return false; + return true; } private static void initializeInternalStorage(Context context) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java index 4dc0c200a6..07d51fd466 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java @@ -1,5 +1,6 @@ package org.dolphinemu.dolphinemu.utils; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; @@ -33,6 +34,7 @@ public class PicassoUtils public static void loadGameCover(ImageView imageView, GameFile gameFile) { + Context context = imageView.getContext(); File cover = new File(gameFile.getCustomCoverPath()); if (cover.exists()) { @@ -46,7 +48,7 @@ public class PicassoUtils .error(R.drawable.no_banner) .into(imageView); } - else if ((cover = new File(gameFile.getCoverPath())).exists()) + else if ((cover = new File(gameFile.getCoverPath(context))).exists()) { Picasso.get() .load(cover) @@ -76,7 +78,7 @@ public class PicassoUtils public void onSuccess() { CoverHelper.saveCover(((BitmapDrawable) imageView.getDrawable()).getBitmap(), - gameFile.getCoverPath()); + gameFile.getCoverPath(context)); } @Override @@ -98,7 +100,7 @@ public class PicassoUtils { CoverHelper.saveCover( ((BitmapDrawable) imageView.getDrawable()).getBitmap(), - gameFile.getCoverPath()); + gameFile.getCoverPath(context)); } @Override @@ -121,7 +123,7 @@ public class PicassoUtils CoverHelper.saveCover( ((BitmapDrawable) imageView.getDrawable()) .getBitmap(), - gameFile.getCoverPath()); + gameFile.getCoverPath(context)); } @Override diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java index d81150d300..c789293748 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java @@ -168,7 +168,7 @@ public class TvUtil { contentUri = getUriForFile(context, getFileProvider(context), cover); } - else if ((cover = new File(game.getCoverPath())).exists()) + else if ((cover = new File(game.getCoverPath(context))).exists()) { contentUri = getUriForFile(context, getFileProvider(context), cover); } |
