summaryrefslogtreecommitdiff
path: root/Source/Android/jni/AndroidCommon/IDCache.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-12-30 11:10:35 +0100
committerGitHub <noreply@github.com>2020-12-30 11:10:35 +0100
commitc1d041b8886e60400721b827dcf2eb7cce45eceb (patch)
tree97cb04428e3338c03e9a82db27fc411e2c2243de /Source/Android/jni/AndroidCommon/IDCache.cpp
parent8a3b14d7dca147232a87b51cef12840656292171 (diff)
parentd78277c063d43e3234fe80a38d272500f3dfce3a (diff)
Merge pull request #9318 from JosJuice/android-saf-games
Android: Use storage access framework for game list
Diffstat (limited to 'Source/Android/jni/AndroidCommon/IDCache.cpp')
-rw-r--r--Source/Android/jni/AndroidCommon/IDCache.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp
index 674233d79f..4c6c4b2ce7 100644
--- a/Source/Android/jni/AndroidCommon/IDCache.cpp
+++ b/Source/Android/jni/AndroidCommon/IDCache.cpp
@@ -10,6 +10,8 @@ static constexpr jint JNI_VERSION = JNI_VERSION_1_6;
static JavaVM* s_java_vm;
+static jclass s_string_class;
+
static jclass s_native_library_class;
static jmethodID s_display_alert_msg;
static jmethodID s_do_rumble;
@@ -44,6 +46,10 @@ static jmethodID s_compress_cb_run;
static jclass s_content_handler_class;
static jmethodID s_content_handler_open_fd;
static jmethodID s_content_handler_delete;
+static jmethodID s_content_handler_get_size_and_is_directory;
+static jmethodID s_content_handler_get_display_name;
+static jmethodID s_content_handler_get_child_names;
+static jmethodID s_content_handler_do_file_search;
static jclass s_network_helper_class;
static jmethodID s_network_helper_get_network_ip_address;
@@ -75,6 +81,11 @@ JNIEnv* GetEnvForThread()
return owned.env;
}
+jclass GetStringClass()
+{
+ return s_string_class;
+}
+
jclass GetNativeLibraryClass()
{
return s_native_library_class;
@@ -210,6 +221,26 @@ jmethodID GetContentHandlerDelete()
return s_content_handler_delete;
}
+jmethodID GetContentHandlerGetSizeAndIsDirectory()
+{
+ return s_content_handler_get_size_and_is_directory;
+}
+
+jmethodID GetContentHandlerGetDisplayName()
+{
+ return s_content_handler_get_display_name;
+}
+
+jmethodID GetContentHandlerGetChildNames()
+{
+ return s_content_handler_get_child_names;
+}
+
+jmethodID GetContentHandlerDoFileSearch()
+{
+ return s_content_handler_do_file_search;
+}
+
jclass GetNetworkHelperClass()
{
return s_network_helper_class;
@@ -229,6 +260,7 @@ jmethodID GetNetworkHelperGetNetworkGateway()
{
return s_network_helper_get_network_gateway;
}
+
} // namespace IDCache
#ifdef __cplusplus
@@ -243,6 +275,9 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved)
if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION) != JNI_OK)
return JNI_ERR;
+ const jclass string_class = env->FindClass("java/lang/String");
+ s_string_class = reinterpret_cast<jclass>(env->NewGlobalRef(string_class));
+
const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary");
s_native_library_class = reinterpret_cast<jclass>(env->NewGlobalRef(native_library_class));
s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg",
@@ -306,6 +341,15 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved)
"(Ljava/lang/String;Ljava/lang/String;)I");
s_content_handler_delete =
env->GetStaticMethodID(s_content_handler_class, "delete", "(Ljava/lang/String;)Z");
+ s_content_handler_get_size_and_is_directory = env->GetStaticMethodID(
+ s_content_handler_class, "getSizeAndIsDirectory", "(Ljava/lang/String;)J");
+ s_content_handler_get_display_name = env->GetStaticMethodID(
+ s_content_handler_class, "getDisplayName", "(Ljava/lang/String;)Ljava/lang/String;");
+ s_content_handler_get_child_names = env->GetStaticMethodID(
+ s_content_handler_class, "getChildNames", "(Ljava/lang/String;Z)[Ljava/lang/String;");
+ s_content_handler_do_file_search =
+ env->GetStaticMethodID(s_content_handler_class, "doFileSearch",
+ "(Ljava/lang/String;[Ljava/lang/String;Z)[Ljava/lang/String;");
const jclass network_helper_class =
env->FindClass("org/dolphinemu/dolphinemu/utils/NetworkHelper");