summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2020-07-13 12:21:21 +0100
committerGitHub <noreply@github.com>2020-07-13 12:21:21 +0100
commita98df567b11758c9581b23dc72cb1ee9afaf79ce (patch)
treeada049414cdf66a7d8ce0c757f4411415c6726f2 /Source/Android/app/src/main/java
parent695a96498a434c657b6c5ceb8b48f4c5194908ac (diff)
parent05da2e30ad48ff4d8a1b4c33088b401a6315f3bb (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')
-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/model/GameFile.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java33
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java10
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java2
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);
}