From 31e448e4f93d91b5abbced91297f2f34a054a407 Mon Sep 17 00:00:00 2001 From: Coleim Date: Thu, 26 Sep 2019 09:57:03 +0200 Subject: [PATCH] Correct android plugin java code and add information on how to use it from GDScript (#2786) Correct android plugin java code and add information on how to use it from GDScript --- tutorials/plugins/android/android_plugin.rst | 25 +++++++++++++++--- .../plugins/android/img/android_modules.png | Bin 0 -> 41700 bytes 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 tutorials/plugins/android/img/android_modules.png diff --git a/tutorials/plugins/android/android_plugin.rst b/tutorials/plugins/android/android_plugin.rst index 18b81722f..826378795 100644 --- a/tutorials/plugins/android/android_plugin.rst +++ b/tutorials/plugins/android/android_plugin.rst @@ -174,6 +174,7 @@ A singleton object template follows: import android.app.Activity; import android.content.Intent; + import android.content.Context; import com.godot.game.R; import javax.microedition.khronos.opengles.GL10; @@ -181,11 +182,12 @@ A singleton object template follows: protected Activity appActivity; protected Context appContext; + private Godot activity = null; private int instanceId = 0; - public int myFunction(String p_str) { + public String myFunction(String p_str) { // A function to bind. - return 1; + return "Hello " + p_str; } public void getInstanceId(int pInstanceId) { @@ -208,7 +210,8 @@ A singleton object template follows: this.appContext = appActivity.getApplicationContext(); // You might want to try initializing your singleton here, but android // threads are weird and this runs in another thread, so to interact with Godot you usually have to do. - activity.runOnUiThread(new Runnable() { + this.activity = (Godot)p_activity; + this.activity.runOnUiThread(new Runnable() { public void run() { // Useful way to get config info from "project.godot". String key = GodotLib.getGlobal("plugin/api_key"); @@ -250,6 +253,22 @@ Java will most likely run in a separate thread, so calls are deferred: Godot will detect this singleton and initialize it at the proper time. +Using it from GDScript +^^^^^^^^^^^^^^^^^^^^^^ + +First you will need to add your singleton into the android modules to be loaded. Go to "Project > Project Settings". +Then on the tab "General" go to the "Android" section, and fill the Modules part with your module name. +The module should include the full Java path. For our example: ``org/godotengine/godot/MySingleton``. + +.. image:: img/android_modules.png + +Then, from your script: + +.. code:: gdscript + + if Engine.has_singleton("MySingleton"): + var singleton = Engine.get_singleton("MySingleton") + print(singleton.myFunction("World")) Troubleshooting --------------- diff --git a/tutorials/plugins/android/img/android_modules.png b/tutorials/plugins/android/img/android_modules.png new file mode 100644 index 0000000000000000000000000000000000000000..c1d67f2041477101ad9a738be57f042d90e175c5 GIT binary patch literal 41700 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 hmn!tap0ULZQT4uC&)@xJ5k96nsd8F5