Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit ca98af3

Browse files
authored
Merge pull request #1194 from xamarin/BillingClient-3.0.3
BillingClient-3.0.3
2 parents 8259fec + a50c831 commit ca98af3

File tree

8 files changed

+193
-13
lines changed

8 files changed

+193
-13
lines changed

Android/GoogleBillingClient/build.cake

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11

2-
var TARGET = Argument ("t", Argument ("target", "Default"));
2+
var TARGET = Argument ("t", Argument ("target", "ci"));
33

4-
var AAR_VERSION = "3.0.0";
4+
var AAR_VERSION = "3.0.3";
5+
var AAR_KTX_VERSION = "3.0.3";
56
var NUGET_VERSION = AAR_VERSION;
67

78
var AAR_URL = $"https://dl.google.com/dl/android/maven2/com/android/billingclient/billing/{AAR_VERSION}/billing-{AAR_VERSION}.aar";
9+
var AAR_KTX_URL = $"https://dl.google.com/dl/android/maven2/com/android/billingclient/billing-ktx/{AAR_KTX_VERSION}/billing-ktx-{AAR_KTX_VERSION}.aar";
810

911

1012
Task ("externals")
11-
.WithCriteria(!FileExists("./externals/billing.aar"))
12-
.Does (() =>
13+
.WithCriteria(!FileExists($"./externals/billing-{AAR_VERSION}.aar"))
14+
.WithCriteria(!FileExists($"./externals/billing-{AAR_KTX_VERSION}.aar"))
15+
.Does (() =>
1316
{
1417
EnsureDirectoryExists ("./externals/");
15-
DownloadFile (AAR_URL, "./externals/billing.aar");
16-
Unzip("./externals/billing.aar", "./externals/billing/");
18+
DownloadFile (AAR_URL, $"./externals/billing-{AAR_VERSION}.aar");
19+
DownloadFile (AAR_KTX_URL, $"./externals/billing-ktx-{AAR_KTX_VERSION}.aar");
20+
Unzip($"./externals/billing-{AAR_VERSION}.aar", $"./externals/billing-{AAR_VERSION}/");
21+
Unzip($"./externals/billing-ktx-{AAR_KTX_VERSION}.aar", $"./externals/billing-ktx-{AAR_KTX_VERSION}/");
1722

1823
XmlPoke("./source/GoogleBillingClient/GoogleBillingClient.csproj", "/Project/PropertyGroup/PackageVersion", NUGET_VERSION);
24+
XmlPoke("./source/GoogleBillingClient.Ktx/GoogleBillingClient.Ktx.csproj", "/Project/PropertyGroup/PackageVersion", NUGET_VERSION);
1925
});
2026

2127
Task("libs")
@@ -43,11 +49,18 @@ Task("nuget")
4349
});
4450
});
4551

52+
Task ("ci")
53+
.IsDependentOn("nuget")
54+
;
55+
4656
Task ("clean")
4757
.Does (() =>
4858
{
4959
if (DirectoryExists ("./externals/"))
50-
DeleteDirectory ("./externals", true);
60+
DeleteDirectory ("./externals", new DeleteDirectorySettings {
61+
Recursive = true,
62+
Force = true
63+
});
5164
});
5265

5366
RunTarget (TARGET);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using Android.App;
2+
using Android.BillingClient.Api;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project Sdk="MSBuild.Sdk.Extras">
3+
<PropertyGroup>
4+
<TargetFrameworks>MonoAndroid90</TargetFrameworks>
5+
<IsBindingProject>true</IsBindingProject>
6+
<AssemblyName>Xamarin.Android.Google.BillingClient.Ktx</AssemblyName>
7+
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
8+
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
9+
<AndroidUseLatestPlatformSdk>False</AndroidUseLatestPlatformSdk>
10+
<AndroidUseIntermediateDesignerFile>True</AndroidUseIntermediateDesignerFile>
11+
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
12+
<RootNamespace>Android.BillingClient.Ktx</RootNamespace>
13+
<AndroidClassParser>class-parse</AndroidClassParser>
14+
<AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
15+
<NoWarn>CS0114,CS0109,CS0108</NoWarn>
16+
</PropertyGroup>
17+
18+
<PropertyGroup>
19+
<PackageId>Xamarin.Android.Google.BillingClient.Ktx</PackageId>
20+
<Title>Google Android Billing Client bindings for Xamarin.Android.Ktx</Title>
21+
<PackageDescription>Xamarin.Android bindings for Google's Android Billing Client.</PackageDescription>
22+
<Authors>Microsoft</Authors>
23+
<Owners>Microsoft</Owners>
24+
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
25+
<PackageProjectUrl>https://go.microsoft.com/fwlink/?linkid=2100110</PackageProjectUrl>
26+
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
27+
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
28+
<PackageVersion>3.0.3</PackageVersion>
29+
</PropertyGroup>
30+
31+
<ItemGroup>
32+
<TransformFile Include="Transforms\Metadata.xml" />
33+
<TransformFile Include="Transforms\EnumFields.xml" />
34+
<TransformFile Include="Transforms\EnumMethods.xml" />
35+
</ItemGroup>
36+
37+
<ItemGroup>
38+
<None Include="..\..\License.md" Pack="true" PackagePath="LICENSE.md" />
39+
<None Include="..\..\External-Dependency-Info.txt" Pack="True" PackagePath="THIRD-PARTY-NOTICES.txt" />
40+
</ItemGroup>
41+
42+
<ItemGroup>
43+
<LibraryProjectZip Include="..\..\externals\billing-ktx-3.0.3.aar" />
44+
</ItemGroup>
45+
46+
<ItemGroup>
47+
<PackageReference Include="Xamarin.Kotlin.StdLib" Version="1.5.10" />
48+
<PackageReference Include="Xamarin.KotlinX.Coroutines.Core" Version="1.5.0" />
49+
</ItemGroup>
50+
</Project>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<enum-field-mappings>
2+
<!--
3+
This example converts the constants Fragment_id, Fragment_name,
4+
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
5+
to an enum called Android.Support.V4.App.FragmentTagType with values
6+
Id, Name, and Tag.
7+
8+
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
9+
<field clr-name="Id" jni-name="Fragment_id" value="1" />
10+
<field clr-name="Name" jni-name="Fragment_name" value="0" />
11+
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
12+
</type>
13+
14+
Notes:
15+
- An optional "bitfield" attribute marks the enum type with [Flags].
16+
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
17+
-->
18+
<mapping clr-enum-type="Android.BillingClient.Api.ChildDirectedTypes" jni-interface="com/android/billingclient/api/BillingClient$ChildDirected">
19+
<field clr-name="Directed" jni-name="CHILD_DIRECTED" value="1" />
20+
<field clr-name="NotDirected" jni-name="NOT_CHILD_DIRECTED" value="2" />
21+
<field clr-name="Unspecified" jni-name="UNSPECIFIED" value="0" />
22+
</mapping>
23+
24+
<mapping clr-enum-type="Android.BillingClient.Api.UnderAgeOfConsentTypes" jni-interface="com/android/billingclient/api/BillingClient$UnderAgeOfConsent">
25+
<field clr-name="NotUnderAgeOfConsent" jni-name="NOT_UNDER_AGE_OF_CONSENT" value="2" />
26+
<field clr-name="UnderAgeOfConsent" jni-name="UNDER_AGE_OF_CONSENT" value="1" />
27+
<field clr-name="Unspecified" jni-name="UNSPECIFIED" value="0" />
28+
</mapping>
29+
30+
<mapping clr-enum-type="Android.BillingClient.Api.PurchaseState" jni-interface="com/android/billingclient/api/Purchase$PurchaseState">
31+
<field clr-name="Pending" jni-name="PENDING" value="2" />
32+
<field clr-name="Purchased" jni-name="PURCHASED" value="1" />
33+
<field clr-name="Unspecified" jni-name="UNSPECIFIED_STATE" value="0" />
34+
</mapping>
35+
36+
37+
38+
39+
<mapping clr-enum-type="Android.BillingClient.Api.BillingResponseCode" jni-interface="com/android/billingclient/api/BillingClient$BillingResponseCode">
40+
<field clr-name="BillingUnavailable" jni-name="BILLING_UNAVAILABLE" value="3" />
41+
<field clr-name="DeveloperError" jni-name="DEVELOPER_ERROR" value="5" />
42+
<field clr-name="Error" jni-name="ERROR" value="6" />
43+
<field clr-name="FeatureNotSupported" jni-name="FEATURE_NOT_SUPPORTED" value="-2" />
44+
<field clr-name="ItemAlreadyOwned" jni-name="ITEM_ALREADY_OWNED" value="7" />
45+
<field clr-name="ItemNotOwned" jni-name="ITEM_NOT_OWNED" value="8" />
46+
<field clr-name="ItemUnavailable" jni-name="ITEM_UNAVAILABLE" value="4" />
47+
<field clr-name="Ok" jni-name="OK" value="0" />
48+
<field clr-name="ServiceDisconnected" jni-name="SERVICE_DISCONNECTED" value="-1" />
49+
<field clr-name="ServiceTimeout" jni-name="SERVICE_TIMEOUT" value="-3" />
50+
<field clr-name="ServiceUnavailable" jni-name="SERVICE_UNAVAILABLE" value="2" />
51+
<field clr-name="UserCancelled" jni-name="USER_CANCELED" value="1" />
52+
53+
</mapping>
54+
</enum-field-mappings>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<enum-method-mappings>
2+
<!--
3+
This example changes the Java method:
4+
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
5+
to be:
6+
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
7+
when bound in C#.
8+
9+
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
10+
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
11+
</mapping>
12+
13+
Notes:
14+
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
15+
- To change the type of the return value, use "return" as the parameter name.
16+
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
17+
-->
18+
19+
<mapping jni-class="com/android/billingclient/api/BillingClient.Builder">
20+
<method jni-name="setChildDirected" parameter="childDirected" clr-enum-type="Android.BillingClient.Api.ChildDirectedTypes" />
21+
<method jni-name="setUnderAgeOfConsent" parameter="underAgeOfConsent" clr-enum-type="Android.BillingClient.Api.UnderAgeOfConsentTypes" />
22+
</mapping>
23+
24+
<mapping jni-class="com/android/billingclient/api/BillingResult">
25+
<method jni-name="getResponseCode" parameter="return" clr-enum-type="Android.BillingClient.Api.BillingResponseCode" />
26+
</mapping>
27+
28+
<mapping jni-class="com/android/billingclient/api/Purchase">
29+
<method jni-name="getPurchaseState" parameter="return" clr-enum-type="Android.BillingClient.Api.PurchaseState" />
30+
</mapping>
31+
</enum-method-mappings>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<metadata>
2+
<!-- namespaces -->
3+
<attr
4+
path="/api/package[@name='com.android.billingclient']"
5+
name="managedName"
6+
>
7+
Android.BillingClient
8+
</attr>
9+
<attr
10+
path="/api/package[@name='com.android.billingclient.api']"
11+
name="managedName"
12+
>
13+
Android.BillingClient.Api
14+
</attr>
15+
<attr
16+
path="/api/package[@name='com.android.billingclient.ktx']"
17+
name="managedName"
18+
>
19+
Android.BillingClient.Ktx
20+
</attr>
21+
</metadata>

Android/GoogleBillingClient/source/GoogleBillingClient.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28307.572
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GoogleBillingClient", "GoogleBillingClient\GoogleBillingClient.csproj", "{9C98362A-86E1-4C80-8147-B37B25CF78E1}"
77
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleBillingClient.Ktx", "GoogleBillingClient.Ktx\GoogleBillingClient.Ktx.csproj", "{B5B85FAC-65EA-4B8F-B9D7-11E90D04ED48}"
9+
EndProject
810
Global
911
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1012
Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
1517
{9C98362A-86E1-4C80-8147-B37B25CF78E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
1618
{9C98362A-86E1-4C80-8147-B37B25CF78E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
1719
{9C98362A-86E1-4C80-8147-B37B25CF78E1}.Release|Any CPU.Build.0 = Release|Any CPU
20+
{B5B85FAC-65EA-4B8F-B9D7-11E90D04ED48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21+
{B5B85FAC-65EA-4B8F-B9D7-11E90D04ED48}.Debug|Any CPU.Build.0 = Debug|Any CPU
22+
{B5B85FAC-65EA-4B8F-B9D7-11E90D04ED48}.Release|Any CPU.ActiveCfg = Release|Any CPU
23+
{B5B85FAC-65EA-4B8F-B9D7-11E90D04ED48}.Release|Any CPU.Build.0 = Release|Any CPU
1824
EndGlobalSection
1925
GlobalSection(SolutionProperties) = preSolution
2026
HideSolutionNode = FALSE

Android/GoogleBillingClient/source/GoogleBillingClient/GoogleBillingClient.csproj

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<Project Sdk="MSBuild.Sdk.Extras/2.0.54">
2+
<Project Sdk="MSBuild.Sdk.Extras">
33
<PropertyGroup>
44
<TargetFrameworks>MonoAndroid90</TargetFrameworks>
55
<IsBindingProject>true</IsBindingProject>
@@ -25,7 +25,7 @@
2525
<PackageProjectUrl>https://go.microsoft.com/fwlink/?linkid=2100110</PackageProjectUrl>
2626
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
2727
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
28-
<PackageVersion>3.0.0</PackageVersion>
28+
<PackageVersion>3.0.3</PackageVersion>
2929
</PropertyGroup>
3030

3131
<ItemGroup>
@@ -35,15 +35,12 @@
3535
</ItemGroup>
3636

3737
<ItemGroup>
38-
<None Include="..\..\externals\billing.aar">
39-
<Link>billing.jar</Link>
40-
</None>
4138
<None Include="..\..\License.md" Pack="true" PackagePath="LICENSE.md" />
4239
<None Include="..\..\External-Dependency-Info.txt" Pack="True" PackagePath="THIRD-PARTY-NOTICES.txt" />
4340
</ItemGroup>
4441

4542
<ItemGroup>
46-
<LibraryProjectZip Include="..\..\externals\billing.aar" />
43+
<LibraryProjectZip Include="..\..\externals\billing-3.0.3.aar" />
4744
</ItemGroup>
4845

4946
<ItemGroup>

0 commit comments

Comments
 (0)