From 71630e80e493954bb8df4aabf571095c59da040a Mon Sep 17 00:00:00 2001 From: JavierStark <56975675+JavierStark@users.noreply.github.com> Date: Thu, 29 Aug 2024 01:58:41 +0200 Subject: [PATCH] Fix updated Android IAP project in c# (#1105) * Update project to 4.3 Co-authored-by: Hugo Locurcio --- .../Android in-app purchases with C#.csproj | 5 +- .../Android in-app purchases with C#.sln | 14 +++--- .../GooglePlayBilling.cs | 44 +++++++++--------- mono/android_iap/android/.build_version | 1 + .../GodotGooglePlayBilling.1.2.0.release.aar | Bin 0 -> 14013 bytes .../plugins/GodotGooglePlayBilling.gdap | 8 ++++ mono/android_iap/main.tscn | 10 ++-- mono/android_iap/project.godot | 5 +- 8 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 mono/android_iap/android/.build_version create mode 100644 mono/android_iap/android/plugins/GodotGooglePlayBilling.1.2.0.release.aar create mode 100644 mono/android_iap/android/plugins/GodotGooglePlayBilling.gdap diff --git a/mono/android_iap/Android in-app purchases with C#.csproj b/mono/android_iap/Android in-app purchases with C#.csproj index adaffcf0dd..ab39c90de7 100644 --- a/mono/android_iap/Android in-app purchases with C#.csproj +++ b/mono/android_iap/Android in-app purchases with C#.csproj @@ -1,6 +1,9 @@ net6.0 - AndroidIAP + net7.0 + net8.0 + true + AndroidinapppurchaseswithC \ No newline at end of file diff --git a/mono/android_iap/Android in-app purchases with C#.sln b/mono/android_iap/Android in-app purchases with C#.sln index f35802ba07..1e09aa4ec5 100644 --- a/mono/android_iap/Android in-app purchases with C#.sln +++ b/mono/android_iap/Android in-app purchases with C#.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Android in-app purchases with C#", "Android in-app purchases with C#.csproj", "{480953C3-B1FD-42F6-8A07-51A3F69024D7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Android in-app purchases with C#", "Android in-app purchases with C#.csproj", "{A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -9,11 +9,11 @@ Global ExportRelease|Any CPU = ExportRelease|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU - {480953C3-B1FD-42F6-8A07-51A3F69024D7}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {A29FB611-2B09-4E62-B23E-A68BAF8A8A3F}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU EndGlobalSection EndGlobal diff --git a/mono/android_iap/GodotGooglePlayBilling/GooglePlayBilling.cs b/mono/android_iap/GodotGooglePlayBilling/GooglePlayBilling.cs index f15bfd99e5..186ec313bd 100644 --- a/mono/android_iap/GodotGooglePlayBilling/GooglePlayBilling.cs +++ b/mono/android_iap/GodotGooglePlayBilling/GooglePlayBilling.cs @@ -38,17 +38,17 @@ public override void _Ready() _payment = Engine.GetSingleton("GodotGooglePlayBilling"); // These are all signals supported by the API // You can drop some of these based on your needs - _payment.Connect(SignalName.Connected, Callable.From(OnGodotGooglePlayBilling_connected)); // No params - _payment.Connect(SignalName.Disconnected, Callable.From(OnGodotGooglePlayBilling_disconnected)); // No params - _payment.Connect(SignalName.ConnectError, Callable.From(OnGodotGooglePlayBilling_connect_error)); // Response ID (int), Debug message (string) - _payment.Connect(SignalName.SkuDetailsQueryCompleted, Callable.From(OnGodotGooglePlayBilling_sku_details_query_completed)); // SKUs (Array of Dictionary) - _payment.Connect(SignalName.SkuDetailsQueryError, Callable.From(OnGodotGooglePlayBilling_sku_details_query_error)); // Response ID (int), Debug message (string), Queried SKUs (string[]) - _payment.Connect(SignalName.PurchasesUpdated, Callable.From(OnGodotGooglePlayBilling_purchases_updated)); // Purchases (Array of Dictionary) - _payment.Connect(SignalName.PurchaseError, Callable.From(OnGodotGooglePlayBilling_purchase_error)); // Response ID (int), Debug message (string) - _payment.Connect(SignalName.PurchaseAcknowledged, Callable.From(OnGodotGooglePlayBilling_purchase_acknowledged)); // Purchase token (string) - _payment.Connect(SignalName.PurchaseAcknowledgementError, Callable.From(OnGodotGooglePlayBilling_purchase_acknowledgement_error)); // Response ID (int), Debug message (string), Purchase token (string) - _payment.Connect(SignalName.PurchaseConsumed, Callable.From(OnGodotGooglePlayBilling_purchase_consumed)); // Purchase token (string) - _payment.Connect(SignalName.PurchaseConsumptionError, Callable.From(OnGodotGooglePlayBilling_purchase_consumption_error)); // Response ID (int), Debug message (string), Purchase token (string) + _payment.Connect("connected", Callable.From(OnGodotGooglePlayBilling_connected)); // No params + _payment.Connect("disconnected", Callable.From(OnGodotGooglePlayBilling_disconnected)); // No params + _payment.Connect("connect_error", Callable.From(OnGodotGooglePlayBilling_connect_error)); // Response ID (int), Debug message (string) + _payment.Connect("sku_details_query_completed", Callable.From(OnGodotGooglePlayBilling_sku_details_query_completed)); // SKUs (Array of Dictionary) + _payment.Connect("sku_details_query_error", Callable.From(OnGodotGooglePlayBilling_sku_details_query_error)); // Response ID (int), Debug message (string), Queried SKUs (string[]) + _payment.Connect("purchases_updated", Callable.From(OnGodotGooglePlayBilling_purchases_updated)); // Purchases (Array of Dictionary) + _payment.Connect("purchase_error", Callable.From(OnGodotGooglePlayBilling_purchase_error)); // Response ID (int), Debug message (string) + _payment.Connect("purchase_acknowledged", Callable.From(OnGodotGooglePlayBilling_purchase_acknowledged)); // Purchase token (string) + _payment.Connect("purchase_acknowledgement_error", Callable.From(OnGodotGooglePlayBilling_purchase_acknowledgement_error)); // Response ID (int), Debug message (string), Purchase token (string) + _payment.Connect("purchase_consumed", Callable.From(OnGodotGooglePlayBilling_purchase_consumed)); // Purchase token (string) + _payment.Connect("purchase_consumption_error", Callable.From(OnGodotGooglePlayBilling_purchase_consumption_error)); // Response ID (int), Debug message (string), Purchase token (string) } else { @@ -88,27 +88,27 @@ public PurchasesResult QueryPurchases(PurchaseType purchaseType) #region GodotGooglePlayBilling Signals - private void OnGodotGooglePlayBilling_connected() => EmitSignal(nameof(Connected)); + private void OnGodotGooglePlayBilling_connected() => EmitSignal(SignalName.Connected); - private void OnGodotGooglePlayBilling_disconnected() => EmitSignal(nameof(Disconnected)); + private void OnGodotGooglePlayBilling_disconnected() => EmitSignal(SignalName.Disconnected); - private void OnGodotGooglePlayBilling_connect_error(int code, string message) => EmitSignal(nameof(ConnectError), code, message); + private void OnGodotGooglePlayBilling_connect_error(int code, string message) => EmitSignal(SignalName.ConnectError, code, message); - private void OnGodotGooglePlayBilling_sku_details_query_completed(Array skuDetails) => EmitSignal(nameof(SkuDetailsQueryCompleted), skuDetails); + private void OnGodotGooglePlayBilling_sku_details_query_completed(Array skuDetails) => EmitSignal(SignalName.SkuDetailsQueryCompleted, skuDetails); - private void OnGodotGooglePlayBilling_sku_details_query_error(int code, string message, string[] querySkuDetails) => EmitSignal(nameof(SkuDetailsQueryError), code, message, querySkuDetails); + private void OnGodotGooglePlayBilling_sku_details_query_error(int code, string message, string[] querySkuDetails) => EmitSignal(SignalName.SkuDetailsQueryError, code, message, querySkuDetails); - private void OnGodotGooglePlayBilling_purchases_updated(Array purchases) => EmitSignal(nameof(PurchasesUpdated), purchases); + private void OnGodotGooglePlayBilling_purchases_updated(Array purchases) => EmitSignal(SignalName.PurchasesUpdated, purchases); - private void OnGodotGooglePlayBilling_purchase_error(int code, string message) => EmitSignal(nameof(PurchaseError), code, message); + private void OnGodotGooglePlayBilling_purchase_error(int code, string message) => EmitSignal(SignalName.PurchaseError, code, message); - private void OnGodotGooglePlayBilling_purchase_acknowledged(string purchaseToken) => EmitSignal(nameof(PurchaseAcknowledged), purchaseToken); + private void OnGodotGooglePlayBilling_purchase_acknowledged(string purchaseToken) => EmitSignal(SignalName.PurchaseAcknowledged, purchaseToken); - private void OnGodotGooglePlayBilling_purchase_acknowledgement_error(int code, string message) => EmitSignal(nameof(PurchaseAcknowledgementError), code, message); + private void OnGodotGooglePlayBilling_purchase_acknowledgement_error(int code, string message) => EmitSignal(SignalName.PurchaseAcknowledgementError, code, message); - private void OnGodotGooglePlayBilling_purchase_consumed(string purchaseToken) => EmitSignal(nameof(PurchaseConsumed), purchaseToken); + private void OnGodotGooglePlayBilling_purchase_consumed(string purchaseToken) => EmitSignal(SignalName.Connected, purchaseToken); - private void OnGodotGooglePlayBilling_purchase_consumption_error(int code, string message, string purchaseToken) => EmitSignal(nameof(PurchaseConsumptionError), code, message, purchaseToken); + private void OnGodotGooglePlayBilling_purchase_consumption_error(int code, string message, string purchaseToken) => EmitSignal(SignalName.PurchaseConsumptionError, code, message, purchaseToken); #endregion } diff --git a/mono/android_iap/android/.build_version b/mono/android_iap/android/.build_version new file mode 100644 index 0000000000..6842079e03 --- /dev/null +++ b/mono/android_iap/android/.build_version @@ -0,0 +1 @@ +4.3.stable.mono diff --git a/mono/android_iap/android/plugins/GodotGooglePlayBilling.1.2.0.release.aar b/mono/android_iap/android/plugins/GodotGooglePlayBilling.1.2.0.release.aar new file mode 100644 index 0000000000000000000000000000000000000000..1c4cc7ff94e9ccc76384d6344c82be3e9a768b71 GIT binary patch literal 14013 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 literal 0 HcmV?d00001 diff --git a/mono/android_iap/android/plugins/GodotGooglePlayBilling.gdap b/mono/android_iap/android/plugins/GodotGooglePlayBilling.gdap new file mode 100644 index 0000000000..f4995c229d --- /dev/null +++ b/mono/android_iap/android/plugins/GodotGooglePlayBilling.gdap @@ -0,0 +1,8 @@ +[config] + +name="GodotGooglePlayBilling" +binary_type="local" +binary="GodotGooglePlayBilling.1.2.0.release.aar" + +[dependencies] +remote=["com.android.billingclient:billing:5.2.1"] diff --git a/mono/android_iap/main.tscn b/mono/android_iap/main.tscn index 794109c09b..368b6925c5 100644 --- a/mono/android_iap/main.tscn +++ b/mono/android_iap/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=3 format=3 uid="uid://ckuhu5rgquv8h"] +[gd_scene load_steps=3 format=3 uid="uid://dx43bqbhvi3am"] [ext_resource type="Script" path="res://Main.cs" id="1"] [ext_resource type="Script" path="res://GodotGooglePlayBilling/GooglePlayBilling.cs" id="2"] @@ -25,10 +25,10 @@ dialog_autowrap = true [node name="Label" type="Label" parent="."] layout_mode = 0 -offset_left = 300.0 -offset_top = 40.0 -offset_right = 996.0 -offset_bottom = 156.0 +offset_left = 242.711 +offset_top = 39.0 +offset_right = 1083.71 +offset_bottom = 297.0 size_flags_horizontal = 2 size_flags_vertical = 0 text = "To test in-app purchase on android device, diff --git a/mono/android_iap/project.godot b/mono/android_iap/project.godot index 1d88ec1ea9..443361f241 100644 --- a/mono/android_iap/project.godot +++ b/mono/android_iap/project.godot @@ -16,8 +16,8 @@ config/description="This demo shows how to make in-app payments in Android in C# Note: Running the demo requires exporting and uploading the game to Google Play." config/tags=PackedStringArray("demo", "mobile", "official", "porting") run/main_scene="res://main.tscn" -config/features=PackedStringArray("4.3", "C#") -config/icon="res://icon.webp" +config/features=PackedStringArray("4.3", "C#", "Mobile") +config/icon="res://icon.svg" [display] @@ -32,3 +32,4 @@ project/assembly_name="Android in-app purchases with C#" renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" +textures/vram_compression/import_etc2_astc=true