From 70a80eaaea19bd7ec14f42bf022f3e0216ac6960 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 08 一月 2021 10:41:21 +0800
Subject: [PATCH] 2021-01-08 1.JLCountryCode Android和iOS xamarin库。

---
 iOS/Shared.IOS.JLCountryCode.dll                               |    0 
 Shared.Droid.YCStatusBarLib/Properties/AssemblyInfo.cs         |   30 ++
 .gitignore                                                     |  218 ++++++++++++-
 Shared.IOS.JLCountryCode.dll                                   |    0 
 Shared.Droid.JLCountryCode/Transforms/EnumMethods.xml          |   14 
 Shared.Droid.JLCountryCode/Properties/AssemblyInfo.cs          |   30 ++
 Shared.Droid.JLCountryCode/Transforms/EnumFields.xml           |   15 +
 Shared.Droid.YCStatusBarLib/Transforms/Metadata.xml            |   10 
 Shared.IOS.JLCountryCode/Library/countryCodeCH.plist           |    0 
 Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.sln          |   29 +
 Android/Shared.Droid.JLCountryCode.dll                         |    0 
 Shared.IOS.JLCountryCode/Resources/countryCodeCH.plist         |    0 
 Shared.Droid.JLCountryCode/Jars/AboutJars.txt                  |   24 +
 iOS/Jlcountrycode.cs                                           |   44 ++
 Shared.IOS.JLCountryCode/Library/countryCodeEN.plist           |    0 
 Shared.IOS.JLCountryCode/Library/libJLCountryCode.a            |    0 
 Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.csproj       |   59 +++
 Shared.Droid.YCStatusBarLib/Jars/YCStatusBarLib-V1.0.1.aar     |    0 
 Shared.IOS.JLCountryCode/Properties/AssemblyInfo.cs            |   34 ++
 Shared.Droid.YCStatusBarLib/Additions/AboutAdditions.txt       |   48 +++
 Shared.IOS.JLCountryCode/Structs.cs                            |    6 
 Shared.Droid.YCStatusBarLib/Shared.Droid.YCStatusBarLib.csproj |   66 ++++
 Shared.Droid.JLCountryCode/Shared.Droid.JLCountryCode.csproj   |   66 ++++
 Shared.Droid.JLCountryCode/Additions/AboutAdditions.txt        |   48 +++
 Shared.Droid.YCStatusBarLib/Jars/AboutJars.txt                 |   24 +
 Shared.IOS.JLCountryCode/ApiDefinition.cs                      |   21 +
 Shared.Droid.JLCountryCode/Jars/JLCountryCode-V1.0.3.aar       |    0 
 Shared.Droid.JLCountryCode/Transforms/Metadata.xml             |   17 +
 Shared.IOS.JLCountryCode/Resources/countryCodeEN.plist         |    0 
 Shared.Droid.JLCountryCode.dll                                 |    0 
 Shared.Droid.YCStatusBarLib/Transforms/EnumMethods.xml         |   14 
 Android/Jlcountrycode.cs                                       |   56 +++
 Shared.Droid.YCStatusBarLib/Transforms/EnumFields.xml          |   15 +
 33 files changed, 863 insertions(+), 25 deletions(-)

diff --git a/.gitignore b/.gitignore
index a3cd143..27948ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,194 @@
-# Xcode
-#
-build/
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-xcuserdata
-*.xccheckout
-*.moved-aside
-DerivedData
-*.hmap
-*.ipa
-*.xcuserstate
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
 
-# CocoaPods
-#
-# We recommend against adding the Pods directory to your .gitignore. However
-# you should judge for yourself, the pros and cons are mentioned at:
-# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
-#
-# Pods/
+# User-specific files
+*.suo
+*.user
+*.sln.docstates
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+build/
+bld/
+[Bb]in/
+[Oo]bj/
+.vs/
+.gitignore
+packages/
+ZigBee.Ios/
+ZigBee.Droid/
+Shared.IOS/
+.DS_Store
+.gitignore
+
+# Roslyn cache directories
+*.ide/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+#NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding addin-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+## TODO: Comment the next line if you want to checkin your
+## web deploy settings but do note that will include unencrypted
+## passwords
+*.pubxml
+
+# NuGet Packages
+packages/*
+*.nupkg
+## TODO: If the tool you use requires repositories.config
+## uncomment the next line
+#!packages/repositories.config
+
+# Enable "build/" folder in the NuGet Packages folder since
+# NuGet packages use it for MSBuild targets.
+# This line needs to be after the ignore of the build folder
+# (and the packages folder if the line above has been uncommented)
+!packages/build/
+
+# Windows Azure Build Output
+csx/
+*.build.csdef
+
+# Windows Store app package directory
+AppPackages/
+
+# Others
+sql/
+*.Cache
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.pfx
+*.publishsettings
+node_modules/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+*.mdf
+*.ldf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
diff --git a/Android/Jlcountrycode.cs b/Android/Jlcountrycode.cs
new file mode 100644
index 0000000..fb0ce4e
--- /dev/null
+++ b/Android/Jlcountrycode.cs
@@ -0,0 +1,56 @@
+锘縰sing System;
+using Android.Content;
+using Com.Widget.Jlcountrycode;
+
+namespace Jlcountrycode
+{
+    public class CountryCodeView
+    {
+        /// <summary>
+        /// 鎺ュ彛绫荤殑杩斿洖淇℃伅
+        /// </summary>
+        private static CountryCodeView m_Current = null;
+        /// <summary>
+        /// 鎺ュ彛绫荤殑杩斿洖淇℃伅
+        /// </summary>
+        public static CountryCodeView Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new CountryCodeView();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 鍥藉鍖哄彿閫夋嫨
+        /// </summary>
+        /// <param name="action"></param>
+        public void Show(Action<string, string> action)
+        {
+            JLCountryCodeActivity.OnCountryCodeCallback = new OnCountryCodeCallback(action);
+            Shared.Application.Activity.StartActivity(new Intent(Shared.Application.Activity, typeof(JLCountryCodeActivity)));
+        }
+    }
+
+    /// <summary>
+    /// OnCountryCodeCallback
+    /// </summary>
+    public class OnCountryCodeCallback : Java.Lang.Object, Com.Widget.Jlcountrycode.Contact.IOnCountryCodeCallback
+    {
+
+        Action<string, string> mAction;
+        public OnCountryCodeCallback(Action<string, string> action)
+        {
+            mAction = action;
+        }
+
+        public void OnSelectCountryCallback(string countryName, string code)
+        {
+            mAction?.Invoke(countryName, code);
+        }
+    }
+}
\ No newline at end of file
diff --git a/Android/Shared.Droid.JLCountryCode.dll b/Android/Shared.Droid.JLCountryCode.dll
new file mode 100644
index 0000000..f7f9d91
--- /dev/null
+++ b/Android/Shared.Droid.JLCountryCode.dll
Binary files differ
diff --git a/Shared.Droid.JLCountryCode.dll b/Shared.Droid.JLCountryCode.dll
new file mode 100644
index 0000000..be50629
--- /dev/null
+++ b/Shared.Droid.JLCountryCode.dll
Binary files differ
diff --git a/Shared.Droid.JLCountryCode/Additions/AboutAdditions.txt b/Shared.Droid.JLCountryCode/Additions/AboutAdditions.txt
new file mode 100644
index 0000000..c240307
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Additions/AboutAdditions.txt
@@ -0,0 +1,48 @@
+锘緼dditions allow you to add arbitrary C# to the generated classes
+before they are compiled.  This can be helpful for providing convenience
+methods or adding pure C# classes.
+
+== Adding Methods to Generated Classes ==
+
+Let's say the library being bound has a Rectangle class with a constructor
+that takes an x and y position, and a width and length size.  It will look like
+this:
+
+public partial class Rectangle
+{
+    public Rectangle (int x, int y, int width, int height)
+    {
+        // JNI bindings
+    }
+}
+
+Imagine we want to add a constructor to this class that takes a Point and
+Size structure instead of 4 ints.  We can add a new file called Rectangle.cs
+with a partial class containing our new method:
+
+public partial class Rectangle
+{
+    public Rectangle (Point location, Size size) :
+        this (location.X, location.Y, size.Width, size.Height)
+    {
+    }
+}
+
+At compile time, the additions class will be added to the generated class
+and the final assembly will a Rectangle class with both constructors.
+
+
+== Adding C# Classes ==
+
+Another thing that can be done is adding fully C# managed classes to the
+generated library.  In the above example, let's assume that there isn't a
+Point class available in Java or our library.  The one we create doesn't need
+to interact with Java, so we'll create it like a normal class in C#.
+
+By adding a Point.cs file with this class, it will end up in the binding library:
+
+public class Point
+{
+    public int X { get; set; }
+    public int Y { get; set; }
+}
\ No newline at end of file
diff --git a/Shared.Droid.JLCountryCode/Jars/AboutJars.txt b/Shared.Droid.JLCountryCode/Jars/AboutJars.txt
new file mode 100644
index 0000000..c359b62
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Jars/AboutJars.txt
@@ -0,0 +1,24 @@
+锘縏his directory is for Android .jars.
+
+There are 2 types of jars that are supported:
+
+== Input Jar ==
+
+This is the jar that bindings should be generated for.
+
+For example, if you were binding the Google Maps library, this would
+be Google's "maps.jar".
+
+Set the build action for these jars in the properties page to "InputJar".
+
+
+== Reference Jars ==
+
+These are jars that are referenced by the input jar.  C# bindings will
+not be created for these jars.  These jars will be used to resolve
+types used by the input jar.
+
+NOTE: Do not add "android.jar" as a reference jar.  It will be added automatically
+based on the Target Framework selected.
+
+Set the build action for these jars in the properties page to "ReferenceJar".
\ No newline at end of file
diff --git a/Shared.Droid.JLCountryCode/Jars/JLCountryCode-V1.0.3.aar b/Shared.Droid.JLCountryCode/Jars/JLCountryCode-V1.0.3.aar
new file mode 100644
index 0000000..13e4f5b
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Jars/JLCountryCode-V1.0.3.aar
Binary files differ
diff --git a/Shared.Droid.JLCountryCode/Properties/AssemblyInfo.cs b/Shared.Droid.JLCountryCode/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..847dd8d
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Android.App;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Shared.Droid.JLCountryCode")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Shared.Droid.JLCountryCode")]
+[assembly: AssemblyCopyright("Copyright 漏  2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyFileVersion("1.0.3.0")]
diff --git a/Shared.Droid.JLCountryCode/Shared.Droid.JLCountryCode.csproj b/Shared.Droid.JLCountryCode/Shared.Droid.JLCountryCode.csproj
new file mode 100644
index 0000000..3f61bd4
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Shared.Droid.JLCountryCode.csproj
@@ -0,0 +1,66 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{82A1E78A-69FA-4F09-98B8-EE4E57F57880}</ProjectGuid>
+    <ProjectTypeGuids>{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <TemplateGuid>{77efb91c-a7e9-4b0e-a7c5-31eeec3c6d46}</TemplateGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Shared.Droid.JLCountryCode</RootNamespace>
+    <AssemblyName>Shared.Droid.JLCountryCode</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
+    <AndroidClassParser>class-parse</AndroidClassParser>
+    <AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
+    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>portable</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>portable</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Mono.Android" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Jars\AboutJars.txt" />
+    <None Include="Additions\AboutAdditions.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <TransformFile Include="Transforms\Metadata.xml" />
+    <TransformFile Include="Transforms\EnumFields.xml" />
+    <TransformFile Include="Transforms\EnumMethods.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <LibraryProjectZip Include="Jars\JLCountryCode-V1.0.3.aar" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.Bindings.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/Shared.Droid.JLCountryCode/Transforms/EnumFields.xml b/Shared.Droid.JLCountryCode/Transforms/EnumFields.xml
new file mode 100644
index 0000000..e4a0f89
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Transforms/EnumFields.xml
@@ -0,0 +1,15 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<enum-field-mappings>
+    <!--
+  This example converts the constants Fragment_id, Fragment_name,
+  and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
+  to an enum called Android.Support.V4.App.FragmentTagType with values
+  Id, Name, and Tag.
+  
+  <mapping jni-class="android/support/v4/app/FragmentActivity$FragmentTag" clr-enum-type="Android.Support.V4.App.FragmentTagType">
+    <field jni-name="Fragment_name" clr-name="Name" value="0" />
+    <field jni-name="Fragment_id" clr-name="Id" value="1" />
+    <field jni-name="Fragment_tag" clr-name="Tag" value="2" />
+  </mapping>
+  -->
+</enum-field-mappings>
\ No newline at end of file
diff --git a/Shared.Droid.JLCountryCode/Transforms/EnumMethods.xml b/Shared.Droid.JLCountryCode/Transforms/EnumMethods.xml
new file mode 100644
index 0000000..6ff109b
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Transforms/EnumMethods.xml
@@ -0,0 +1,14 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<enum-method-mappings>
+    <!--
+  This example changes the Java method:
+    android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
+  to be:
+    android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
+  when bound in C#.
+  
+  <mapping jni-class="android/support/v4/app/Fragment.SavedState">
+    <method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
+  </mapping>
+  -->
+</enum-method-mappings>
\ No newline at end of file
diff --git a/Shared.Droid.JLCountryCode/Transforms/Metadata.xml b/Shared.Droid.JLCountryCode/Transforms/Metadata.xml
new file mode 100644
index 0000000..3bbfa94
--- /dev/null
+++ b/Shared.Droid.JLCountryCode/Transforms/Metadata.xml
@@ -0,0 +1,17 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+    <!--
+  This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
+  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" />
+  
+  This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
+  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
+  -->
+    <remove-node path="/api/package[@name='com.widget.jlcountrycode.contact']/class[@name='ContactItemComparator']" />
+    <remove-node path="/api/package[@name='com.alibaba.fastjson']/class[@name='JSONObject']" />
+    <remove-node path="/api/package[@name='com.alibaba.fastjson.util']/class[@name='FieldInfo']" />
+    <remove-node path="/api/package[@name='com.alibaba.fastjson']/class[@name='JSONArray']" />
+    <remove-node path="/api/package[@name='com.alibaba.fastjson.parser']/class[@name='JavaBeanDeserializer']" />
+    <remove-node path="/api/package[@name='com.alibaba.fastjson.serializer']/class[@name='FieldSerializer']" />
+    <!--      <remove-node />-->
+</metadata>
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Additions/AboutAdditions.txt b/Shared.Droid.YCStatusBarLib/Additions/AboutAdditions.txt
new file mode 100644
index 0000000..c240307
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Additions/AboutAdditions.txt
@@ -0,0 +1,48 @@
+锘緼dditions allow you to add arbitrary C# to the generated classes
+before they are compiled.  This can be helpful for providing convenience
+methods or adding pure C# classes.
+
+== Adding Methods to Generated Classes ==
+
+Let's say the library being bound has a Rectangle class with a constructor
+that takes an x and y position, and a width and length size.  It will look like
+this:
+
+public partial class Rectangle
+{
+    public Rectangle (int x, int y, int width, int height)
+    {
+        // JNI bindings
+    }
+}
+
+Imagine we want to add a constructor to this class that takes a Point and
+Size structure instead of 4 ints.  We can add a new file called Rectangle.cs
+with a partial class containing our new method:
+
+public partial class Rectangle
+{
+    public Rectangle (Point location, Size size) :
+        this (location.X, location.Y, size.Width, size.Height)
+    {
+    }
+}
+
+At compile time, the additions class will be added to the generated class
+and the final assembly will a Rectangle class with both constructors.
+
+
+== Adding C# Classes ==
+
+Another thing that can be done is adding fully C# managed classes to the
+generated library.  In the above example, let's assume that there isn't a
+Point class available in Java or our library.  The one we create doesn't need
+to interact with Java, so we'll create it like a normal class in C#.
+
+By adding a Point.cs file with this class, it will end up in the binding library:
+
+public class Point
+{
+    public int X { get; set; }
+    public int Y { get; set; }
+}
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Jars/AboutJars.txt b/Shared.Droid.YCStatusBarLib/Jars/AboutJars.txt
new file mode 100644
index 0000000..c359b62
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Jars/AboutJars.txt
@@ -0,0 +1,24 @@
+锘縏his directory is for Android .jars.
+
+There are 2 types of jars that are supported:
+
+== Input Jar ==
+
+This is the jar that bindings should be generated for.
+
+For example, if you were binding the Google Maps library, this would
+be Google's "maps.jar".
+
+Set the build action for these jars in the properties page to "InputJar".
+
+
+== Reference Jars ==
+
+These are jars that are referenced by the input jar.  C# bindings will
+not be created for these jars.  These jars will be used to resolve
+types used by the input jar.
+
+NOTE: Do not add "android.jar" as a reference jar.  It will be added automatically
+based on the Target Framework selected.
+
+Set the build action for these jars in the properties page to "ReferenceJar".
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Jars/YCStatusBarLib-V1.0.1.aar b/Shared.Droid.YCStatusBarLib/Jars/YCStatusBarLib-V1.0.1.aar
new file mode 100644
index 0000000..ffb2a08
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Jars/YCStatusBarLib-V1.0.1.aar
Binary files differ
diff --git a/Shared.Droid.YCStatusBarLib/Properties/AssemblyInfo.cs b/Shared.Droid.YCStatusBarLib/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e35673f
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Android.App;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Shared.Droid.YCStatusBarLib")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Shared.Droid.YCStatusBarLib")]
+[assembly: AssemblyCopyright("Copyright 漏  2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.2.0")]
+[assembly: AssemblyFileVersion("1.0.2.0")]
diff --git a/Shared.Droid.YCStatusBarLib/Shared.Droid.YCStatusBarLib.csproj b/Shared.Droid.YCStatusBarLib/Shared.Droid.YCStatusBarLib.csproj
new file mode 100644
index 0000000..6f7b13f
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Shared.Droid.YCStatusBarLib.csproj
@@ -0,0 +1,66 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9893D262-A18D-4819-BDF2-ED81A85CD167}</ProjectGuid>
+    <ProjectTypeGuids>{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <TemplateGuid>{77efb91c-a7e9-4b0e-a7c5-31eeec3c6d46}</TemplateGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Shared.Droid.YCStatusBarLib</RootNamespace>
+    <AssemblyName>Shared.Droid.YCStatusBarLib</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
+    <AndroidClassParser>class-parse</AndroidClassParser>
+    <AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
+    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>portable</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>portable</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Mono.Android" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Jars\AboutJars.txt" />
+    <None Include="Additions\AboutAdditions.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <TransformFile Include="Transforms\Metadata.xml" />
+    <TransformFile Include="Transforms\EnumFields.xml" />
+    <TransformFile Include="Transforms\EnumMethods.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <LibraryProjectZip Include="Jars\YCStatusBarLib-V1.0.1.aar" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.Bindings.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Transforms/EnumFields.xml b/Shared.Droid.YCStatusBarLib/Transforms/EnumFields.xml
new file mode 100644
index 0000000..e4a0f89
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Transforms/EnumFields.xml
@@ -0,0 +1,15 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<enum-field-mappings>
+    <!--
+  This example converts the constants Fragment_id, Fragment_name,
+  and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
+  to an enum called Android.Support.V4.App.FragmentTagType with values
+  Id, Name, and Tag.
+  
+  <mapping jni-class="android/support/v4/app/FragmentActivity$FragmentTag" clr-enum-type="Android.Support.V4.App.FragmentTagType">
+    <field jni-name="Fragment_name" clr-name="Name" value="0" />
+    <field jni-name="Fragment_id" clr-name="Id" value="1" />
+    <field jni-name="Fragment_tag" clr-name="Tag" value="2" />
+  </mapping>
+  -->
+</enum-field-mappings>
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Transforms/EnumMethods.xml b/Shared.Droid.YCStatusBarLib/Transforms/EnumMethods.xml
new file mode 100644
index 0000000..6ff109b
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Transforms/EnumMethods.xml
@@ -0,0 +1,14 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<enum-method-mappings>
+    <!--
+  This example changes the Java method:
+    android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
+  to be:
+    android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
+  when bound in C#.
+  
+  <mapping jni-class="android/support/v4/app/Fragment.SavedState">
+    <method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
+  </mapping>
+  -->
+</enum-method-mappings>
\ No newline at end of file
diff --git a/Shared.Droid.YCStatusBarLib/Transforms/Metadata.xml b/Shared.Droid.YCStatusBarLib/Transforms/Metadata.xml
new file mode 100644
index 0000000..d091d82
--- /dev/null
+++ b/Shared.Droid.YCStatusBarLib/Transforms/Metadata.xml
@@ -0,0 +1,10 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+    <!--
+  This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
+  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" />
+  
+  This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
+  <remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
+  -->
+</metadata>
\ No newline at end of file
diff --git a/Shared.IOS.JLCountryCode.dll b/Shared.IOS.JLCountryCode.dll
new file mode 100644
index 0000000..7a7d0cd
--- /dev/null
+++ b/Shared.IOS.JLCountryCode.dll
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/ApiDefinition.cs b/Shared.IOS.JLCountryCode/ApiDefinition.cs
new file mode 100644
index 0000000..ca4733d
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/ApiDefinition.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+
+using ObjCRuntime;
+using Foundation;
+using UIKit;
+
+namespace Shared.IOS.JLCountryCode
+{
+    // typedef void (^selectCountryCodeBlock)(NSString * _Nonnull, NSString * _Nonnull);
+    delegate void selectCountryCodeBlock(string countryName, string code);
+
+    // @interface JLCountryCodeController : UIViewController
+    [BaseType(typeof(UIViewController))]
+    interface JLCountryCodeController
+    {
+        // @property (copy, nonatomic) selectCountryCodeBlock _Nonnull selectCountryCodeBlock;
+        [Export("selectCountryCodeBlock", ArgumentSemantic.Copy)]
+        selectCountryCodeBlock SelectCountryCodeBlock { get; set; }
+    }
+}
+
diff --git a/Shared.IOS.JLCountryCode/Library/countryCodeCH.plist b/Shared.IOS.JLCountryCode/Library/countryCodeCH.plist
new file mode 100755
index 0000000..dedcd9b
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Library/countryCodeCH.plist
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/Library/countryCodeEN.plist b/Shared.IOS.JLCountryCode/Library/countryCodeEN.plist
new file mode 100755
index 0000000..8766c12
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Library/countryCodeEN.plist
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/Library/libJLCountryCode.a b/Shared.IOS.JLCountryCode/Library/libJLCountryCode.a
new file mode 100644
index 0000000..53c2b13
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Library/libJLCountryCode.a
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/Properties/AssemblyInfo.cs b/Shared.IOS.JLCountryCode/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..469151a
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Properties/AssemblyInfo.cs
@@ -0,0 +1,34 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+
+using Foundation;
+
+// This attribute allows you to mark your assemblies as 鈥渟afe to link鈥�.
+// When the attribute is present, the linker鈥攊f enabled鈥攚ill process the assembly
+// even if you鈥檙e using the 鈥淟ink SDK assemblies only鈥� option, which is the default for device builds.
+
+[assembly: LinkerSafe]
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Shared.IOS.JLCountryCode")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Shared.IOS.JLCountryCode")]
+[assembly: AssemblyCopyright("Copyright 漏  2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.3")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Shared.IOS.JLCountryCode/Resources/countryCodeCH.plist b/Shared.IOS.JLCountryCode/Resources/countryCodeCH.plist
new file mode 100755
index 0000000..dedcd9b
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Resources/countryCodeCH.plist
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/Resources/countryCodeEN.plist b/Shared.IOS.JLCountryCode/Resources/countryCodeEN.plist
new file mode 100755
index 0000000..8766c12
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Resources/countryCodeEN.plist
Binary files differ
diff --git a/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.csproj b/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.csproj
new file mode 100644
index 0000000..8ab6c9d
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.csproj
@@ -0,0 +1,59 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectGuid>{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}</ProjectGuid>
+    <TemplateGuid>{b6f3ff35-79b2-4f25-a2fc-60a7cf61013b}</TemplateGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Shared.IOS.JLCountryCode</RootNamespace>
+    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
+    <AssemblyName>Shared.IOS.JLCountryCode</AssemblyName>
+    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="Xamarin.iOS" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingApiDefinition Include="ApiDefinition.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingCoreSource Include="Structs.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <NativeReference Include="Library\libJLCountryCode.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BundleResource Include="Resources\countryCodeCH.plist" />
+    <BundleResource Include="Resources\countryCodeEN.plist" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.sln b/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.sln
new file mode 100644
index 0000000..071d913
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Shared.IOS.JLCountryCode.sln
@@ -0,0 +1,29 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS.JLCountryCode", "Shared.IOS.JLCountryCode.csproj", "{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.Droid.JLCountryCode", "..\Shared.Droid.JLCountryCode\Shared.Droid.JLCountryCode.csproj", "{82A1E78A-69FA-4F09-98B8-EE4E57F57880}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.Droid.YCStatusBarLib", "..\Shared.Droid.YCStatusBarLib\Shared.Droid.YCStatusBarLib.csproj", "{9893D262-A18D-4819-BDF2-ED81A85CD167}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{CA72F24A-973D-4953-BB2C-C5BA130BF1C3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{82A1E78A-69FA-4F09-98B8-EE4E57F57880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{82A1E78A-69FA-4F09-98B8-EE4E57F57880}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{82A1E78A-69FA-4F09-98B8-EE4E57F57880}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{82A1E78A-69FA-4F09-98B8-EE4E57F57880}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9893D262-A18D-4819-BDF2-ED81A85CD167}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9893D262-A18D-4819-BDF2-ED81A85CD167}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9893D262-A18D-4819-BDF2-ED81A85CD167}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9893D262-A18D-4819-BDF2-ED81A85CD167}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+EndGlobal
diff --git a/Shared.IOS.JLCountryCode/Structs.cs b/Shared.IOS.JLCountryCode/Structs.cs
new file mode 100644
index 0000000..64e8621
--- /dev/null
+++ b/Shared.IOS.JLCountryCode/Structs.cs
@@ -0,0 +1,6 @@
+锘縰sing System;
+
+namespace Shared.IOS.JLCountryCode
+{
+}
+
diff --git a/iOS/Jlcountrycode.cs b/iOS/Jlcountrycode.cs
new file mode 100644
index 0000000..d815f8f
--- /dev/null
+++ b/iOS/Jlcountrycode.cs
@@ -0,0 +1,44 @@
+锘縰sing System;
+using Shared.IOS.JLCountryCode;
+
+namespace Jlcountrycode
+{
+    public class CountryCodeView
+    {
+        /// <summary>
+        /// 鎺ュ彛绫荤殑杩斿洖淇℃伅
+        /// </summary>
+        private static CountryCodeView m_Current = null;
+        /// <summary>
+        /// 鎺ュ彛绫荤殑杩斿洖淇℃伅
+        /// </summary>
+        public static CountryCodeView Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new CountryCodeView();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 鍥藉鍖哄彿閫夋嫨
+        /// </summary>
+        /// <param name="action"></param>
+        public void Show(Action<string, string> action)
+        {
+            JLCountryCodeController mJLCountryCodeController = new JLCountryCodeController();
+
+            mJLCountryCodeController.SelectCountryCodeBlock += (countryName, code) =>
+            {
+                action?.Invoke(countryName, code);
+            };
+
+            Shared.Application.currentVC.NavigationController.PushViewController(mJLCountryCodeController, true);
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/iOS/Shared.IOS.JLCountryCode.dll b/iOS/Shared.IOS.JLCountryCode.dll
new file mode 100644
index 0000000..245c88c
--- /dev/null
+++ b/iOS/Shared.IOS.JLCountryCode.dll
Binary files differ

--
Gitblit v1.8.0