Skip to content

Commit

Permalink
feat: Mapbox Android SDK v11.2.0 (#24)
Browse files Browse the repository at this point in the history
* - correct binding error for AndroidCore

* - include TargetFrameworks in CSHTML template

* - correct binding for mapbox-sdk-geojson

* - fix binding for maps.base
  • Loading branch information
tuyen-vuduc authored Mar 15, 2024
1 parent 2b8255c commit 79305cb
Show file tree
Hide file tree
Showing 13 changed files with 78 additions and 101 deletions.
Binary file modified qs/com.mapbox.maps--android/assets/tv-mapbox.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion qs/com.mapbox.maps--android/build/Build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
<PackageReference Include="DotnetBindings.Cake" Version="0.1.0" /> -->
</ItemGroup>
<ItemGroup>
<GradleImplementation Include="com.mapbox.maps:android:11.1.0"></GradleImplementation>
<GradleImplementation Include="com.mapbox.maps:android:11.2.0"></GradleImplementation>
<GradleImplementation Include="org.jetbrains.kotlin:kotlin-parcelize-runtime:1.8.22"></GradleImplementation>
<GradleRepository Include="https://api.mapbox.com/downloads/v2/releases/maven">
<Repository>
maven {
Expand Down
19 changes: 8 additions & 11 deletions qs/com.mapbox.maps--android/config.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
{
"solutionFile" : "generated/com.mapbox.maps--android-bindings.sln",
"solutionFile" : "generated/mapbox-bindings.sln",
"metadataPath": "../..",
"debug": { "dumpModels" : true },
"additionalProjects": [
],
"targetFrameworks": [
"MonoAndroid12.0",
"net6.0-android31.0",
"net7.0-android33.0"
],
"projectUrl": "https://mapbox.tuyen-vuduc.tech",
"packageIconPath": "../../assets/tv-mapbox.png",
"licensePath": "../../LICENSE",
Expand All @@ -33,18 +28,20 @@
"groupId": "com.mapbox.maps",
"artifactId": "android",
"artifactName": "Android SDK",
"version": "11.1.0",
"nugetRevision": 1,
"version": "11.2.0",
"nugetRevision": 2,
"tags": [ "mapbox", "mapbox-android" ]
}
],
"fixedDependencies": {
"Xamarin.AndroidX.Annotation": "1.7.0.3",
"Xamarin.AndroidX.Annotation": "1.7.1.1",
"Xamarin.Kotlin.StdLib.Jdk7": "1.5.31.4",
"Xamarin.Kotlin.StdLib.Jdk8": "1.9.21.1",
"Xamarin.AndroidX.Lifecycle.Runtime": "2.6.2.3",
"Xamarin.AndroidX.Lifecycle.Runtime": "2.7.0.1",
"Xamarin.KotlinX.Coroutines.Core.Jvm": "1.6.4.3",
"Xamarin.AndroidX.Core.Core.Ktx": "1.12.0.3"
"Xamarin.KotlinX.Coroutines.Core": "1.8.0.1",
"Xamarin.AndroidX.Core.Core.Ktx": "1.12.0.4",
"Org.Jetbrains.Kotlin.KotlinParcelizeRuntime": "1.8.22.3"
},
"missedDependencies": {
"com.mapbox.common:logger": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@

namespace Com.Mapbox.Common
{
partial class MapboxSDKCommonInitializer
partial class BaseMapboxInitializer
{
public unsafe global::Java.Lang.Object Create(global::Android.Content.Context context)
{
return CreateMapboxSDKCommon(context);
}
}
}

namespace Com.Mapbox.Common
{
global::Java.Lang.Object global::AndroidX.Startup.IInitializer.Create(global::Android.Content.Context context)
=> Create(context);
}
partial class MapboxSDKCommonInitializerImpl
{
global::Java.Lang.Object global::AndroidX.Startup.IInitializer.Create(global::Android.Content.Context context)
=> Create(context);
}
partial class CoreInitializer
{
public unsafe global::Java.Lang.Object Create(global::Android.Content.Context context)
{
return CreateMapboxSDKCommon(context);
}
global::Java.Lang.Object global::AndroidX.Startup.IInitializer.Create(global::Android.Content.Context context)
=> Create(context);
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr
path="//field[@name='Companion']"
name="managedName">CompanionField</attr>
<attr
path="/api/package[@name='com.mapbox.common']/class[@name='MapboxSDKCommonInitializer']/method[@name='create' and count(parameter)=1 and parameter[1][@type='android.content.Context']]"
name="managedName">CreateMapboxSDKCommon</attr>
<attr
path="/api/package[@name='com.mapbox.common']/class[@name='CoreInitializer']/method[@name='create' and count(parameter)=1 and parameter[1][@type='android.content.Context']]"
name="managedName">CreateMapboxSDKCommon</attr>
</metadata>
Original file line number Diff line number Diff line change
@@ -1,33 +1,18 @@
namespace Com.Mapbox.Geojson.Gson
{
public partial class BoundingBoxTypeAdapter
{
public override unsafe global::Java.Lang.Object Read(global::GoogleGson.Stream.JsonReader @in)
{
return ReadBoudingBox(@in);
}

public override unsafe void Write(global::GoogleGson.Stream.JsonWriter @out, global::Java.Lang.Object value)
{
Write(@out, value as global::Com.Mapbox.Geojson.BoundingBox);
}
}
}

using System;
using System.Collections.Generic;
using Android.Runtime;
using GoogleGson.Stream;
using Java.Interop;

namespace Com.Mapbox.Geojson
namespace Com.Mapbox.Geojson.Gson
{
public partial class PointAsCoordinatesTypeAdapter
partial class BoundingBoxTypeAdapter
{
public override unsafe global::Java.Lang.Object Read(global::GoogleGson.Stream.JsonReader @in)
{
return ReadPoint(@in);
}
public override Java.Lang.Object Read(JsonReader p0)
=> ReadX(p0);

public override unsafe void Write(global::GoogleGson.Stream.JsonWriter @out, global::Java.Lang.Object value)
{
Write(@out, value as global::Com.Mapbox.Geojson.Point);
}
public override void Write(JsonWriter p0, Java.Lang.Object p1)
=> Write(p0, p1 as BoundingBox);
}
}

Expand Down Expand Up @@ -122,4 +107,4 @@ partial class MultiPoint : global::Com.Mapbox.Geojson.ICoordinateContainer
return global::Android.Runtime.JavaArray<global::Com.Mapbox.Geojson.Point>.FromArray<global::Com.Mapbox.Geojson.Point>(coornidates);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr
path="/api/package[@name='com.mapbox.geojson.gson']/class[@name='BoundingBoxTypeAdapter']/method[@name='read' and count(parameter)=1 and parameter[1][@type='com.google.gson.stream.JsonReader']]"
name="managedName">ReadBoudingBox</attr>
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='PointAsCoordinatesTypeAdapter']/method[@name='read' and count(parameter)=1 and parameter[1][@type='com.google.gson.stream.JsonReader']]" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='Polygon']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiPolygon']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='Point']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiPoint']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='LineString']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiLineString']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<attr path="//class[@name='PointAsCoordinatesTypeAdapter']"
name="visibility"></attr>
<attr path="//class[@extends='com.google.gson.TypeAdapter']/method[@name='read' and count(parameter)=1 and parameter[1][@type='com.google.gson.stream.JsonReader']]"
name="managedName">ReadX</attr>
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='Polygon']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiPolygon']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='Point']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiPoint']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='LineString']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
<remove-node path="/api/package[@name='com.mapbox.geojson']/class[@name='MultiLineString']/implements[@name='com.mapbox.geojson.CoordinateContainer']" />
</metadata>
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@

namespace Com.Mapbox.Maps.Loader
{
partial class MapboxMapsInitializer
partial class MapboxMapsInitializerImpl
{
public virtual unsafe global::Java.Lang.Object Create(global::Android.Content.Context context)
{
return CreateMapboxMaps(context);
}
global::Java.Lang.Object global::AndroidX.Startup.IInitializer.Create(global::Android.Content.Context context)
=> Create(context);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr
path="/api/package[@name='com.mapbox.maps.loader']/class[@name='MapboxMapsInitializer']/method[@name='create' and count(parameter)=1 and parameter[1][@type='android.content.Context']]"
name="managedName">CreateMapboxMaps</attr>
<attr
path="/api/package[@name='com.mapbox.maps']/class[@name='ViewAnnotationPositionDescriptor']"
name="visibility">public</attr>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,16 @@
using System;
using System.Collections.Generic;
using Android.Runtime;
using Java.Interop;

namespace Com.Mapbox.Maps
{
partial class MapboxInitializer
{
global::Java.Lang.Object global::AndroidX.Startup.IInitializer.Create(global::Android.Content.Context context)
=> Create(context);
}
}

namespace Com.Mapbox.Maps.Plugins.Locationcomponent
{
Expand Down Expand Up @@ -37,7 +49,7 @@ public bool OnMapClick(global::Com.Mapbox.Geojson.Point point)
return func?.Invoke(point) ?? false;
}
}

public sealed class OnMapLongClickListenerFunction : Java.Lang.Object, IOnMapLongClickListener
{
Func<global::Com.Mapbox.Geojson.Point, bool> func;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr
path="//field[@name='Companion']"
name="managedName">CompanionField</attr>
<remove-node
path="/api/package[@name='com.mapbox.maps.extension.style']/interface[@name='StyleInterface']/implements[@name='com.mapbox.maps.StyleManagerInterface']" />
</metadata>
2 changes: 0 additions & 2 deletions src/Binderator.Gradle/Model/BindingProjectModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ public class BindingProjectModel
)
);

public string TargetFrameworks => string.Join(";", Config.TargetFrameworks);

public List<ArtifactModel> NuGetDependencies { get; set; } = new List<ArtifactModel>();

public List<string> ProjectReferences { get; set; } = new List<string>();
Expand Down
34 changes: 19 additions & 15 deletions src/Project.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,28 @@
<Delete Files="$(_AarOutputPath)" />
</Target>
<PropertyGroup>
<TargetFrameworks>@(Model.TargetFrameworks)</TargetFrameworks>
<TargetFrameworks Condition=" '10' == '10' ">net7.0-android33.0;net6.0-android31.0</TargetFrameworks>
<TargetFrameworks Condition=" '10' == '0' ">MonoAndroid12.0;net7.0-android33.0;net6.0-android31.0</TargetFrameworks>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<IsBindingProject>true</IsBindingProject>
<AssemblyName>@(Model.Artifact.NugetPackageId)</AssemblyName>
<RootNamespace>@(Model.Artifact.NugetPackageId)</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<AndroidSdkDirectory Condition=" '$(OS)' == 'Unix' ">$(Home)/Library/Android/sdk</AndroidSdkDirectory>
<AndroidSdkDirectory Condition=" '$(OS)' != 'Unix' ">$(UserProfile)/AppData/Local/Android/sdk</AndroidSdkDirectory>
<UserHome Condition=" '$(OS)' == 'Unix' ">$(Home)</UserHome>
<UserHome Condition=" '$(OS)' != 'Unix' ">$(UserProfile)</UserHome>
<AndroidSdkDirectory Condition=" '$(OS)' == 'Unix' ">$(UserHome)/Library/Android/sdk</AndroidSdkDirectory>
<AndroidSdkDirectory Condition=" '$(OS)' != 'Unix' ">$(UserHome)/AppData/Local/Android/sdk</AndroidSdkDirectory>
</PropertyGroup>
<PropertyGroup>
<PackageId>@(Model.Artifact.NugetPackageId)</PackageId>
<Title>@(Model.GroupName) - @(Model.ArtifactName)</Title>
<Summary>C# bindings for @(Model.Artifact.GradleImplementation)</Summary>
<Summary>.NET Android binding library for @(Model.Artifact.GradleImplementation)</Summary>
<Description>
C# bindings for @(Model.Artifact.GradleImplementation)
.NET Android binding library for @(Model.Artifact.GradleImplementation)
</Description>
<PackageTags> xamarin, @(Model.Tags), @(Model.Artifact.GroupId), @(Model.Artifact.ArtifactId)</PackageTags>
<PackageTags> xamarin, android, @(Model.Tags), @(Model.Artifact.GroupId), @(Model.Artifact.ArtifactId)</PackageTags>
<Authors>tuyen,tuyen-vuduc</Authors>
<Owners>tuyen,tuyen-vuduc</Owners>
<Company>N/A</Company>
Expand Down Expand Up @@ -107,16 +112,15 @@
=================================================================================================================
-->
</PropertyGroup>
<PropertyGroup>
<UserHome Condition=" '$(OS)' == 'Unix' ">$(Home)</UserHome>
<UserHome Condition=" '$(OS)' != 'Unix' ">$(UserProfile)</UserHome>
</PropertyGroup>

<ItemGroup>
@foreach(var targetFrameworkMoniker in Model.Config.TargetFrameworks) {
<None Include="@(Model.Artifact.NugetPackageId).targets" Pack="True" PackagePath="build\@(targetFrameworkMoniker)" />
<None Include="@(Model.Artifact.NugetPackageId).targets" Pack="True" PackagePath="buildTransitive\@(targetFrameworkMoniker)" />
}
<_TargetFrameworkNugetBuildFolders Include="build\net6.0-android31.0" />
<_TargetFrameworkNugetBuildFolders Include="build\net7.0-android33.0" />
<_TargetFrameworkNugetBuildFolders Include="buildTransitive\net6.0-android31.0" />
<_TargetFrameworkNugetBuildFolders Include="buildTransitive\net7.0-android33.0" />
</ItemGroup>
<ItemGroup>
<None Include="@(Model.Artifact.NugetPackageId).targets" Pack="True" PackagePath="@@(_TargetFrameworkNugetBuildFolders)" />
<None Include="@(Model.Artifact.NugetPackageId).targets" Pack="True" PackagePath="@@(_TargetFrameworkNugetBuildFolders)" />
<None Include="@(packageIconPath)" Pack="True" PackagePath="package-icon.png" />
<None Include="@(licensePath)" Pack="True" PackagePath="" />
<None Include="../../README.md" Pack="True" PackagePath="README.md" />
Expand Down

0 comments on commit 79305cb

Please sign in to comment.