From 5384fa499869dbf655c6838eb6660138cf80cccc Mon Sep 17 00:00:00 2001 From: bunnei Date: Thu, 15 Jun 2023 17:20:56 -0700 Subject: android: fs: Fix Exists / IsFile for SAF. --- .../src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | 18 ++++++++++++++++++ .../main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt | 5 +++++ 2 files changed, 23 insertions(+) (limited to 'src/android/app') diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt index 22f0a2646..f3bfbe7eb 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt @@ -19,6 +19,8 @@ import org.yuzu.yuzu_emu.activities.EmulationActivity import org.yuzu.yuzu_emu.utils.DocumentsTree.Companion.isNativePath import org.yuzu.yuzu_emu.utils.FileUtil.getFileSize import org.yuzu.yuzu_emu.utils.FileUtil.openContentUri +import org.yuzu.yuzu_emu.utils.FileUtil.exists +import org.yuzu.yuzu_emu.utils.FileUtil.isDirectory import org.yuzu.yuzu_emu.utils.Log.error import org.yuzu.yuzu_emu.utils.Log.verbose import org.yuzu.yuzu_emu.utils.Log.warning @@ -85,6 +87,22 @@ object NativeLibrary { } else getFileSize(appContext, path) } + @Keep + @JvmStatic + fun exists(path: String?): Boolean { + return if (isNativePath(path!!)) { + YuzuApplication.documentsTree!!.exists(path) + } else exists(appContext, path) + } + + @Keep + @JvmStatic + fun isDirectory(path: String?): Boolean { + return if (isNativePath(path!!)) { + YuzuApplication.documentsTree!!.isDirectory(path) + } else isDirectory(appContext, path) + } + /** * Returns true if pro controller isn't available and handheld is */ diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt index cc8ea6b9d..f8abae445 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt @@ -36,6 +36,11 @@ class DocumentsTree { return resolvePath(filepath) != null } + fun isDirectory(filepath: String): Boolean { + val node = resolvePath(filepath) + return node != null && node.isDirectory + } + private fun resolvePath(filepath: String): DocumentsNode? { val tokens = StringTokenizer(filepath, File.separator, false) var iterator = root -- cgit v1.2.3