diff --git a/.gitignore b/.gitignore index 249a2bc..85c6bda 100644 --- a/.gitignore +++ b/.gitignore @@ -356,3 +356,6 @@ classes.jar nuget.exe nuspec/*.bat .nupkg + +# jadx +*.jobf \ No newline at end of file diff --git a/Bindings.sln b/Bindings.sln index cfbe1f1..924414b 100644 --- a/Bindings.sln +++ b/Bindings.sln @@ -28,9 +28,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{E546AE07-C EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FloatingActionButtonSpeedDial", "source\FloatingActionButtonSpeedDial\FloatingActionButtonSpeedDial.csproj", "{67B8D16C-779C-4914-B319-C93264E37A80}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AndroidLibV2rayLite", "source\AndroidLibV2rayLite\AndroidLibV2rayLite.csproj", "{C25AAEF7-6A83-4C45-81CD-51236FE37E63}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aho-Corasick", "source\Aho-Corasick\Aho-Corasick\Aho-Corasick.csproj", "{D7DC82DB-9D50-4820-B142-1F6C8B8DE608}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aho-Corasick", "source\Aho-Corasick\Aho-Corasick.csproj", "{D7DC82DB-9D50-4820-B142-1F6C8B8DE608}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TinyPinyin", "source\TinyPinyin\TinyPinyin.csproj", "{B7BA1D19-0E61-4B3A-A372-713C64BDED51}" EndProject @@ -72,10 +70,6 @@ Global {67B8D16C-779C-4914-B319-C93264E37A80}.Debug|Any CPU.Build.0 = Debug|Any CPU {67B8D16C-779C-4914-B319-C93264E37A80}.Release|Any CPU.ActiveCfg = Release|Any CPU {67B8D16C-779C-4914-B319-C93264E37A80}.Release|Any CPU.Build.0 = Release|Any CPU - {C25AAEF7-6A83-4C45-81CD-51236FE37E63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C25AAEF7-6A83-4C45-81CD-51236FE37E63}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C25AAEF7-6A83-4C45-81CD-51236FE37E63}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C25AAEF7-6A83-4C45-81CD-51236FE37E63}.Release|Any CPU.Build.0 = Release|Any CPU {D7DC82DB-9D50-4820-B142-1F6C8B8DE608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D7DC82DB-9D50-4820-B142-1F6C8B8DE608}.Debug|Any CPU.Build.0 = Debug|Any CPU {D7DC82DB-9D50-4820-B142-1F6C8B8DE608}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -100,7 +94,6 @@ Global {DE1071D4-66D8-4DD8-9C99-26635136A77A} = {C58C0FC4-86F2-42CD-AE30-F9A633DD5EC1} {B71C18E2-AFC1-42C6-BC1D-15F091F64865} = {C587C244-E7EC-4770-8DD0-A695D69BE9BB} {67B8D16C-779C-4914-B319-C93264E37A80} = {C58C0FC4-86F2-42CD-AE30-F9A633DD5EC1} - {C25AAEF7-6A83-4C45-81CD-51236FE37E63} = {C58C0FC4-86F2-42CD-AE30-F9A633DD5EC1} {D7DC82DB-9D50-4820-B142-1F6C8B8DE608} = {C58C0FC4-86F2-42CD-AE30-F9A633DD5EC1} {B7BA1D19-0E61-4B3A-A372-713C64BDED51} = {C58C0FC4-86F2-42CD-AE30-F9A633DD5EC1} {7A697AF0-692D-45FF-8DC7-1D05260E0892} = {C587C244-E7EC-4770-8DD0-A695D69BE9BB} diff --git a/README.md b/README.md index 04041b5..f556d6d 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,6 @@ Xamarin.Android and ~~Xamarin.iOS~~ binding [![Maven Central](https://img.shields.io/maven-central/v/io.github.biezhi/TinyPinyin)](https://search.maven.org/artifact/io.github.biezhi/TinyPinyin) - Fast, low memory footprint Chinese character to Pinyin library for Android + +## Publish samples\TestApp.Net6 +```dotnet publish "samples\Android.Net6\TestApp.Net6.csproj" -f:net6.0-android -c:Release``` diff --git a/source/SmartRefresh.Header/Jars/SmartRefreshHeader.aar b/aar/SmartRefreshHeader.aar similarity index 100% rename from source/SmartRefresh.Header/Jars/SmartRefreshHeader.aar rename to aar/SmartRefreshHeader.aar diff --git a/source/SmartRefresh.Layout/Jars/SmartRefreshLayout.aar b/aar/SmartRefreshLayout.aar similarity index 100% rename from source/SmartRefresh.Layout/Jars/SmartRefreshLayout.aar rename to aar/SmartRefreshLayout.aar diff --git a/source/de.hdodenhof.circleimageview/Jars/circleimageview.aar b/aar/circleimageview.aar similarity index 100% rename from source/de.hdodenhof.circleimageview/Jars/circleimageview.aar rename to aar/circleimageview.aar diff --git a/source/Google.Flexbox.Android/Jars/flexbox-3.0.0.aar b/aar/com.google.android.flexbox.flexbox.aar similarity index 100% rename from source/Google.Flexbox.Android/Jars/flexbox-3.0.0.aar rename to aar/com.google.android.flexbox.flexbox.aar diff --git a/source/Facebook.Shimmer.Android/Jars/shimmer.aar b/aar/shimmer.aar similarity index 100% rename from source/Facebook.Shimmer.Android/Jars/shimmer.aar rename to aar/shimmer.aar diff --git a/source/FloatingActionButtonSpeedDial/Jars/speed-dial-3.2.0.aar b/aar/speed-dial.aar similarity index 100% rename from source/FloatingActionButtonSpeedDial/Jars/speed-dial-3.2.0.aar rename to aar/speed-dial.aar diff --git a/build/monoandroid10.0/de.hdodenhof.circleimageview.targets b/build/monoandroid10.0/de.hdodenhof.circleimageview.targets new file mode 100644 index 0000000..de5106f --- /dev/null +++ b/build/monoandroid10.0/de.hdodenhof.circleimageview.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid11.0/XAB.FlexboxLayout.targets b/build/monoandroid11.0/XAB.FlexboxLayout.targets new file mode 100644 index 0000000..b71bbff --- /dev/null +++ b/build/monoandroid11.0/XAB.FlexboxLayout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets b/build/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets new file mode 100644 index 0000000..7b5ecb3 --- /dev/null +++ b/build/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid9.0/SmartRefresh.Header.targets b/build/monoandroid9.0/SmartRefresh.Header.targets new file mode 100644 index 0000000..32b9ee9 --- /dev/null +++ b/build/monoandroid9.0/SmartRefresh.Header.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid9.0/SmartRefresh.Layout.targets b/build/monoandroid9.0/SmartRefresh.Layout.targets new file mode 100644 index 0000000..32fa845 --- /dev/null +++ b/build/monoandroid9.0/SmartRefresh.Layout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid9.0/XAB.Aho-Corasick.targets b/build/monoandroid9.0/XAB.Aho-Corasick.targets new file mode 100644 index 0000000..823a393 --- /dev/null +++ b/build/monoandroid9.0/XAB.Aho-Corasick.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid9.0/XAB.Facebook.Shimmer.targets b/build/monoandroid9.0/XAB.Facebook.Shimmer.targets new file mode 100644 index 0000000..35afadc --- /dev/null +++ b/build/monoandroid9.0/XAB.Facebook.Shimmer.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/monoandroid9.0/XAB.TinyPinyin.targets b/build/monoandroid9.0/XAB.TinyPinyin.targets new file mode 100644 index 0000000..0bae83d --- /dev/null +++ b/build/monoandroid9.0/XAB.TinyPinyin.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/SmartRefresh.Header.targets b/build/net6.0-android31.0/SmartRefresh.Header.targets new file mode 100644 index 0000000..32b9ee9 --- /dev/null +++ b/build/net6.0-android31.0/SmartRefresh.Header.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/SmartRefresh.Layout.targets b/build/net6.0-android31.0/SmartRefresh.Layout.targets new file mode 100644 index 0000000..32fa845 --- /dev/null +++ b/build/net6.0-android31.0/SmartRefresh.Layout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/XAB.Aho-Corasick.targets b/build/net6.0-android31.0/XAB.Aho-Corasick.targets new file mode 100644 index 0000000..823a393 --- /dev/null +++ b/build/net6.0-android31.0/XAB.Aho-Corasick.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/XAB.Facebook.Shimmer.targets b/build/net6.0-android31.0/XAB.Facebook.Shimmer.targets new file mode 100644 index 0000000..35afadc --- /dev/null +++ b/build/net6.0-android31.0/XAB.Facebook.Shimmer.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/XAB.FlexboxLayout.targets b/build/net6.0-android31.0/XAB.FlexboxLayout.targets new file mode 100644 index 0000000..b71bbff --- /dev/null +++ b/build/net6.0-android31.0/XAB.FlexboxLayout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets b/build/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets new file mode 100644 index 0000000..7b5ecb3 --- /dev/null +++ b/build/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/XAB.TinyPinyin.targets b/build/net6.0-android31.0/XAB.TinyPinyin.targets new file mode 100644 index 0000000..0bae83d --- /dev/null +++ b/build/net6.0-android31.0/XAB.TinyPinyin.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/build/net6.0-android31.0/de.hdodenhof.circleimageview.targets b/build/net6.0-android31.0/de.hdodenhof.circleimageview.targets new file mode 100644 index 0000000..de5106f --- /dev/null +++ b/build/net6.0-android31.0/de.hdodenhof.circleimageview.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid10.0/de.hdodenhof.circleimageview.targets b/buildTransitive/monoandroid10.0/de.hdodenhof.circleimageview.targets new file mode 100644 index 0000000..de5106f --- /dev/null +++ b/buildTransitive/monoandroid10.0/de.hdodenhof.circleimageview.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid11.0/XAB.FlexboxLayout.targets b/buildTransitive/monoandroid11.0/XAB.FlexboxLayout.targets new file mode 100644 index 0000000..b71bbff --- /dev/null +++ b/buildTransitive/monoandroid11.0/XAB.FlexboxLayout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets b/buildTransitive/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets new file mode 100644 index 0000000..7b5ecb3 --- /dev/null +++ b/buildTransitive/monoandroid11.0/XAB.FloatingActionButtonSpeedDial.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid9.0/SmartRefresh.Header.targets b/buildTransitive/monoandroid9.0/SmartRefresh.Header.targets new file mode 100644 index 0000000..32b9ee9 --- /dev/null +++ b/buildTransitive/monoandroid9.0/SmartRefresh.Header.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid9.0/SmartRefresh.Layout.targets b/buildTransitive/monoandroid9.0/SmartRefresh.Layout.targets new file mode 100644 index 0000000..32fa845 --- /dev/null +++ b/buildTransitive/monoandroid9.0/SmartRefresh.Layout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid9.0/XAB.Aho-Corasick.targets b/buildTransitive/monoandroid9.0/XAB.Aho-Corasick.targets new file mode 100644 index 0000000..823a393 --- /dev/null +++ b/buildTransitive/monoandroid9.0/XAB.Aho-Corasick.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid9.0/XAB.Facebook.Shimmer.targets b/buildTransitive/monoandroid9.0/XAB.Facebook.Shimmer.targets new file mode 100644 index 0000000..35afadc --- /dev/null +++ b/buildTransitive/monoandroid9.0/XAB.Facebook.Shimmer.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/monoandroid9.0/XAB.TinyPinyin.targets b/buildTransitive/monoandroid9.0/XAB.TinyPinyin.targets new file mode 100644 index 0000000..0bae83d --- /dev/null +++ b/buildTransitive/monoandroid9.0/XAB.TinyPinyin.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/SmartRefresh.Header.targets b/buildTransitive/net6.0-android31.0/SmartRefresh.Header.targets new file mode 100644 index 0000000..32b9ee9 --- /dev/null +++ b/buildTransitive/net6.0-android31.0/SmartRefresh.Header.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/SmartRefresh.Layout.targets b/buildTransitive/net6.0-android31.0/SmartRefresh.Layout.targets new file mode 100644 index 0000000..32fa845 --- /dev/null +++ b/buildTransitive/net6.0-android31.0/SmartRefresh.Layout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/XAB.Aho-Corasick.targets b/buildTransitive/net6.0-android31.0/XAB.Aho-Corasick.targets new file mode 100644 index 0000000..823a393 --- /dev/null +++ b/buildTransitive/net6.0-android31.0/XAB.Aho-Corasick.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/XAB.Facebook.Shimmer.targets b/buildTransitive/net6.0-android31.0/XAB.Facebook.Shimmer.targets new file mode 100644 index 0000000..35afadc --- /dev/null +++ b/buildTransitive/net6.0-android31.0/XAB.Facebook.Shimmer.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/XAB.FlexboxLayout.targets b/buildTransitive/net6.0-android31.0/XAB.FlexboxLayout.targets new file mode 100644 index 0000000..b71bbff --- /dev/null +++ b/buildTransitive/net6.0-android31.0/XAB.FlexboxLayout.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets b/buildTransitive/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets new file mode 100644 index 0000000..7b5ecb3 --- /dev/null +++ b/buildTransitive/net6.0-android31.0/XAB.FloatingActionButtonSpeedDial.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/XAB.TinyPinyin.targets b/buildTransitive/net6.0-android31.0/XAB.TinyPinyin.targets new file mode 100644 index 0000000..0bae83d --- /dev/null +++ b/buildTransitive/net6.0-android31.0/XAB.TinyPinyin.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/buildTransitive/net6.0-android31.0/de.hdodenhof.circleimageview.targets b/buildTransitive/net6.0-android31.0/de.hdodenhof.circleimageview.targets new file mode 100644 index 0000000..de5106f --- /dev/null +++ b/buildTransitive/net6.0-android31.0/de.hdodenhof.circleimageview.targets @@ -0,0 +1,15 @@ + + + + + manifestmerger.jar + + + AndroidX.Fragment.App.Fragment + + + + true + + + \ No newline at end of file diff --git a/source/TinyPinyin/XAB.TinyPinyin.xml b/doc/XAB.TinyPinyin.xml similarity index 100% rename from source/TinyPinyin/XAB.TinyPinyin.xml rename to doc/XAB.TinyPinyin.xml diff --git a/samples/Android.Net6/TestApp.Net6.csproj b/samples/Android.Net6/TestApp.Net6.csproj index 1a2e6c7..5192c63 100644 --- a/samples/Android.Net6/TestApp.Net6.csproj +++ b/samples/Android.Net6/TestApp.Net6.csproj @@ -1,4 +1,4 @@ - + net6.0-android @@ -9,26 +9,27 @@ true android-arm;android-arm64;android-x64 true + TestApp - 3.1.0.3 + 3.1.0.4 - 1.1.0.3 + 1.1.0.4 - 1.1.0.3 + 1.1.0.4 - 0.5.0.3 + 0.5.0.4 - 3.0.0.1 + 3.0.0.2 - 2.0.4.3 + 2.0.4.4 1.3.0.3 @@ -63,6 +64,7 @@ + diff --git a/samples/Android/Activities/MainActivity.cs b/samples/Android/Activities/MainActivity.cs index f047702..d972683 100644 --- a/samples/Android/Activities/MainActivity.cs +++ b/samples/Android/Activities/MainActivity.cs @@ -1,37 +1,51 @@ -using System.Linq; +using System; +using System.Linq; using Android.App; using Android.OS; -using Android.Runtime; using Android.Views; using AndroidX.AppCompat.App; -using AndroidX.AppCompat.Widget; -using Java.Interop; using Binding; using TestApp.Utils; using SEnvironment = System.Environment; using Android.Widget; using TinyPinyin; +#nullable enable + namespace TestApp.Activities { [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] public sealed class MainActivity : AppCompatActivity, View.IOnClickListener { - internal activity_main Binding { get; private set; } + internal activity_main? Binding { get; private set; } - public static MainActivity Instance { get; private set; } + static MainActivity? mInstance; + public static MainActivity Instance => mInstance ?? throw new ArgumentNullException(nameof(mInstance)); - protected override void OnCreate(Bundle savedInstanceState) + protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_main); Binding = new activity_main(this); - Instance = this; + mInstance = this; SetSupportActionBar(Binding.toolbar); - Binding.tvText.Text = string.Join(SEnvironment.NewLine, new[] { $"CLR Version: {SEnvironment.Version}" }.Concat(Dependencies.Values)); + Binding.tvText.Text = string.Join(SEnvironment.NewLine, new[] { + $"CLR Version: {SEnvironment.Version}", + MonoVersion, + }.Concat(Dependencies.Values).Where(x => !string.IsNullOrWhiteSpace(x))); + } + + static string? MonoVersion + { + get + { + var value = Dependencies.MonoRuntimeVersion; + if (string.IsNullOrWhiteSpace(value)) return null; + return $"Mono Version: {value}"; + } } - public override bool OnCreateOptionsMenu(IMenu menu) + public override bool OnCreateOptionsMenu(IMenu? menu) { MenuInflater.Inflate(Resource.Menu.menu_main, menu); return true; @@ -48,11 +62,12 @@ public override bool OnOptionsItemSelected(IMenuItem item) return base.OnOptionsItemSelected(item); } - public void OnClick(View view) + public void OnClick(View? view) { + if (view == null) return; if (view.Id == Resource.Id.btnTinyPinyin) { - Toast.MakeText(this, $"{PinyinHelper.GetPinyin("适用于Java和Android的快速、低内存占用的汉字转拼音库。", string.Empty)}", ToastLength.Long).Show(); + Toast.MakeText(this, $"{PinyinHelper.GetPinyin("适用于Java和Android的快速、低内存占用的汉字转拼音库。", string.Empty)}", ToastLength.Long)!.Show(); } else if (view is TextView textView) { diff --git a/samples/Android/Extensions/StringExtensions.Trim.cs b/samples/Android/Extensions/StringExtensions.Trim.cs new file mode 100644 index 0000000..bbaaed0 --- /dev/null +++ b/samples/Android/Extensions/StringExtensions.Trim.cs @@ -0,0 +1,18 @@ +// ReSharper disable once CheckNamespace +namespace System +{ + public static partial class StringExtensions + { + public static string TrimStart(this string s, string trimString) + { + if (trimString.StartsWith(trimString)) + { + return s[trimString.Length..]; + } + else + { + return s; + } + } + } +} \ No newline at end of file diff --git a/samples/Android/Properties/AssemblyInfo.cs b/samples/Android/Properties/AssemblyInfo.cs index 3aa8855..1168acd 100644 --- a/samples/Android/Properties/AssemblyInfo.cs +++ b/samples/Android/Properties/AssemblyInfo.cs @@ -6,6 +6,7 @@ // 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. +#if !NET6_0_OR_GREATER [assembly: AssemblyTitle("TestApp")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] @@ -28,3 +29,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +#endif diff --git a/samples/Android/TestApp.csproj b/samples/Android/TestApp.csproj index a002940..648523d 100644 --- a/samples/Android/TestApp.csproj +++ b/samples/Android/TestApp.csproj @@ -25,7 +25,7 @@ true true true - armeabi-v7a;x86;x86_64;arm64-v8a + armeabi-v7a;x86_64;arm64-v8a H:\Android\android-sdk\ndk\22.1.7171670 @@ -82,6 +82,7 @@ + @@ -127,22 +128,22 @@ - 3.1.0.3 + 3.1.0.4 - 1.1.0.3 + 1.1.0.4 - 1.1.0.3 + 1.1.0.4 - 0.5.0.3 + 0.5.0.4 - 3.0.0.1 + 3.0.0.2 - 2.0.4.3 + 2.0.4.4 1.3.0.3 diff --git a/samples/Android/Utils/Dependencies.cs b/samples/Android/Utils/Dependencies.cs index dfa2284..2172be6 100644 --- a/samples/Android/Utils/Dependencies.cs +++ b/samples/Android/Utils/Dependencies.cs @@ -8,6 +8,8 @@ using System.Linq; using System.Reflection; +#nullable enable + namespace TestApp.Utils { public static class Dependencies @@ -28,7 +30,28 @@ static IEnumerable ReadAssemblyVersion(IEnumerable assemblies) { var value = item.GetCustomAttributes() .FirstOrDefault()?.Version; - if (value != null) yield return $"{item.GetName().Name}: {value}"; + if (value != null) yield return $"{item.GetName().Name.TrimStart("XAB.")}: {value}"; + } + } + + public static string? MonoRuntimeVersion + { + get + { +#if NET6_0_OR_GREATER + var typeRuntime = Type.GetType("Mono.Runtime"); + if (typeRuntime != null) + { + var method = typeRuntime.GetMethod("GetDisplayName", BindingFlags.Static | BindingFlags.Public); + if (method != null && method.ReturnType == typeof(string)) + { + return (string)method.Invoke(null, null); + } + } + return null; +#else + return global::Mono.Runtime.GetDisplayName(); +#endif } } } diff --git a/source/Aho-Corasick/Aho-Corasick/Aho-Corasick.csproj b/source/Aho-Corasick/Aho-Corasick.csproj similarity index 68% rename from source/Aho-Corasick/Aho-Corasick/Aho-Corasick.csproj rename to source/Aho-Corasick/Aho-Corasick.csproj index e6cb450..ff83063 100644 --- a/source/Aho-Corasick/Aho-Corasick/Aho-Corasick.csproj +++ b/source/Aho-Corasick/Aho-Corasick.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 0.6.3 + 0.6.3.1 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,14 +14,16 @@ XAB.Aho-Corasick XAB.Aho-Corasick + Org.Ahocorasick Xamarin Android Binding Library - org.ahocorasick https://github.com/AigioL org.ahocorasick Binding for Xamarin Android. https://github.com/robert-bor/aho-corasick Commonly Used Types: - org.ahocorasick.trie -> Org.Ahocorasick.Trie + org.ahocorasick.interval -> Org.AhoCorasick.Interval + org.ahocorasick.trie -> Org.AhoCorasick.Trie + org.ahocorasick.trie.handler -> Org.AhoCorasick.Trie.Handler - Org.Ahocorasick true true true @@ -34,10 +36,14 @@ - - + + + + + + diff --git a/source/Aho-Corasick/Aho-Corasick/Fix.cs b/source/Aho-Corasick/Fix.cs similarity index 66% rename from source/Aho-Corasick/Aho-Corasick/Fix.cs rename to source/Aho-Corasick/Fix.cs index be19499..7855f41 100644 --- a/source/Aho-Corasick/Aho-Corasick/Fix.cs +++ b/source/Aho-Corasick/Fix.cs @@ -1,10 +1,10 @@ using System; using System.Linq; using System.Collections; -using Android.Runtime; +using Java.Interop; // ReSharper disable once CheckNamespace -namespace Org.Ahocorasick.Interval +namespace Org.AhoCorasick.Interval { partial class IntervalableComparatorByPosition : Java.Util.IComparator { @@ -24,7 +24,7 @@ int Java.Util.IComparator.Compare(Java.Lang.Object? o1, Java.Lang.Object? o2) } // ReSharper disable once CheckNamespace -namespace Org.Ahocorasick.Trie +namespace Org.AhoCorasick.Trie { partial class Payload : Java.Lang.IComparable { @@ -55,20 +55,36 @@ public PayloadEmit(int start, int end, string? keyword, Java.Lang.Object? payloa { } - protected PayloadEmit(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) + protected PayloadEmit(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer) { } } } // ReSharper disable once CheckNamespace -namespace Org.Ahocorasick.Trie.Handler +namespace Org.AhoCorasick.Trie.Handler { partial class AbstractStatefulPayloadEmitHandler { - public virtual bool Emit(PayloadEmit? p0) + public abstract bool Emit(PayloadEmit? emit); + } + + partial class AbstractStatefulPayloadEmitHandlerInvoker + { + public override unsafe bool Emit(PayloadEmit? emit) { - return false; + const string __id = "emit.(Lorg/ahocorasick/trie/PayloadEmit;)Z"; + try + { + JniArgumentValue* __args = stackalloc JniArgumentValue[1]; + __args[0] = new JniArgumentValue((emit == null) ? IntPtr.Zero : ((global::Java.Lang.Object)emit).Handle); + var __rm = _members.InstanceMethods.InvokeVirtualBooleanMethod(__id, this, __args); + return __rm; + } + finally + { + global::System.GC.KeepAlive(emit); + } } } diff --git a/source/Aho-Corasick/Aho-Corasick/Jars/ahocorasick-0.6.3.jar b/source/Aho-Corasick/Jars/ahocorasick.jar similarity index 100% rename from source/Aho-Corasick/Aho-Corasick/Jars/ahocorasick-0.6.3.jar rename to source/Aho-Corasick/Jars/ahocorasick.jar diff --git a/source/Aho-Corasick/Aho-Corasick/Transforms/Metadata.xml b/source/Aho-Corasick/Transforms/Metadata.xml similarity index 62% rename from source/Aho-Corasick/Aho-Corasick/Transforms/Metadata.xml rename to source/Aho-Corasick/Transforms/Metadata.xml index d207f4f..5d9a708 100644 --- a/source/Aho-Corasick/Aho-Corasick/Transforms/Metadata.xml +++ b/source/Aho-Corasick/Transforms/Metadata.xml @@ -8,4 +8,7 @@ --> + Org.AhoCorasick.Interval + Org.AhoCorasick.Trie + Org.AhoCorasick.Trie.Handler diff --git a/source/Facebook.Shimmer.Android/Facebook.Shimmer.Android.csproj b/source/Facebook.Shimmer.Android/Facebook.Shimmer.Android.csproj index d7c8755..93971d3 100644 --- a/source/Facebook.Shimmer.Android/Facebook.Shimmer.Android.csproj +++ b/source/Facebook.Shimmer.Android/Facebook.Shimmer.Android.csproj @@ -5,7 +5,7 @@ true true BSD-3-Clause - 0.5.0.3 + 0.5.0.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ XAB.Facebook.Shimmer XAB.Facebook.Shimmer + Com.Facebook.Shimmer Xamarin Android Binding Library - Facebook.Shimmer https://github.com/AigioL Facebook.Shimmer Binding for Xamarin Android. https://github.com/facebook/shimmer-android @@ -27,14 +28,23 @@ true true snupkg + false + preview + enable - + + + + + + + - + diff --git a/source/Facebook.Shimmer.Android/Transforms/Metadata.xml b/source/Facebook.Shimmer.Android/Transforms/Metadata.xml index 738b2cc..167a210 100644 --- a/source/Facebook.Shimmer.Android/Transforms/Metadata.xml +++ b/source/Facebook.Shimmer.Android/Transforms/Metadata.xml @@ -6,6 +6,12 @@ This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground: --> + + + + + + protected diff --git a/source/FloatingActionButtonSpeedDial/FloatingActionButtonSpeedDial.csproj b/source/FloatingActionButtonSpeedDial/FloatingActionButtonSpeedDial.csproj index efaa1cf..7797771 100644 --- a/source/FloatingActionButtonSpeedDial/FloatingActionButtonSpeedDial.csproj +++ b/source/FloatingActionButtonSpeedDial/FloatingActionButtonSpeedDial.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 3.2.0.3 + 3.2.0.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ XAB.FloatingActionButtonSpeedDial XAB.FloatingActionButtonSpeedDial + Com.Leinardi.Android.Speeddial Xamarin Android Binding Library - com.leinardi.android:speed-dial https://github.com/AigioL com.leinardi.android:speed-dial for Xamarin Android. https://github.com/leinardi/FloatingActionButtonSpeedDial @@ -27,13 +28,21 @@ true true snupkg - $(TargetsForTfmSpecificContentInPackage);CustomContentTarget + false + preview + enable - + + + + + + + @@ -49,12 +58,4 @@ - - - - - lib/net6.0-android31.0 - - - \ No newline at end of file diff --git a/source/FloatingActionButtonSpeedDial/Transforms/Metadata.xml b/source/FloatingActionButtonSpeedDial/Transforms/Metadata.xml index d40fc1b..6d8988c 100644 --- a/source/FloatingActionButtonSpeedDial/Transforms/Metadata.xml +++ b/source/FloatingActionButtonSpeedDial/Transforms/Metadata.xml @@ -6,5 +6,11 @@ This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground: --> + + + + + + ExpansionModeEnum diff --git a/source/Google.Flexbox.Android/Google.Flexbox.Android.csproj b/source/Google.Flexbox.Android/Google.Flexbox.Android.csproj index dff68bc..8f054cf 100644 --- a/source/Google.Flexbox.Android/Google.Flexbox.Android.csproj +++ b/source/Google.Flexbox.Android/Google.Flexbox.Android.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 3.0.0.1 + 3.0.0.2 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ XAB.FlexboxLayout XAB.FlexboxLayout + Android.Flexbox Xamarin Android Binding Library - FlexboxLayout https://github.com/AigioL FlexboxLayout Binding for Xamarin Android. https://github.com/google/flexbox-layout @@ -28,12 +29,21 @@ true true snupkg + false + preview + enable - + + + + + + + diff --git a/source/SmartRefresh.Header/SmartRefresh.Header.csproj b/source/SmartRefresh.Header/SmartRefresh.Header.csproj index 1d07e45..4bba429 100644 --- a/source/SmartRefresh.Header/SmartRefresh.Header.csproj +++ b/source/SmartRefresh.Header/SmartRefresh.Header.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 1.1.0.3 + 1.1.0.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ SmartRefresh.Header XAB.SmartRefresh.Header + Com.Scwang.Smartrefresh.Header Xamarin Android Binding Library - SmartRefresh.Header https://github.com/AigioL SmartRefresh.Header Binding for Xamarin Android. https://github.com/scwang90/SmartRefreshLayout @@ -27,12 +28,21 @@ true true snupkg + false + preview + enable - + + + + + + + diff --git a/source/SmartRefresh.Header/Transforms/Metadata.xml b/source/SmartRefresh.Header/Transforms/Metadata.xml index 91493a2..2eba8d8 100644 --- a/source/SmartRefresh.Header/Transforms/Metadata.xml +++ b/source/SmartRefresh.Header/Transforms/Metadata.xml @@ -6,4 +6,9 @@ This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground: --> + + + + + diff --git a/source/SmartRefresh.Layout/Fix.cs b/source/SmartRefresh.Layout/Fix.cs index f1bb2b1..6a33a8b 100644 --- a/source/SmartRefresh.Layout/Fix.cs +++ b/source/SmartRefresh.Layout/Fix.cs @@ -6,6 +6,10 @@ // ReSharper disable once CheckNamespace namespace Com.Scwang.Smartrefresh.Layout { + /// + /// SmartRefreshLayout's goal is to build a strong, stable and mature pull-down refresh layout framework, and to integrate all kinds of cool, diverse, practical and beautiful Headers and Footers. + /// https://github.com/scwang90/SmartRefreshLayout + /// partial class SmartRefreshLayout { [Register(".ctor", "(Landroid/content/Context;)V", "")] diff --git a/source/SmartRefresh.Layout/SmartRefresh.Layout.csproj b/source/SmartRefresh.Layout/SmartRefresh.Layout.csproj index c180469..159f0de 100644 --- a/source/SmartRefresh.Layout/SmartRefresh.Layout.csproj +++ b/source/SmartRefresh.Layout/SmartRefresh.Layout.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 1.1.0.3 + 1.1.0.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ SmartRefresh.Layout XAB.SmartRefresh.Layout + Com.Scwang.Smartrefresh.Layout Xamarin Android Binding Library - SmartRefresh.Layout https://github.com/AigioL SmartRefresh.Layout Binding for Xamarin Android. https://github.com/scwang90/SmartRefreshLayout @@ -29,12 +30,21 @@ true true snupkg + false + preview + enable - + + + + + + + diff --git a/source/SmartRefresh.Layout/Transforms/Metadata.xml b/source/SmartRefresh.Layout/Transforms/Metadata.xml index 82dc529..0ed7891 100644 --- a/source/SmartRefresh.Layout/Transforms/Metadata.xml +++ b/source/SmartRefresh.Layout/Transforms/Metadata.xml @@ -7,4 +7,9 @@ --> + + + + + \ No newline at end of file diff --git a/source/TinyPinyin/Jars/tinypinyinj-release.aar b/source/TinyPinyin/Jars/tinypinyinj-release.aar deleted file mode 100644 index 8b21ec1..0000000 Binary files a/source/TinyPinyin/Jars/tinypinyinj-release.aar and /dev/null differ diff --git a/source/TinyPinyin/TinyPinyin.csproj b/source/TinyPinyin/TinyPinyin.csproj index b350291..06b9832 100644 --- a/source/TinyPinyin/TinyPinyin.csproj +++ b/source/TinyPinyin/TinyPinyin.csproj @@ -1,12 +1,12 @@  - MonoAndroid12.0;net6.0-android + MonoAndroid9.0;net6.0-android true true Apache-2.0 - 2.0.4.3 + 2.0.4.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -15,6 +15,7 @@ XAB.TinyPinyin XAB.TinyPinyin + TinyPinyin Xamarin Android Binding Library - com.github.promeg:tinypinyin https://github.com/AigioL com.github.promeg:tinypinyin Binding for Xamarin Android. https://github.com/AigioL/TinyPinyin @@ -22,7 +23,6 @@ Commonly Used Types: com.github.promeg.pinyinhelper -> TinyPinyin.PinyinHelper - TinyPinyin false true true @@ -32,21 +32,24 @@ false preview enable - $(TargetsForTfmSpecificContentInPackage);CustomContentTarget - - - - true + false + preview + enable - - + + + + + + + - + @@ -55,18 +58,4 @@ - - - - - - - lib/net6.0-android31.0 - - - \ No newline at end of file diff --git a/source/TinyPinyin/Transforms/Metadata.xml b/source/TinyPinyin/Transforms/Metadata.xml index 2184d47..bbaa468 100644 --- a/source/TinyPinyin/Transforms/Metadata.xml +++ b/source/TinyPinyin/Transforms/Metadata.xml @@ -9,7 +9,7 @@ - + PinyinHelper diff --git a/source/de.hdodenhof.circleimageview/Fix.cs b/source/de.hdodenhof.circleimageview/Fix.cs new file mode 100644 index 0000000..7d71281 --- /dev/null +++ b/source/de.hdodenhof.circleimageview/Fix.cs @@ -0,0 +1,11 @@ +namespace DE.Hdodenhof.Circleimageview +{ + /// + /// A fast circular ImageView perfect for profile images. + /// https://github.com/hdodenhof/CircleImageView + /// + partial class CircleImageView + { + + } +} diff --git a/source/de.hdodenhof.circleimageview/Transforms/Metadata.xml b/source/de.hdodenhof.circleimageview/Transforms/Metadata.xml index 91493a2..2c2eb44 100644 --- a/source/de.hdodenhof.circleimageview/Transforms/Metadata.xml +++ b/source/de.hdodenhof.circleimageview/Transforms/Metadata.xml @@ -6,4 +6,9 @@ This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground: --> + + + + + diff --git a/source/de.hdodenhof.circleimageview/de.hdodenhof.circleimageview.csproj b/source/de.hdodenhof.circleimageview/de.hdodenhof.circleimageview.csproj index c9fde52..ae99be3 100644 --- a/source/de.hdodenhof.circleimageview/de.hdodenhof.circleimageview.csproj +++ b/source/de.hdodenhof.circleimageview/de.hdodenhof.circleimageview.csproj @@ -5,7 +5,7 @@ true true Apache-2.0 - 3.1.0.3 + 3.1.0.4 git https://github.com/AigioL/xamarin-bindings https://github.com/AigioL/xamarin-bindings.git @@ -14,6 +14,7 @@ de.hdodenhof.circleimageview XAB.de.hdodenhof.circleimageview + DE.Hdodenhof.Circleimageview Xamarin Android Binding Library - de.hdodenhof.circleimageview https://github.com/AigioL de.hdodenhof.circleimageview Binding for Xamarin Android. https://github.com/hdodenhof/CircleImageView @@ -27,13 +28,21 @@ true true snupkg - $(TargetsForTfmSpecificContentInPackage);CustomContentTarget + false + preview + enable - + + + + + + + @@ -46,12 +55,4 @@ - - - - - lib/net6.0-android31.0 - - - \ No newline at end of file