From f1e97fcd617fcf6ba8223d355b4a74978309c35f Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 17 Feb 2024 11:51:16 +0200 Subject: [PATCH] Bonk v2 --- src/jni_driver.cpp | 28 +++++++++---------- .../panda3ds/pandroid/utils/Constants.java | 2 +- .../panda3ds/pandroid/utils/FileUtils.java | 2 ++ .../panda3ds/pandroid/utils/GameUtils.java | 4 ++- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/jni_driver.cpp b/src/jni_driver.cpp index 24c0f3ac..e4ce2b39 100644 --- a/src/jni_driver.cpp +++ b/src/jni_driver.cpp @@ -37,20 +37,6 @@ JNIEnv* jniEnv() { return env; } -int AndroidUtils::openDocument(const char* path, const char* perms) { - auto env = jniEnv(); - - jstring uri = env->NewStringUTF(path); - jstring jmode = env->NewStringUTF(perms); - - jint result = env->CallStaticIntMethod(alberClass, alberClassOpenDocument, uri, jmode); - - env->DeleteLocalRef(uri); - env->DeleteLocalRef(jmode); - - return (int)result; -} - extern "C" { #define MAKE_SETTING(functionName, type, settingName) \ @@ -140,3 +126,17 @@ AlberFunction(jbyteArray, GetSmdh)(JNIEnv* env, jobject obj) { } #undef AlberFunction + +int AndroidUtils::openDocument(const char* path, const char* perms) { + auto env = jniEnv(); + + jstring uri = env->NewStringUTF(path); + jstring jmode = env->NewStringUTF(perms); + + jint result = env->CallStaticIntMethod(alberClass, alberClassOpenDocument, uri, jmode); + + env->DeleteLocalRef(uri); + env->DeleteLocalRef(jmode); + + return (int)result; +} \ No newline at end of file diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/Constants.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/Constants.java index 8136f7d9..28276920 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/Constants.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/Constants.java @@ -26,6 +26,6 @@ public class Constants { public static final String PREF_GAME_UTILS = "app.GameUtils"; public static final String PREF_INPUT_MAP = "app.InputMap"; public static final String PREF_SCREEN_CONTROLLER_PROFILES = "app.input.ScreenControllerManager"; - public static final String RESOURCE_FOLDER_ELF = "ELF"; + public static final String RESOURCE_FOLDER_ELF = "ELF"; // Folder for caching ELF files public static final String RESOURCE_FOLDER_LUA_SCRIPTS = "Lua Scripts"; } diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/FileUtils.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/FileUtils.java index be248512..2920c7c6 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/FileUtils.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/FileUtils.java @@ -91,6 +91,7 @@ public class FileUtils { case "wa": return "wa"; } + throw new IllegalArgumentException("Invalid file mode: "+mode); } @@ -282,6 +283,7 @@ public class FileUtils { return name.toLowerCase(); } String[] parts = name.split("\\."); + return parts[parts.length-1].toLowerCase(); } diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/GameUtils.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/GameUtils.java index c2720324..e898aee7 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/GameUtils.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/utils/GameUtils.java @@ -68,12 +68,14 @@ public class GameUtils { if (!lower.contains("://")) { return path; } + Uri uri = Uri.parse(path); switch (uri.getScheme().toLowerCase()) { - case "elf":{ + case "elf": { return FileUtils.getResourcePath(Constants.RESOURCE_FOLDER_ELF)+"/"+uri.getAuthority(); } } + return path; }