summaryrefslogtreecommitdiffstats
path: root/platform/android/api/api.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-01-19 22:24:23 +0100
committerGitHub <noreply@github.com>2020-01-19 22:24:23 +0100
commit8cc9bb2539f248b53dc3de166dbdaf3c87f7151f (patch)
tree88a888da5ddfac0a156d1696138a231a368f9084 /platform/android/api/api.cpp
parent5358254b6ca752b88138a2b523767093f572ca4c (diff)
parenta6105c8ea0bdae9d56d1943409d89cc71288306a (diff)
downloadredot-engine-8cc9bb2539f248b53dc3de166dbdaf3c87f7151f.tar.gz
Merge pull request #35326 from neikeq/issue-30496
Fix ClassDB API portability with some android and editor classes
Diffstat (limited to 'platform/android/api/api.cpp')
-rw-r--r--platform/android/api/api.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/platform/android/api/api.cpp b/platform/android/api/api.cpp
new file mode 100644
index 0000000000..7a8ff93414
--- /dev/null
+++ b/platform/android/api/api.cpp
@@ -0,0 +1,56 @@
+#include "api.h"
+
+#include "core/engine.h"
+#include "java_class_wrapper.h"
+
+#if !defined(ANDROID_ENABLED)
+static JavaClassWrapper *java_class_wrapper = NULL;
+#endif
+
+void register_android_api() {
+
+#if !defined(ANDROID_ENABLED)
+ java_class_wrapper = memnew(JavaClassWrapper); // Dummy
+#endif
+
+ ClassDB::register_class<JavaClass>();
+ ClassDB::register_class<JavaClassWrapper>();
+ Engine::get_singleton()->add_singleton(Engine::Singleton("JavaClassWrapper", JavaClassWrapper::get_singleton()));
+}
+
+void unregister_android_api() {
+
+#if !defined(ANDROID_ENABLED)
+ memdelete(java_class_wrapper);
+#endif
+}
+
+void JavaClassWrapper::_bind_methods() {
+
+ ClassDB::bind_method(D_METHOD("wrap", "name"), &JavaClassWrapper::wrap);
+}
+
+#if !defined(ANDROID_ENABLED)
+
+Variant JavaClass::call(const StringName &, const Variant **, int, Variant::CallError &) {
+ return Variant();
+}
+
+JavaClass::JavaClass() {
+}
+
+Variant JavaObject::call(const StringName &, const Variant **, int, Variant::CallError &) {
+ return Variant();
+}
+
+JavaClassWrapper *JavaClassWrapper::singleton = NULL;
+
+Ref<JavaClass> JavaClassWrapper::wrap(const String &) {
+ return Ref<JavaClass>();
+}
+
+JavaClassWrapper::JavaClassWrapper() {
+ singleton = this;
+}
+
+#endif