Skip to content

Commit

Permalink
Update the 'Hello Signals' Android plugin demo to match the new Godot…
Browse files Browse the repository at this point in the history
… 4.2 format

See godotengine/godot#78958 for reference.
  • Loading branch information
m4gr3d committed Jul 2, 2023
1 parent f6a336c commit b1eff31
Show file tree
Hide file tree
Showing 13 changed files with 129 additions and 84 deletions.
42 changes: 24 additions & 18 deletions hello_signals/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}

android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
compileSdk versions.compileSdk

defaultConfig {
minSdkVersion 18
targetSdkVersion 29
minSdk versions.minSdk
targetSdk versions.targetSdk
versionCode 1
versionName "1.0"
}
Expand All @@ -23,15 +23,21 @@ android {
}

dependencies {
/*
Used to provide dependency on the Godot Android library. A version of that
library will be made available for each stable release of Godot.
`compileOnly` is used instead of `implementation` to ensure that the
godot library is not bundled with the generated plugin AAR file. This is
necessary since the Godot editor will also provide a version of the godot
library when building the final binary.
*/
compileOnly fileTree(dir: '../libs', include: ['godot-lib*.aar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
compileOnly "org.godotengine:godot:$versions.godotLibVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlinVersion"
}

task copyDebugAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'HelloSignals.debug.aar'
into 'demo/addons/hello_signals_plugin'
}

task copyReleaseAARToAddons(type: Copy) {
from 'build/outputs/aar'
include 'HelloSignals.release.aar'
into 'demo/addons/hello_signals_plugin'
}

assemble.finalizedBy(copyDebugAARToAddons)
assemble.finalizedBy(copyReleaseAARToAddons)
4 changes: 2 additions & 2 deletions hello_signals/demo/Main.gd
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ var helloSignals
func _ready():
if Engine.has_singleton("HelloSignals"):
helloSignals = Engine.get_singleton("HelloSignals")
helloSignals.connect("TikTok", self, "_on_tiktok")
helloSignals.connect("TikTok", Callable(self, "_on_tiktok"))

$Button.connect("pressed", self, "_on_Button_pressed")
$Button.connect("pressed", Callable(self, "_on_Button_pressed"))
else:
print("Couldn't find HelloSignals singleton")

Expand Down
38 changes: 15 additions & 23 deletions hello_signals/demo/Main.tscn
Original file line number Diff line number Diff line change
@@ -1,34 +1,26 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=3 format=3 uid="uid://bdybkbximkyj2"]

[ext_resource path="res://Main.gd" type="Script" id=1]
[ext_resource type="Script" path="res://Main.gd" id="1"]

[sub_resource type="StyleBoxEmpty" id=1]
[sub_resource type="StyleBoxEmpty" id="1"]

[node name="Main" type="Node2D"]
script = ExtResource( 1 )
script = ExtResource("1")

[node name="Button" type="Button" parent="."]
margin_left = 90.0
margin_top = 178.0
margin_right = 281.0
margin_bottom = 261.0
rect_scale = Vector2( 2, 2 )
offset_left = 90.0
offset_top = 178.0
offset_right = 281.0
offset_bottom = 261.0
scale = Vector2(2, 2)
text = "Start Timer"
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Label" type="Label" parent="."]
margin_left = 515.0
margin_top = 217.0
margin_right = 591.0
margin_bottom = 265.0
rect_scale = Vector2( 2, 2 )
custom_styles/normal = SubResource( 1 )
offset_left = 515.0
offset_top = 217.0
offset_right = 591.0
offset_bottom = 265.0
scale = Vector2(2, 2)
theme_override_styles/normal = SubResource("1")
text = "00"
align = 1
valign = 1
uppercase = true
__meta__ = {
"_edit_use_anchors_": false
}
1 change: 1 addition & 0 deletions hello_signals/demo/addons/hello_signals_plugin/.gdignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
@tool
extends EditorExportPlugin

func _supports_platform(platform):
if platform is EditorExportPlatformAndroid:
return true
return false

func _get_android_libraries(platform, debug):
if debug:
return PackedStringArray(["hello_signals_plugin/HelloSignals.debug.aar"])
else:
return PackedStringArray(["hello_signals_plugin/HelloSignals.release.aar"])

func _get_name():
return "Hello Signals plugin"
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@tool
extends EditorPlugin

# A class member to hold the export plugin during its lifecycle
var export_plugin : EditorExportPlugin

func _enter_tree():
# Initialization of the plugin goes here.
export_plugin = preload("hello_signals_export_plugin.gd").new()
add_export_plugin(export_plugin)
pass


func _exit_tree():
# Clean-up of the plugin goes here.
remove_export_plugin(export_plugin)
export_plugin = null
7 changes: 7 additions & 0 deletions hello_signals/demo/addons/hello_signals_plugin/plugin.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[plugin]

name="Hello Signals plugin"
description="Showcases how to package a sample Android plugin"
author="Fredia Huya-Kouadio"
version=""
script="hello_signals_plugin.gd"
6 changes: 3 additions & 3 deletions hello_signals/demo/default_env.tres
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[gd_resource type="Environment" load_steps=2 format=3 uid="uid://gucbhj6rar4r"]

[sub_resource type="ProceduralSky" id=1]
[sub_resource type="Sky" id="1"]

[resource]
background_mode = 2
background_sky = SubResource( 1 )
sky = SubResource("1")
55 changes: 28 additions & 27 deletions hello_signals/demo/export_presets.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,56 +3,56 @@
name="Android"
platform="Android"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false

[preset.0.options]

graphics/32_bits_framebuffer=true
xr_features/xr_mode=0
xr_features/degrees_of_freedom=0
xr_features/hand_tracking=0
one_click_deploy/clear_previous_install=false
custom_template/debug=""
custom_template/release=""
custom_template/use_custom_build=true
custom_template/plugins="HelloSignals"
command_line/extra_args=""
gradle_build/use_gradle_build=true
gradle_build/export_format=0
gradle_build/min_sdk=""
gradle_build/target_sdk=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
version/code=1
version/name="1.0"
package/unique_name="fhuyakou.godot.plugin.android.hellosignals.demo"
package/name=""
package/signed=true
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
screen/immersive_mode=true
screen/orientation=0
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
screen/opengl_debug=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
keystore/debug=""
keystore/debug_user=""
keystore/debug_password=""
keystore/release=""
keystore/release_user=""
keystore/release_password=""
user_data_backup/allow=false
command_line/extra_args=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
permissions/custom_permissions=PoolStringArray( )
permissions/custom_permissions=PackedStringArray()
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
Expand Down Expand Up @@ -125,6 +125,7 @@ permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
Expand Down
21 changes: 13 additions & 8 deletions hello_signals/demo/project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,27 @@
; [section] ; section goes between []
; param=value ; assign values to parameters

config_version=4

_global_script_classes=[ ]
_global_script_class_icons={

}
config_version=5

[application]

config/name="Hello Signals Plugin Demo"
run/main_scene="res://Main.tscn"
config/features=PackedStringArray("4.1")
config/icon="res://icon.png"

[debug]

settings/stdout/verbose_stdout=true

[editor_plugins]

enabled=PackedStringArray("res://addons/hello_signals_plugin/plugin.cfg")

[rendering]

renderer/rendering_method="gl_compatibility"
textures/vram_compression/import_etc2_astc=true
environment/defaults/default_environment="res://default_env.tres"
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.util.Log
import org.godotengine.godot.Godot
import org.godotengine.godot.plugin.GodotPlugin
import org.godotengine.godot.plugin.SignalInfo
import org.godotengine.godot.plugin.UsedByGodot
import java.util.concurrent.Executors
import java.util.concurrent.ScheduledFuture
import java.util.concurrent.TimeUnit
Expand All @@ -28,8 +29,6 @@ class HelloSignalsPlugin(godot: Godot) : GodotPlugin(godot) {
return setOf(tikTokSignalInfo)
}

override fun getPluginMethods() = listOf("onButtonPressed")

private fun startTikTok(): Boolean {
if (tikTokTask == null || tikTokTask!!.isDone) {
Log.i(TAG, "Starting tiktok...")
Expand All @@ -50,10 +49,11 @@ class HelloSignalsPlugin(godot: Godot) : GodotPlugin(godot) {
}
}

@UsedByGodot
private fun onButtonPressed() {
Log.i(TAG, "OnButtonPressed from Kotlin")
if (!startTikTok()) {
stopTikTok()
}
}
}
}

0 comments on commit b1eff31

Please sign in to comment.