summaryrefslogtreecommitdiff
path: root/Source/Android/jni/AndroidCommon/AndroidCommon.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2020-09-23 12:27:43 -0400
committerGitHub <noreply@github.com>2020-09-23 12:27:43 -0400
commit54e570a95f2cb54fdc7be29d04870746c69a8b9e (patch)
tree1db68bbdaa591d6cd8025493478fa5d0dadf7980 /Source/Android/jni/AndroidCommon/AndroidCommon.cpp
parentf33767f19cca6ee95af9727f0050f27e2571f770 (diff)
parent5ba083215852a7f1afa2ac73316c2c0c500a6e7d (diff)
Merge pull request #8902 from JosJuice/android-convert
Android: Add disc image conversion
Diffstat (limited to 'Source/Android/jni/AndroidCommon/AndroidCommon.cpp')
-rw-r--r--Source/Android/jni/AndroidCommon/AndroidCommon.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/Source/Android/jni/AndroidCommon/AndroidCommon.cpp b/Source/Android/jni/AndroidCommon/AndroidCommon.cpp
index 1f9973d451..73405b6d8e 100644
--- a/Source/Android/jni/AndroidCommon/AndroidCommon.cpp
+++ b/Source/Android/jni/AndroidCommon/AndroidCommon.cpp
@@ -11,6 +11,7 @@
#include <jni.h>
#include "Common/StringUtil.h"
+#include "jni/AndroidCommon/IDCache.h"
std::string GetJString(JNIEnv* env, jstring jstr)
{
@@ -40,3 +41,27 @@ std::vector<std::string> JStringArrayToVector(JNIEnv* env, jobjectArray array)
return result;
}
+
+int OpenAndroidContent(const std::string& uri, const std::string& mode)
+{
+ JNIEnv* env = IDCache::GetEnvForThread();
+ const jint fd = env->CallStaticIntMethod(IDCache::GetContentHandlerClass(),
+ IDCache::GetContentHandlerOpenFd(), ToJString(env, uri),
+ ToJString(env, mode));
+
+ // We can get an IllegalArgumentException when passing an invalid mode
+ if (env->ExceptionCheck())
+ {
+ env->ExceptionDescribe();
+ abort();
+ }
+
+ return fd;
+}
+
+bool DeleteAndroidContent(const std::string& uri)
+{
+ JNIEnv* env = IDCache::GetEnvForThread();
+ return env->CallStaticBooleanMethod(IDCache::GetContentHandlerClass(),
+ IDCache::GetContentHandlerDelete(), ToJString(env, uri));
+}