From 20b46af91b69e2388f47f767ff00d90406f9c778 Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Tue, 8 Dec 2020 22:56:20 +0100 Subject: [PATCH 01/17] added Kotlinx.Coroutines 1.4.1 --- .../External-Dependency-Info.txt | 213 ++++++++++++++++++ .../KotlinxCoroutines/KotlinxCoroutines.sln | 55 +++++ Android/KotlinxCoroutines/License.md | 19 ++ Android/KotlinxCoroutines/build.cake | 110 +++++++++ Android/KotlinxCoroutines/cgmanifest.json | 65 ++++++ .../Kotlinx.Coroutines.Android.csproj | 52 +++++ .../Transforms/Metadata.xml | 5 + .../Kotlinx.Coroutines.Core.Jvm.csproj | 49 ++++ .../Transforms/Metadata.xml | 9 + .../Kotlinx.Coroutines.Core.csproj | 49 ++++ .../Transforms/Metadata.xml | 8 + .../Kotlinx.Coroutines.Jdk8.csproj | 52 +++++ .../Transforms/Metadata.xml | 3 + .../Kotlinx.Coroutines.Reactive.csproj | 53 +++++ .../Transforms/Metadata.xml | 3 + .../Kotlinx.Coroutines.Rx2.csproj | 54 +++++ .../Transforms/Metadata.xml | 3 + 17 files changed, 802 insertions(+) create mode 100644 Android/KotlinxCoroutines/External-Dependency-Info.txt create mode 100644 Android/KotlinxCoroutines/KotlinxCoroutines.sln create mode 100644 Android/KotlinxCoroutines/License.md create mode 100644 Android/KotlinxCoroutines/build.cake create mode 100644 Android/KotlinxCoroutines/cgmanifest.json create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml diff --git a/Android/KotlinxCoroutines/External-Dependency-Info.txt b/Android/KotlinxCoroutines/External-Dependency-Info.txt new file mode 100644 index 0000000000..b088fa7ba2 --- /dev/null +++ b/Android/KotlinxCoroutines/External-Dependency-Info.txt @@ -0,0 +1,213 @@ +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do not translate or localize + +Xamarin Components for Kotlinx Coroutines incorporates +third party material from the projects listed below. The original copyright +notice and the license under which Microsoft received such third party +material are set forth below. Microsoft reserves all other rights not +expressly granted, whether by implication, estoppel or otherwise. + +######################################## +# Kotlinx Coroutines +# https://github.com/Kotlin/kotlinx.coroutines +######################################## + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Android/KotlinxCoroutines/KotlinxCoroutines.sln b/Android/KotlinxCoroutines/KotlinxCoroutines.sln new file mode 100644 index 0000000000..91e366a81d --- /dev/null +++ b/Android/KotlinxCoroutines/KotlinxCoroutines.sln @@ -0,0 +1,55 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30717.126 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Core", "source\Kotlinx.Coroutines.Core\Kotlinx.Coroutines.Core.csproj", "{ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Android", "source\Kotlinx.Coroutines.Android\Kotlinx.Coroutines.Android.csproj", "{C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Core.Jvm", "source\Kotlinx.Coroutines.Core.Jvm\Kotlinx.Coroutines.Core.Jvm.csproj", "{FD684F53-BBBB-4E7A-8197-829A92AA32D8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Jdk8", "source\Kotlinx.Coroutines.Jdk8\Kotlinx.Coroutines.Jdk8.csproj", "{A9826864-B261-45C1-A19C-992A3BE7D1FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Reactive", "source\Kotlinx.Coroutines.Reactive\Kotlinx.Coroutines.Reactive.csproj", "{779DAC7E-4C3C-4514-97DF-272A423F7863}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Rx2", "source\Kotlinx.Coroutines.Rx2\Kotlinx.Coroutines.Rx2.csproj", "{7BEB9F77-2739-4F18-A714-EDB03BDC7E53}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}.Release|Any CPU.Build.0 = Release|Any CPU + {FD684F53-BBBB-4E7A-8197-829A92AA32D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD684F53-BBBB-4E7A-8197-829A92AA32D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD684F53-BBBB-4E7A-8197-829A92AA32D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD684F53-BBBB-4E7A-8197-829A92AA32D8}.Release|Any CPU.Build.0 = Release|Any CPU + {A9826864-B261-45C1-A19C-992A3BE7D1FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9826864-B261-45C1-A19C-992A3BE7D1FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9826864-B261-45C1-A19C-992A3BE7D1FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9826864-B261-45C1-A19C-992A3BE7D1FE}.Release|Any CPU.Build.0 = Release|Any CPU + {779DAC7E-4C3C-4514-97DF-272A423F7863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {779DAC7E-4C3C-4514-97DF-272A423F7863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {779DAC7E-4C3C-4514-97DF-272A423F7863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {779DAC7E-4C3C-4514-97DF-272A423F7863}.Release|Any CPU.Build.0 = Release|Any CPU + {7BEB9F77-2739-4F18-A714-EDB03BDC7E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BEB9F77-2739-4F18-A714-EDB03BDC7E53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BEB9F77-2739-4F18-A714-EDB03BDC7E53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BEB9F77-2739-4F18-A714-EDB03BDC7E53}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CAC0F9D3-A924-4A83-8ED8-6DE2B30345DE} + EndGlobalSection +EndGlobal diff --git a/Android/KotlinxCoroutines/License.md b/Android/KotlinxCoroutines/License.md new file mode 100644 index 0000000000..877e4d936c --- /dev/null +++ b/Android/KotlinxCoroutines/License.md @@ -0,0 +1,19 @@ +**Xamarin is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may require or install dependencies which are governed by additional licenses.** + +Note: This component depends on +Kotlinx Coroutines [kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) which is subject to the [Apache 2.0](https://github.com/Kotlin/kotlinx.coroutines/blob/master/LICENSE.txt) + +### Xamarin Component for Kotlinx Coroutines for Xamarin.Android + +**The MIT License (MIT)** + +Copyright (c) .NET Foundation Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +20160601 + diff --git a/Android/KotlinxCoroutines/build.cake b/Android/KotlinxCoroutines/build.cake new file mode 100644 index 0000000000..ca773b7ee1 --- /dev/null +++ b/Android/KotlinxCoroutines/build.cake @@ -0,0 +1,110 @@ +#addin nuget:?package=SharpZipLib&version=1.3.1 + +var TARGET = Argument ("t", Argument ("target", "ci")); + +var KOTLINX_VERSION = "1.4.1"; +var KOTLINX_NUGET_VERSION = "1.4.1"; + +var KOTLINX_CORE_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/{KOTLINX_VERSION}/kotlinx-coroutines-core-{KOTLINX_VERSION}.jar"; +var KOTLINX_CORE_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/{KOTLINX_VERSION}/kotlinx-coroutines-core-{KOTLINX_VERSION}-javadoc.jar"; + +var KOTLINX_ANDROID_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-android/{KOTLINX_VERSION}/kotlinx-coroutines-android-{KOTLINX_VERSION}.jar"; +var KOTLINX_ANDROID_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-android/{KOTLINX_VERSION}/kotlinx-coroutines-android-{KOTLINX_VERSION}-javadoc.jar"; + +var KOTLINX_JDK8_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/{KOTLINX_VERSION}/kotlinx-coroutines-jdk8-{KOTLINX_VERSION}.jar"; +var KOTLINX_JDK8_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/{KOTLINX_VERSION}/kotlinx-coroutines-jdk8-{KOTLINX_VERSION}-javadoc.jar"; + +var KOTLINX_JVM_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/{KOTLINX_VERSION}/kotlinx-coroutines-core-jvm-{KOTLINX_VERSION}.jar"; +var KOTLINX_JVM_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/{KOTLINX_VERSION}/kotlinx-coroutines-core-jvm-{KOTLINX_VERSION}-javadoc.jar"; + +var KOTLINX_REACTIVE_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-reactive/{KOTLINX_VERSION}/kotlinx-coroutines-reactive-{KOTLINX_VERSION}.jar"; +var KOTLINX_REACTIVE_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-reactive/{KOTLINX_VERSION}/kotlinx-coroutines-reactive-{KOTLINX_VERSION}-javadoc.jar"; + +var KOTLINX_RX2_JAR_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-rx2/{KOTLINX_VERSION}/kotlinx-coroutines-rx2-{KOTLINX_VERSION}.jar"; +var KOTLINX_RX2_DOCS_URL = $"https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-rx2/{KOTLINX_VERSION}/kotlinx-coroutines-rx2-{KOTLINX_VERSION}-javadoc.jar"; + + +Task ("externals") + .WithCriteria (!FileExists ("./externals/kotlinx-coroutines-core.jar")) + .Does (() => +{ + EnsureDirectoryExists ("./externals/"); + + // Download Dependencies + DownloadFile (KOTLINX_CORE_JAR_URL, "./externals/kotlinx-coroutines-core.jar"); + DownloadFile (KOTLINX_CORE_DOCS_URL, "./externals/kotlinx-coroutines-core-javadocs.jar"); + + DownloadFile (KOTLINX_ANDROID_JAR_URL, "./externals/kotlinx-coroutines-android.jar"); + DownloadFile (KOTLINX_ANDROID_DOCS_URL, "./externals/kotlinx-coroutines-android-javadocs.jar"); + + DownloadFile (KOTLINX_JDK8_JAR_URL, "./externals/kotlinx-coroutines-jdk8.jar"); + DownloadFile (KOTLINX_JDK8_DOCS_URL, "./externals/kotlinx-coroutines-jdk8-javadocs.jar"); + + DownloadFile (KOTLINX_JVM_JAR_URL, "./externals/kotlinx-coroutines-core-jvm.jar"); + DownloadFile (KOTLINX_JVM_DOCS_URL, "./externals/kotlinx-coroutines-core-jvm-javadocs.jar"); + + DownloadFile (KOTLINX_REACTIVE_JAR_URL, "./externals/kotlinx-coroutines-reactive.jar"); + DownloadFile (KOTLINX_REACTIVE_DOCS_URL, "./externals/kotlinx-coroutines-reactive-javadocs.jar"); + + DownloadFile (KOTLINX_RX2_JAR_URL, "./externals/kotlinx-coroutines-rx2.jar"); + DownloadFile (KOTLINX_RX2_DOCS_URL, "./externals/kotlinx-coroutines-rx2-javadocs.jar"); + + Unzip ("./externals/kotlinx-coroutines-core-javadocs.jar", "./externals/kotlinx-coroutines-core-javadocs/"); + Unzip ("./externals/kotlinx-coroutines-android-javadocs.jar", "./externals/kotlinx-coroutines-android-javadocs/"); + Unzip ("./externals/kotlinx-coroutines-jdk8-javadocs.jar", "./externals/kotlinx-coroutines-jdk8-javadocs/"); + Unzip ("./externals/kotlinx-coroutines-core-jvm-javadocs.jar", "./externals/kotlinx-coroutines-core-jvm-javadocs/"); + Unzip ("./externals/kotlinx-coroutines-reactive-javadocs.jar", "./externals/kotlinx-coroutines-reactive-javadocs/"); + Unzip ("./externals/kotlinx-coroutines-rx2-javadocs.jar", "./externals/kotlinx-coroutines-rx2-javadocs/"); + + + // Update .csproj nuget versions + XmlPoke("./source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); +}); + + +Task("libs") + .IsDependentOn("externals") + .Does(() => +{ + MSBuild("./KotlinxCoroutines.sln", c => { + c.Configuration = "Release"; + c.Restore = true; + c.Properties.Add("DesignTimeBuild", new [] { "false" }); + }); +}); + +Task("nuget") + .IsDependentOn("libs") + .Does(() => +{ + MSBuild ("./KotlinxCoroutines.sln", c => { + c.Configuration = "Release"; + c.Targets.Clear(); + c.Targets.Add("Pack"); + c.Properties.Add("PackageOutputPath", new [] { MakeAbsolute(new FilePath("./output")).FullPath }); + c.Properties.Add("PackageRequireLicenseAcceptance", new [] { "true" }); + c.Properties.Add("DesignTimeBuild", new [] { "false" }); + }); +}); + +Task("samples") + .IsDependentOn("nuget"); + +Task("ci") + .IsDependentOn("externals") + .IsDependentOn("nuget") + .IsDependentOn("samples"); + +Task ("clean") + .Does (() => +{ + if (DirectoryExists ("./externals/")) + DeleteDirectory ("./externals", true); +}); + +RunTarget (TARGET); diff --git a/Android/KotlinxCoroutines/cgmanifest.json b/Android/KotlinxCoroutines/cgmanifest.json new file mode 100644 index 0000000000..2a457a7f94 --- /dev/null +++ b/Android/KotlinxCoroutines/cgmanifest.json @@ -0,0 +1,65 @@ +{ + "Registrations":[ + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-core", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + }, + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-android", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + }, + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-jdk8", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + }, + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-core-jvm", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + }, + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-reactive", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + }, + { + "Component": { + "Type": "Maven", + "Maven": { + "ArtifactId": "kotlinx-coroutines-rx2", + "GroupId": "org.jetbrains.kotlinx", + "Version": "1.4.1 " + } + } + } + ], + "Version": 1 +} \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj new file mode 100644 index 0000000000..fa72ce5025 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj @@ -0,0 +1,52 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Android + False + True + Kotlinx.Coroutines.Android + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-android\ + + + + Xamarin.Kotlinx.Coroutines.Android + Kotlinx.Coroutines.Android reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Android + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml new file mode 100644 index 0000000000..6ecb93ad72 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml @@ -0,0 +1,5 @@ + + + Kotlinx.Coroutines.MainCoroutineDispatcher + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj new file mode 100644 index 0000000000..73bf67f980 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj @@ -0,0 +1,49 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Core.Jvm + False + True + Kotlinx.Coroutines.Core.Jvm + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-core-jvm\ + + + + Xamarin.Kotlinx.Coroutines.Core.Jvm + Kotlinx.Coroutines.Core.Jvm reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Core + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml new file mode 100644 index 0000000000..82ab2a0a04 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj new file mode 100644 index 0000000000..902788c4f6 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj @@ -0,0 +1,49 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Core + False + True + Kotlinx.Coroutines.Core + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-core\ + + + + Xamarin.Kotlinx.Coroutines.Core + Kotlinx.Coroutines.Core reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Core + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml new file mode 100644 index 0000000000..af63854ec4 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj new file mode 100644 index 0000000000..e580876ace --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj @@ -0,0 +1,52 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Jdk8 + False + True + Kotlinx.Coroutines.Jdk8 + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-jdk8\ + + + + Xamarin.Kotlinx.Coroutines.Jdk8 + Kotlinx.Coroutines.Jdk8 reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Jdk8 + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml new file mode 100644 index 0000000000..21ccff5fa3 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml @@ -0,0 +1,3 @@ + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj new file mode 100644 index 0000000000..0349cf7296 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj @@ -0,0 +1,53 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Reactive + False + True + Kotlinx.Coroutines.Reactive + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-reactive\ + + + + Xamarin.Kotlinx.Coroutines.Reactive + Kotlinx.Coroutines.Reactive reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Reactive + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml new file mode 100644 index 0000000000..21ccff5fa3 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml @@ -0,0 +1,3 @@ + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj new file mode 100644 index 0000000000..61fb35801b --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj @@ -0,0 +1,54 @@ + + + + MonoAndroid10.0 + true + Xamarin.Kotlinx.Coroutines.Rx2 + False + True + Kotlinx.Coroutines.Rx2 + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-rx2\ + + + + Xamarin.Kotlinx.Coroutines.Rx2 + Kotlinx.Coroutines.Rx2 reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Rx2 + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml new file mode 100644 index 0000000000..21ccff5fa3 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml @@ -0,0 +1,3 @@ + + + From a88f18eba2e095940b84b1a62c5ef7d23c51cb1c Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Tue, 8 Dec 2020 23:19:32 +0100 Subject: [PATCH 02/17] Added KotlinxCoroutines to manifest.yaml --- manifest.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/manifest.yaml b/manifest.yaml index e5ad9969c4..32be4a401c 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -345,6 +345,11 @@ TriggerPaths: [ Android/SquareMoshi ] MacBuildTargets: [ ci ] WindowsBuildTargets: [ ci ] +- Name: KotlinxCoroutines + BuildScript: ./Android/KotlinxCoroutines/build.cake + TriggerPaths: [ Android/KotlinxCoroutines ] + WindowsBuildTargets: [ ci ] + MacBuildTargets: [ ci ] # will be XPlat in the future - Name: TensorFlow.Lite From 42339fd682524f80798ccbd4c6dfb0759a0efea6 Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sun, 20 Dec 2020 19:35:59 +0100 Subject: [PATCH 03/17] fix namespace --- .../Kotlinx.Coroutines.Android.csproj | 4 ++-- .../Transforms/Metadata.xml | 3 ++- .../Kotlinx.Coroutines.Core.Jvm.csproj | 4 ++-- .../Transforms/Metadata.xml | 11 ++++++----- .../Kotlinx.Coroutines.Core.csproj | 4 ++-- .../Kotlinx.Coroutines.Core/Transforms/Metadata.xml | 2 ++ .../Kotlinx.Coroutines.Jdk8.csproj | 4 ++-- .../Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml | 3 +++ .../Kotlinx.Coroutines.Reactive.csproj | 4 ++-- .../Transforms/Metadata.xml | 1 + .../Kotlinx.Coroutines.Rx2.csproj | 4 ++-- .../Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml | 1 + 12 files changed, 27 insertions(+), 18 deletions(-) diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj index fa72ce5025..c1e97a4bb8 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Android False True - Kotlinx.Coroutines.Android + Xamarin.Kotlinx.Coroutines.Android class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-android\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml index 6ecb93ad72..6469536298 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml @@ -1,5 +1,6 @@  - Kotlinx.Coroutines.MainCoroutineDispatcher + Xamarin.Kotlinx.Coroutines.Android + Kotlinx.Coroutines.MainCoroutineDispatcher diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj index 73bf67f980..4c2cef5135 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Core.Jvm False True - Kotlinx.Coroutines.Core.Jvm + Xamarin.Kotlinx.Coroutines.Core.Jvm class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-core-jvm\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml index 82ab2a0a04..03ce4f2b67 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -1,9 +1,10 @@  - - - - - + Xamarin.Kotlinx.Coroutines + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj index 902788c4f6..cc0fadba73 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Core False True - Kotlinx.Coroutines.Core + Xamarin.Kotlinx.Coroutines.Core class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-core\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml index af63854ec4..3006e28598 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml @@ -1,5 +1,7 @@  + Xamarin.Kotlinx.Coroutines + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj index e580876ace..b2b64149fd 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Jdk8 False True - Kotlinx.Coroutines.Jdk8 + Xamarin.Kotlinx.Coroutines.Jdk8 class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-jdk8\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml index 21ccff5fa3..f2abfde9ae 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml @@ -1,3 +1,6 @@  + Xamarin.Kotlinx.Coroutines.Future + Xamarin.Kotlinx.Coroutines.Stream + Xamarin.Kotlinx.Coroutines.Time diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj index 0349cf7296..f4619e4c38 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Reactive False True - Kotlinx.Coroutines.Reactive + Xamarin.Kotlinx.Coroutines.Reactive class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-reactive\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml index 21ccff5fa3..b3bee65222 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml @@ -1,3 +1,4 @@  + Xamarin.Kotlinx.Coroutines.Reactive diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj index 61fb35801b..f8463235ab 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj @@ -6,7 +6,7 @@ Xamarin.Kotlinx.Coroutines.Rx2 False True - Kotlinx.Coroutines.Rx2 + Xamarin.Kotlinx.Coroutines.Rx2 class-parse XAJavaInterop1 ..\..\externals\kotlinx-coroutines-rx2\ @@ -34,7 +34,7 @@ - + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml index 21ccff5fa3..e11b6f0ff7 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml @@ -1,3 +1,4 @@  + Xamarin.Kotlinx.Coroutines.Rx2 From 7b0af54ac43bf0a50d75fce4499d833716f0c82d Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sun, 20 Dec 2020 23:27:57 +0100 Subject: [PATCH 04/17] added sample app, fixed bindings, added targets --- Android/KotlinxCoroutines/build.cake | 25 ++- .../native/KotlinxCoroutinesSample/.gitignore | 8 + .../.idea/caches/build_file_checksums.ser | Bin 0 -> 556 bytes .../KotlinxCoroutinesSample/build.gradle | 27 +++ .../KotlinxCoroutinesSample/gradle.properties | 21 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../native/KotlinxCoroutinesSample/gradlew | 172 ++++++++++++++++++ .../KotlinxCoroutinesSample/gradlew.bat | 84 +++++++++ .../kotlinxcoroutinessample/.gitignore | 1 + .../kotlinxcoroutinessample/build.gradle | 35 ++++ .../proguard-rules.pro | 21 +++ .../src/main/AndroidManifest.xml | 9 + .../KotlinxCoroutineTestClass.kt | 40 ++++ .../KotlinxCoroutinesSample/settings.gradle | 1 + .../samples/KotlinxCoroutinesSample.sln | 31 ++++ .../Assets/AboutAssets.txt | 19 ++ .../KotlinxCoroutinesSample.csproj | 127 +++++++++++++ .../KotlinxCoroutinesSample/MainActivity.cs | 48 +++++ .../Properties/AndroidManifest.xml | 5 + .../Properties/AssemblyInfo.cs | 26 +++ .../Resources/AboutResources.txt | 44 +++++ .../Resources/layout/activity_main.xml | 14 ++ .../mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../Resources/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1634 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 1441 bytes .../mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3552 bytes .../Resources/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1362 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 958 bytes .../mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2413 bytes .../Resources/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2307 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 2056 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4858 bytes .../Resources/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 3871 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 3403 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 8001 bytes .../Resources/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5016 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 4889 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10893 bytes .../Resources/values/colors.xml | 6 + .../values/ic_launcher_background.xml | 4 + .../Resources/values/strings.xml | 5 + .../Resources/values/styles.xml | 10 + .../Additions/AboutAdditions.txt | 48 +++++ .../Jars/AboutJars.txt | 24 +++ .../KotlinxCoroutinesSampleLibrary.csproj | 69 +++++++ .../Properties/AssemblyInfo.cs | 26 +++ .../Transforms/EnumFields.xml | 15 ++ .../Transforms/EnumMethods.xml | 14 ++ .../Transforms/Metadata.xml | 10 + .../KotlinxCoroutines/samples/nuget.config | 7 + .../Kotlinx.Coroutines.Android.csproj | 8 +- .../Transforms/Metadata.xml | 2 +- ...Xamarin.Kotlinx.Coroutines.Android.targets | 8 + .../Kotlinx.Coroutines.Core.Jvm.csproj | 8 +- .../Transforms/Metadata.xml | 12 ++ ...amarin.Kotlinx.Coroutines.Core.Jvm.targets | 8 + .../Kotlinx.Coroutines.Core.csproj | 8 +- .../Transforms/Metadata.xml | 22 ++- .../Xamarin.Kotlinx.Coroutines.Core.targets | 8 + .../Kotlinx.Coroutines.Jdk8.csproj | 12 +- .../Xamarin.Kotlinx.Coroutines.Jdk8.targets | 8 + .../Kotlinx.Coroutines.Reactive.csproj | 10 +- ...amarin.Kotlinx.Coroutines.Reactive.targets | 8 + .../Kotlinx.Coroutines.Rx2.csproj | 11 +- .../Xamarin.Kotlinx.Coroutines.Rx2.targets | 8 + 67 files changed, 1128 insertions(+), 25 deletions(-) create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties create mode 100755 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt create mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml create mode 100644 Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml create mode 100644 Android/KotlinxCoroutines/samples/nuget.config create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets create mode 100644 Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets diff --git a/Android/KotlinxCoroutines/build.cake b/Android/KotlinxCoroutines/build.cake index ca773b7ee1..ceb781cf50 100644 --- a/Android/KotlinxCoroutines/build.cake +++ b/Android/KotlinxCoroutines/build.cake @@ -66,6 +66,17 @@ Task ("externals") XmlPoke("./source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); }); +Task("native") + .Does(() => +{ + var fn = IsRunningOnWindows() ? "gradlew.bat" : "gradlew"; + var gradlew = MakeAbsolute((FilePath)("./native/KotlinxCoroutinesSample/" + fn)); + var exit = StartProcess(gradlew, new ProcessSettings { + Arguments = "assemble", + WorkingDirectory = "./native/KotlinxCoroutinesSample/" + }); + if (exit != 0) throw new Exception($"Gradle exited with exit code {exit}."); +}); Task("libs") .IsDependentOn("externals") @@ -93,7 +104,19 @@ Task("nuget") }); Task("samples") - .IsDependentOn("nuget"); + .IsDependentOn("native") + .IsDependentOn("nuget") + .Does(() => +{ + var settings = new MSBuildSettings() + .SetConfiguration("Release") + .SetVerbosity(Verbosity.Minimal) + .EnableBinaryLogger("./output/samples.binlog") + .WithRestore() + .WithProperty("DesignTimeBuild", "false"); + + MSBuild("./samples/KotlinxCoroutinesSample.sln", settings); +}); Task("ci") .IsDependentOn("externals") diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore new file mode 100644 index 0000000000..09b993d06b --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..1ae0562feded3c42487cae88fee5c90d8adc2c34 GIT binary patch literal 556 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}QPHR4k|6tA3qa&xxTGM$iVzidM&MaZz zNdoy7rmK*lj)4uNFl0#}^Db{2qc{Ke`+hmYQ&++ukdvRBm;(x}g4Cjt%+%sixZ;7EN*Dz3 YSjXhMI{Vws|F5PeYiP%d9ucVk0Gz+WZ2$lO literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle new file mode 100644 index 0000000000..69507c3eec --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = "1.4.0" + ext.kotlinx_coroutines_version = "1.4.1" + repositories { + google() + jcenter() + } + dependencies { + classpath "com.android.tools.build:gradle:4.1.1" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties new file mode 100644 index 0000000000..98bed167dc --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 GIT binary patch literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..367bdd3db7 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Dec 20 21:47:20 CET 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew new file mode 100755 index 0000000000..cccdd3d517 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat new file mode 100644 index 0000000000..e95643d6a2 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle new file mode 100644 index 0000000000..b8e38ded08 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle @@ -0,0 +1,35 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 29 + + defaultConfig { + minSdkVersion 19 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinx_coroutines_version" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinx_coroutines_version" + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + testImplementation 'junit:junit:4.13.1' + testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinx_coroutines_version" +} \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..c7b2bc90e7 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt new file mode 100644 index 0000000000..3f2d6459a1 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt @@ -0,0 +1,40 @@ +package com.example.kotlinxcoroutinessample + +import android.widget.TextView +import kotlinx.coroutines.* + +class KotlinxCoroutineTestClass(private val textView: TextView) { + + fun testGlobalScope() { + GlobalScope.launch { // launch a new coroutine in background and continue + delay(1000L) + addTextToTextView("Kotlinx Coroutine!\n") + } + addTextToTextView("Hello, ") + } + + fun testScopeBuilder(){ + runBlocking { // this: CoroutineScope + launch { + delay(200L) + addTextToTextView("\n2. Task from runBlocking") + } + + coroutineScope { // Creates a coroutine scope + launch { + delay(500L) + addTextToTextView("\n3. Task from nested launch") + } + + delay(100L) + addTextToTextView("\n1. Task from coroutine scope") // This line will be printed before the nested launch + } + + addTextToTextView("\n4. Coroutine scope is over") // This line is not printed until the nested launch completes + } + } + + private fun addTextToTextView(text: String) { + textView.append(text) + } +} \ No newline at end of file diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle new file mode 100644 index 0000000000..c4ccd65881 --- /dev/null +++ b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle @@ -0,0 +1 @@ +include ':kotlinxcoroutinessample' \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln new file mode 100644 index 0000000000..c711e4bc69 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.808.4 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KotlinxCoroutinesSample", "KotlinxCoroutinesSample\KotlinxCoroutinesSample.csproj", "{46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KotlinxCoroutinesSampleLibrary", "KotlinxCoroutinesSampleLibrary\KotlinxCoroutinesSampleLibrary.csproj", "{7990AD17-9BDE-475D-94C9-E38595AB8EC2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4}.Release|Any CPU.Build.0 = Release|Any CPU + {7990AD17-9BDE-475D-94C9-E38595AB8EC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7990AD17-9BDE-475D-94C9-E38595AB8EC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7990AD17-9BDE-475D-94C9-E38595AB8EC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7990AD17-9BDE-475D-94C9-E38595AB8EC2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {827A854B-5EA3-49F0-9125-F66B156464AD} + EndGlobalSection +EndGlobal diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt new file mode 100644 index 0000000000..dcb04096ff --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with your package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj new file mode 100644 index 0000000000..01d436cc64 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj @@ -0,0 +1,127 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {46AAB3CE-6E71-4D4F-96F0-416E2C7DD9B4} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {122416d6-6b49-4ee2-a1e8-b825f31c79fe} + Library + Properties + KotlinxCoroutinesSample + KotlinxCoroutinesSample + 512 + True + True + Resources\Resource.designer.cs + Resource + Off + v10.0 + Properties\AndroidManifest.xml + Resources + Assets + true + true + + + True + portable + False + bin\Debug\ + DEBUG;TRACE + prompt + 4 + True + None + False + + + True + portable + True + bin\Release\ + TRACE + prompt + 4 + true + False + SdkOnly + True + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4.1 + + + 1.4.20 + + + + + {7990AD17-9BDE-475D-94C9-E38595AB8EC2} + KotlinxCoroutinesSampleLibrary + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs new file mode 100644 index 0000000000..1e66c1d902 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs @@ -0,0 +1,48 @@ +using System; +using System.Threading; +using Android.App; +using Android.OS; +using Android.Runtime; +using Android.Widget; +using AndroidX.AppCompat.App; + +namespace KotlinxCoroutinesSample +{ + [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] + public class MainActivity : AppCompatActivity + { + private TextView textView; + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + // Set our view from the "main" layout resource + SetContentView(Resource.Layout.activity_main); + + textView = FindViewById(Resource.Id.textView); + textView.Text = ""; + + KotlinxCoroutinesTestGlobalScope(); + + Thread.Sleep(3000); + + KotlinxCoroutinesTestScopeBuilder(); + + textView.Append("\n\nEnd\n\n"); + } + + private void KotlinxCoroutinesTestScopeBuilder() + { + var k = new Com.Example.Kotlinxcoroutinessample.KotlinxCoroutineTestClass(textView); + + k.TestScopeBuilder(); + } + + private void KotlinxCoroutinesTestGlobalScope() + { + var k = new Com.Example.Kotlinxcoroutinessample.KotlinxCoroutineTestClass(textView); + + k.TestGlobalScope(); + } + } +} \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml new file mode 100644 index 0000000000..2399b10595 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..158e937476 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using 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("KotlinxCoroutinesSample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("KotlinxCoroutinesSample")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[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 +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt new file mode 100644 index 0000000000..096447a90d --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.xml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.xml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.xml file, or R.strings.first_string to reference the first +string in the dictionary file values/strings.xml. \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml new file mode 100644 index 0000000000..a40a73fe6c --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..c9ad5f98f1 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000..c9ad5f98f1 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2531cb31efc3a0a3de6113ab9c7845dc1d9654e4 GIT binary patch literal 1634 zcmV-o2A%ndP)B+Z3$1(8#|f~9B42Y^N-3=o2YCq0YUY$Zu=pM;#hG{lHi%n~Vh z1d1vN#EDO19X?u$`cV z!a}AKG@Bb*#1cdYg8af_;jP69b`k%G1n?0=F^8bI^o>wg-vEliK^U}y^!D|^p|ax; zC|pK=f+FHp!RUAhtlpGGUxJb|wm^5! z<1r%$<$TR02wajxKZ4MiR#aAxDLE(##UNyD|ABr4WoGRF*?@e^2|~Hq(gurSSJH*;Q~5lw{J5A_(PCXBWhzZE${qgzv0{dk-F( z1<}>r181tLiEla&f1j&?p2xjbfp2cTt-c1Ox~?9EhK9`cJ9Vatf)loIoQ@#h&}cIGD>Z#QLE}&(bMo@7Ff|7f#Nm^$PJpVcbj+v~K7wfVwF}=) zRQsc+`=A-+C)vrRvaIC-5u>|;3h z*G4-u#RI<_vuSN~vZ6{|I~q5FFk3%de#+*>UFG>&bq6~ zUEMZ~FIOmFO=kA^5rkp-Msw?^63xvdXVZ-rv@{6{iVO}M!}^Je%2BPbi+(L<5<%~h z2v^D+f<|j%7~cJjOzg*!GPQ{%uE{i%YgcZhuZh{yNlQ}RhaU1jd=K+AopVKP+D}&} zZ3y$llqZiln=Z_A$!qzkGbX0D{?l(v5@1|`QyCvCnQ`eKI>|zj_zo%y#fKf85VhQ} zP)y&j4P*nR3q{-o35iV6nx7QDqq<;WDVIt}|N%`!dgv*y3va8eLNj zU9x(?ieweHfQ*yXk8|=ssZ~qJEz^QoKJ|iGa>ge_Vm_8l}S+UvJ{8g4jr+o#aTSFsz1W;PDP zW765JXGU#3JL>SlIl3NRV2{7B2dLO1cIP)a4ZRYL|MBD36O1#oSgAf}APz5@;x=_U-<=y)Py7*}O5(uu7BL_eLe6Ek7pH|G zMq)FrF1EFq&yruS5b=F=w)fVVoPd(oeRyTFym_Uwyn~L=OL(O?cf^2L5R(SmjORx6 z%nmZf^W=3pkvT*>@osUNi>DULH1hL;y`JGQX$onRCr_U0=H~Viodq!<7Q{3rPk~{G gu#IhOV;e2n|1(WJB~7~kivR!s07*qoM6N<$g7lUVaR2}S literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..7a859c25556af7a2e46e22a2220eaded55628e9f GIT binary patch literal 1441 zcma)+`#%#30L6FjMQg%tuA0%p#0??L`*E=rD#U2F4L5n@F+O9Sp;(QwEQy7+?sX?r zCWN(!Hg`+j5k8*H@|yQEtnAi*(D{7M`Tlf1=eKjq)BUsp2nqrK01B=yNUv`!`EH=x zx8$xJQUd^Fuec%|(TT&0V}4orr_==mmCnEuzD+ff8Pg>pJRqsWsD{#?eGPaCu0(sEH_2RG@<6-Nt<8 ztPMUmmAz9Ga$23Y9~p9dqJSgJJ#Jk_r@o13^%d-Xf46i+Lrmz3 zy9(DUDVXj;Zny7nO+yn&W2flEX=C!8&D0zI`G# z8;XmlonoghgRFUY*$+7pPLa}Uy)onw>TT9t(FTV6#BV8&lXWDPRvQW_n~xZ|yLcZjX>m$Eaf1)dwXS`&E^ zkNjO;%;fWywchc=+w4utQ0Vbn%B>b~yy4I#D{?1!P`$P>Wdo+ljCo(tYia04JTc=$$u+IbzDVPFYpm8+AQj+ zGKH zfS{{hN%W)kF+(26oZpkURD5Q_G_z97F6{Jval+TOj-;5y)*Rdo3a$^^k~q5gpTzmp1q@+2X9O z;_VUF>;s~C1~gpFrFoh?{aQ|LlBIYz!z^P~lndX5-ES)p#+9GW*|-WBTzQ*&gKOE` zM##bUaWl`6rZBXw0!~_oUhf+H$tNc@lLZCj0bZT^KSo@C|P?7YR8dP0se1jj z9aA0|7MONf(ZYaLZs$s}r*05fx25-iN6mZe_*Rq%uyz(+^-k;t`!R`?uf~rn#1ZC7 zuv3}UrmMzcBbo4jym@fS5%I+G`GJIC1s$)MQs3Vhld?a2U;w}$@V%dC@%qpO7+3#$ N&GnQ!lI8SQ#{X#Iv!eh2 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d35b3a1cfe5308bb099a5a1429555c41417e36 GIT binary patch literal 3552 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 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8f56909cddfa86f1387074bf43003f36d6e67be1 GIT binary patch literal 2413 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 b;}yxl--Ss53i@>Q4YQuNcebmsMJN0NT!aL! literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9737d79c0492b2c8a811621660eba33e79fab959 GIT binary patch literal 4858 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 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9133e31b43252d00767a6a3806df9ba68de2d265 GIT binary patch literal 3871 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 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ae5f5ccdecc01a9b17a2a0c2b1bb20602f0151 GIT binary patch literal 8001 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 z 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 F@PB1o0BisN literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..ef89bd5215ffcc38c68b119a7495a77a7084543b GIT binary patch literal 10893 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 literal 0 HcmV?d00001 diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml new file mode 100644 index 0000000000..bf1bf200f0 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #2c3e50 + #1B3147 + #3498db + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml new file mode 100644 index 0000000000..6ec24e6413 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #2C3E50 + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml new file mode 100644 index 0000000000..2c67aea575 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml @@ -0,0 +1,5 @@ + + + KotlinxCoroutinesSample + Settings + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml new file mode 100644 index 0000000000..dde52b817d --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt new file mode 100644 index 0000000000..c24030768c --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions 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/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt new file mode 100644 index 0000000000..c359b62f40 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt @@ -0,0 +1,24 @@ +This 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/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj new file mode 100644 index 0000000000..5b6e3e1353 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj @@ -0,0 +1,69 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {7990AD17-9BDE-475D-94C9-E38595AB8EC2} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {77efb91c-a7e9-4b0e-a7c5-31eeec3c6d46} + Library + Properties + KotlinxCoroutinesSampleLibrary + KotlinxCoroutinesSampleLibrary + 512 + True + v9.0 + class-parse + XAJavaInterop1 + PackageReference + + + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + portable + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + Jars\kotlinxcoroutinessample-release.aar + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..33cb64f890 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using 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("KotlinxCoroutinesSampleLibrary")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("KotlinxCoroutinesSampleLibrary")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[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 +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml new file mode 100644 index 0000000000..e4a0f89376 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml new file mode 100644 index 0000000000..6ff109bbd1 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml new file mode 100644 index 0000000000..d091d82b24 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/samples/nuget.config b/Android/KotlinxCoroutines/samples/nuget.config new file mode 100644 index 0000000000..c29e35bef1 --- /dev/null +++ b/Android/KotlinxCoroutines/samples/nuget.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj index c1e97a4bb8..68040519e9 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj @@ -14,7 +14,7 @@ Xamarin.Kotlinx.Coroutines.Android - Kotlinx.Coroutines.Android reference library for Xamarin.Android + Xamarin.Kotlinx.Coroutines.Android reference library for Xamarin.Android Xamarin.Android bindings for Kotlinx.Coroutines.Android Microsoft Microsoft @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml index 6469536298..0d768a1dac 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml @@ -1,6 +1,6 @@  Xamarin.Kotlinx.Coroutines.Android - Kotlinx.Coroutines.MainCoroutineDispatcher + Xamarin.Kotlinx.Coroutines.MainCoroutineDispatcher diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets new file mode 100644 index 0000000000..995dc0a4a6 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj index 4c2cef5135..c59248c43e 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj @@ -14,7 +14,7 @@ Xamarin.Kotlinx.Coroutines.Core.Jvm - Kotlinx.Coroutines.Core.Jvm reference library for Xamarin.Android + Xamarin.Kotlinx.Coroutines.Core.Jvm reference library for Xamarin.Android Xamarin.Android bindings for Kotlinx.Coroutines.Core Microsoft Microsoft @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml index 03ce4f2b67..15923ad20b 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -1,8 +1,20 @@  + Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines.Debug + Xamarin.Kotlinx.Coroutines.Flow + Xamarin.Kotlinx.Coroutines.Intrinsics + Xamarin.Kotlinx.Coroutines.Scheduling + Xamarin.Kotlinx.Coroutines.Selects + Xamarin.Kotlinx.Coroutines.Sync + Xamarin.Kotlinx.Coroutines.Test + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets new file mode 100644 index 0000000000..09f143e58e --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj index cc0fadba73..f3eacecb51 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj @@ -14,7 +14,7 @@ Xamarin.Kotlinx.Coroutines.Core - Kotlinx.Coroutines.Core reference library for Xamarin.Android + Xamarin.Kotlinx.Coroutines.Core reference library for Xamarin.Android Xamarin.Android bindings for Kotlinx.Coroutines.Core Microsoft Microsoft @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml index 3006e28598..b20f8b78b7 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml @@ -1,10 +1,20 @@  - + Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines.Debug + Xamarin.Kotlinx.Coroutines.Flow + Xamarin.Kotlinx.Coroutines.Intrinsics + Xamarin.Kotlinx.Coroutines.Scheduling + Xamarin.Kotlinx.Coroutines.Selects + Xamarin.Kotlinx.Coroutines.Sync + Xamarin.Kotlinx.Coroutines.Test - - - - - + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets new file mode 100644 index 0000000000..5a866e3e54 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj index b2b64149fd..ec9d731aab 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj @@ -14,7 +14,7 @@ Xamarin.Kotlinx.Coroutines.Jdk8 - Kotlinx.Coroutines.Jdk8 reference library for Xamarin.Android + Xamarin.Kotlinx.Coroutines.Jdk8 reference library for Xamarin.Android Xamarin.Android bindings for Kotlinx.Coroutines.Jdk8 Microsoft Microsoft @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + @@ -41,10 +47,6 @@ - - - - diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets new file mode 100644 index 0000000000..bec693657c --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj index f4619e4c38..54542fa7d3 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + @@ -42,10 +48,6 @@ - - - - diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets new file mode 100644 index 0000000000..eaa159a9f4 --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj index f8463235ab..9b8e4948e0 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj @@ -25,6 +25,11 @@ 1.4.1 + + + + + @@ -34,6 +39,7 @@ + @@ -42,11 +48,6 @@ - - - - - diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets new file mode 100644 index 0000000000..c7df9e5a7c --- /dev/null +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 983644f22b4f71d8f3c04f4837b4e88acf7f9682 Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sat, 9 Jan 2021 19:52:34 +0100 Subject: [PATCH 05/17] removed kotlinx-coroutines from kotlin binding --- Android/Kotlin/cgmanifest.json | 22 +------ .../Transforms/EnumFields.xml | 19 ------ .../Transforms/EnumMethods.xml | 19 ------ .../Transforms/Metadata.Namespace.xml | 64 ------------------- .../Transforms/Metadata.xml | 32 ---------- .../Transforms/EnumFields.xml | 19 ------ .../Transforms/EnumMethods.xml | 19 ------ .../Transforms/Metadata.Namespaces.xml | 11 ---- .../Transforms/Metadata.xml | 10 --- 9 files changed, 1 insertion(+), 214 deletions(-) delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumFields.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumMethods.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.Namespace.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumFields.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumMethods.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.Namespaces.xml delete mode 100644 Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.xml diff --git a/Android/Kotlin/cgmanifest.json b/Android/Kotlin/cgmanifest.json index 3a82561960..04a3ae3998 100644 --- a/Android/Kotlin/cgmanifest.json +++ b/Android/Kotlin/cgmanifest.json @@ -59,27 +59,7 @@ "Version": "13.0.0.3" } } - }, - { - "Component": { - "Type": "Maven", - "Maven": { - "ArtifactId": "kotlinx-coroutines-android", - "GroupId": "org.jetbrains.kotlinx", - "Version": "1.3.4" - } - } - }, - { - "Component": { - "Type": "Maven", - "Maven": { - "ArtifactId": "kotlinx-coroutines-core", - "GroupId": "org.jetbrains.kotlinx", - "Version": "1.3.4" - } - } - } + } ], "Version": 1 } \ No newline at end of file diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumFields.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumFields.xml deleted file mode 100644 index 8e966170ba..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumFields.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumMethods.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumMethods.xml deleted file mode 100644 index 8d059c2dcd..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/EnumMethods.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.Namespace.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.Namespace.xml deleted file mode 100644 index 9dc8851b80..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.Namespace.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - Xamarin.KotlinX.Coroutines - - - Xamarin.KotlinX.Coroutines.Channels - - - Xamarin.KotlinX.Coroutines.Flow - - - Xamarin.KotlinX.Coroutines.Flow.Internal - - - Xamarin.KotlinX.Coroutines.Internal - - - Xamarin.KotlinX.Coroutines.Intrinsics - - - Xamarin.KotlinX.Coroutines.Scheduling - - - Xamarin.KotlinX.Coroutines.Selects - - - Xamarin.KotlinX.Coroutines.Sync - - - Xamarin.KotlinX.Coroutines.Test - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.xml deleted file mode 100644 index ffb675aa70..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.Core/Transforms/Metadata.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumFields.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumFields.xml deleted file mode 100644 index 8e966170ba..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumFields.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumMethods.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumMethods.xml deleted file mode 100644 index 8d059c2dcd..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/EnumMethods.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.Namespaces.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.Namespaces.xml deleted file mode 100644 index ce6142cf66..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.Namespaces.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Xamarin.KotlinX.Coroutines.CoroutinesAndroid - - - diff --git a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.xml b/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.xml deleted file mode 100644 index 3639fb0a86..0000000000 --- a/Android/Kotlin/source/Xamarin.KotlinX.Coroutines.CoroutinesAndroid/Transforms/Metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - Xamarin.KotlinX.Coroutines.MainCoroutineDispatcher - - - From e627f1e3c55666c8b2b30d0855be004b523470ee Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sat, 9 Jan 2021 19:53:29 +0100 Subject: [PATCH 06/17] fix kotlinx coroutines bindings metadata --- .../source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml | 2 +- .../source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml | 2 +- .../source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml index 0d768a1dac..0167b817b4 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml @@ -1,6 +1,6 @@  - Xamarin.Kotlinx.Coroutines.Android + Xamarin.KotlinX.Coroutines.CoroutinesAndroid Xamarin.Kotlinx.Coroutines.MainCoroutineDispatcher diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml index 15923ad20b..1d60a85646 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -2,7 +2,7 @@ Xamarin.Kotlinx.Coroutines - Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines.Channels Xamarin.Kotlinx.Coroutines.Debug Xamarin.Kotlinx.Coroutines.Flow Xamarin.Kotlinx.Coroutines.Intrinsics diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml index b20f8b78b7..95962a7fb8 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml +++ b/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml @@ -1,7 +1,7 @@  Xamarin.Kotlinx.Coroutines - Xamarin.Kotlinx.Coroutines + Xamarin.Kotlinx.Coroutines.Channels Xamarin.Kotlinx.Coroutines.Debug Xamarin.Kotlinx.Coroutines.Flow Xamarin.Kotlinx.Coroutines.Intrinsics From f33900446601e853c9ee43ec24f4fe81e2ac9685 Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sat, 9 Jan 2021 19:54:23 +0100 Subject: [PATCH 07/17] add .idea/ to gitignore --- Android/KotlinxCoroutines/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 Android/KotlinxCoroutines/.gitignore diff --git a/Android/KotlinxCoroutines/.gitignore b/Android/KotlinxCoroutines/.gitignore new file mode 100644 index 0000000000..62c893550a --- /dev/null +++ b/Android/KotlinxCoroutines/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file From 8ab08811936bcedce375a22319df42503fd64584 Mon Sep 17 00:00:00 2001 From: Antonio Seric Date: Sat, 9 Jan 2021 19:58:45 +0100 Subject: [PATCH 08/17] remove kotlinx coroutines from Kotlin config.json --- Android/Kotlin/config.json | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Android/Kotlin/config.json b/Android/Kotlin/config.json index 1d021641d1..a874af7157 100644 --- a/Android/Kotlin/config.json +++ b/Android/Kotlin/config.json @@ -73,20 +73,6 @@ "version" : "13.0", "nugetId" : "Xamarin.Jetbrains.Annotations", "nugetVersion" : "13.0.0.3" - }, - { - "groupId" : "org.jetbrains.kotlinx", - "artifactId" : "kotlinx-coroutines-android", - "version" : "1.3.4", - "nugetId" : "Xamarin.KotlinX.Coroutines.CoroutinesAndroid", - "nugetVersion" : "1.3.4" - }, - { - "groupId" : "org.jetbrains.kotlinx", - "artifactId" : "kotlinx-coroutines-core", - "version" : "1.3.4", - "nugetId" : "Xamarin.KotlinX.Coroutines.Core", - "nugetVersion" : "1.3.4" } ] }] From 88e5fca0f266b90f1c9d5d59ddccae36b84c9f03 Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 17:32:58 +0200 Subject: [PATCH 09/17] Kotlinx to KotlinX renaming --- .../.gitignore | 0 .../External-Dependency-Info.txt | 0 .../KotlinXCoroutines.sln} | 12 +- .../License.md | 0 .../build.cake | 21 ++-- .../cgmanifest.json | 0 .../native/KotlinxCoroutinesSample/.gitignore | 0 .../KotlinxCoroutinesSample/build.gradle | 0 .../KotlinxCoroutinesSample/gradle.properties | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../native/KotlinxCoroutinesSample/gradlew | 0 .../KotlinxCoroutinesSample/gradlew.bat | 0 .../kotlinxcoroutinessample/.gitignore | 0 .../kotlinxcoroutinessample/build.gradle | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../KotlinxCoroutineTestClass.kt | 0 .../KotlinxCoroutinesSample/settings.gradle | 0 .../samples/KotlinxCoroutinesSample.sln | 0 .../Assets/AboutAssets.txt | 0 .../KotlinxCoroutinesSample.csproj | 0 .../KotlinxCoroutinesSample/MainActivity.cs | 0 .../Properties/AndroidManifest.xml | 0 .../Properties/AssemblyInfo.cs | 0 .../Resources/AboutResources.txt | 0 .../Resources/layout/activity_main.xml | 0 .../mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../Resources/mipmap-hdpi/ic_launcher.png | Bin .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../mipmap-hdpi/ic_launcher_round.png | Bin .../Resources/mipmap-mdpi/ic_launcher.png | Bin .../mipmap-mdpi/ic_launcher_foreground.png | Bin .../mipmap-mdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xhdpi/ic_launcher.png | Bin .../mipmap-xhdpi/ic_launcher_foreground.png | Bin .../mipmap-xhdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xxhdpi/ic_launcher.png | Bin .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxhdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xxxhdpi/ic_launcher.png | Bin .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxxhdpi/ic_launcher_round.png | Bin .../Resources/values/colors.xml | 0 .../values/ic_launcher_background.xml | 0 .../Resources/values/strings.xml | 0 .../Resources/values/styles.xml | 0 .../Additions/AboutAdditions.txt | 0 .../Jars/AboutJars.txt | 0 .../KotlinxCoroutinesSampleLibrary.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../Transforms/EnumFields.xml | 0 .../Transforms/EnumMethods.xml | 0 .../Transforms/Metadata.xml | 0 .../samples/nuget.config | 0 .../KotlinX.Coroutines.Android.csproj} | 116 +++++++++--------- .../Transforms/Metadata.xml | 0 ...amarin.KotlinX.Coroutines.Android.targets} | 0 .../KotlinX.Coroutines.Core.Jvm.csproj} | 110 ++++++++--------- .../Transforms/Metadata.xml | 25 ++-- ...marin.KotlinX.Coroutines.Core.Jvm.targets} | 0 .../KotlinX.Coroutines.Core.csproj} | 110 ++++++++--------- .../Transforms/Metadata.xml | 26 ++-- .../Xamarin.KotlinX.Coroutines.Core.targets} | 0 .../KotlinX.Coroutines.Jdk8.csproj} | 108 ++++++++-------- .../Transforms/Metadata.xml | 6 +- .../Xamarin.KotlinX.Coroutines.Jdk8.targets} | 0 .../KotlinX.Coroutines.Reactive.csproj} | 110 ++++++++--------- .../Transforms/Metadata.xml | 2 +- ...marin.KotlinX.Coroutines.Reactive.targets} | 0 .../KotlinX.Coroutines.Rx2.csproj} | 110 ++++++++--------- .../Transforms/Metadata.xml | 2 +- .../Xamarin.KotlinX.Coroutines.Rx2.targets} | 0 .../.idea/caches/build_file_checksums.ser | Bin 556 -> 0 bytes azure-pipelines.yml | 8 +- manifest.yaml | 6 +- 77 files changed, 395 insertions(+), 377 deletions(-) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/.gitignore (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/External-Dependency-Info.txt (100%) rename Android/{KotlinxCoroutines/KotlinxCoroutines.sln => KotlinXCoroutines/KotlinXCoroutines.sln} (78%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/License.md (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/build.cake (89%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/cgmanifest.json (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/.gitignore (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/build.gradle (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/gradle.properties (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/gradlew (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/gradlew.bat (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/native/KotlinxCoroutinesSample/settings.gradle (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample.sln (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/MainActivity.cs (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/values/colors.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/values/strings.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSample/Resources/values/styles.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml (100%) rename Android/{KotlinxCoroutines => KotlinXCoroutines}/samples/nuget.config (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj} (83%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Android => KotlinXCoroutines/source/KotlinX.Coroutines.Android}/Transforms/Metadata.xml (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Android/Xamarin.KotlinX.Coroutines.Android.targets} (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj} (82%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm => KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm}/Transforms/Metadata.xml (60%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Xamarin.KotlinX.Coroutines.Core.Jvm.targets} (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj} (82%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core => KotlinXCoroutines/source/KotlinX.Coroutines.Core}/Transforms/Metadata.xml (60%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Core/Xamarin.KotlinX.Coroutines.Core.targets} (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj} (82%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8 => KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8}/Transforms/Metadata.xml (54%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Xamarin.KotlinX.Coroutines.Jdk8.targets} (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj} (85%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive => KotlinXCoroutines/source/KotlinX.Coroutines.Reactive}/Transforms/Metadata.xml (57%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Xamarin.KotlinX.Coroutines.Reactive.targets} (100%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj => KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj} (85%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2 => KotlinXCoroutines/source/KotlinX.Coroutines.Rx2}/Transforms/Metadata.xml (60%) rename Android/{KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets => KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Xamarin.KotlinX.Coroutines.Rx2.targets} (100%) delete mode 100644 Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser diff --git a/Android/KotlinxCoroutines/.gitignore b/Android/KotlinXCoroutines/.gitignore similarity index 100% rename from Android/KotlinxCoroutines/.gitignore rename to Android/KotlinXCoroutines/.gitignore diff --git a/Android/KotlinxCoroutines/External-Dependency-Info.txt b/Android/KotlinXCoroutines/External-Dependency-Info.txt similarity index 100% rename from Android/KotlinxCoroutines/External-Dependency-Info.txt rename to Android/KotlinXCoroutines/External-Dependency-Info.txt diff --git a/Android/KotlinxCoroutines/KotlinxCoroutines.sln b/Android/KotlinXCoroutines/KotlinXCoroutines.sln similarity index 78% rename from Android/KotlinxCoroutines/KotlinxCoroutines.sln rename to Android/KotlinXCoroutines/KotlinXCoroutines.sln index 91e366a81d..faf90f3c9c 100644 --- a/Android/KotlinxCoroutines/KotlinxCoroutines.sln +++ b/Android/KotlinXCoroutines/KotlinXCoroutines.sln @@ -3,17 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30717.126 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Core", "source\Kotlinx.Coroutines.Core\Kotlinx.Coroutines.Core.csproj", "{ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Core", "source\KotlinX.Coroutines.Core\KotlinX.Coroutines.Core.csproj", "{ADC36DAA-E73E-49B5-B09A-2FD21624C2C5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Android", "source\Kotlinx.Coroutines.Android\Kotlinx.Coroutines.Android.csproj", "{C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Android", "source\KotlinX.Coroutines.Android\KotlinX.Coroutines.Android.csproj", "{C1D66FDB-0EEF-45E3-81DA-34E6B0E20682}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Core.Jvm", "source\Kotlinx.Coroutines.Core.Jvm\Kotlinx.Coroutines.Core.Jvm.csproj", "{FD684F53-BBBB-4E7A-8197-829A92AA32D8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Core.Jvm", "source\KotlinX.Coroutines.Core.Jvm\KotlinX.Coroutines.Core.Jvm.csproj", "{FD684F53-BBBB-4E7A-8197-829A92AA32D8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Jdk8", "source\Kotlinx.Coroutines.Jdk8\Kotlinx.Coroutines.Jdk8.csproj", "{A9826864-B261-45C1-A19C-992A3BE7D1FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Jdk8", "source\KotlinX.Coroutines.Jdk8\KotlinX.Coroutines.Jdk8.csproj", "{A9826864-B261-45C1-A19C-992A3BE7D1FE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Reactive", "source\Kotlinx.Coroutines.Reactive\Kotlinx.Coroutines.Reactive.csproj", "{779DAC7E-4C3C-4514-97DF-272A423F7863}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Reactive", "source\KotlinX.Coroutines.Reactive\KotlinX.Coroutines.Reactive.csproj", "{779DAC7E-4C3C-4514-97DF-272A423F7863}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kotlinx.Coroutines.Rx2", "source\Kotlinx.Coroutines.Rx2\Kotlinx.Coroutines.Rx2.csproj", "{7BEB9F77-2739-4F18-A714-EDB03BDC7E53}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KotlinX.Coroutines.Rx2", "source\KotlinX.Coroutines.Rx2\KotlinX.Coroutines.Rx2.csproj", "{7BEB9F77-2739-4F18-A714-EDB03BDC7E53}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Android/KotlinxCoroutines/License.md b/Android/KotlinXCoroutines/License.md similarity index 100% rename from Android/KotlinxCoroutines/License.md rename to Android/KotlinXCoroutines/License.md diff --git a/Android/KotlinxCoroutines/build.cake b/Android/KotlinXCoroutines/build.cake similarity index 89% rename from Android/KotlinxCoroutines/build.cake rename to Android/KotlinXCoroutines/build.cake index ceb781cf50..e73b75831a 100644 --- a/Android/KotlinxCoroutines/build.cake +++ b/Android/KotlinXCoroutines/build.cake @@ -58,12 +58,12 @@ Task ("externals") // Update .csproj nuget versions - XmlPoke("./source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); - XmlPoke("./source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); - XmlPoke("./source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); - XmlPoke("./source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); - XmlPoke("./source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); - XmlPoke("./source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); + XmlPoke("./source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj", "/Project/PropertyGroup/PackageVersion", KOTLINX_NUGET_VERSION); }); Task("native") @@ -82,7 +82,7 @@ Task("libs") .IsDependentOn("externals") .Does(() => { - MSBuild("./KotlinxCoroutines.sln", c => { + MSBuild("./KotlinXCoroutines.sln", c => { c.Configuration = "Release"; c.Restore = true; c.Properties.Add("DesignTimeBuild", new [] { "false" }); @@ -93,7 +93,7 @@ Task("nuget") .IsDependentOn("libs") .Does(() => { - MSBuild ("./KotlinxCoroutines.sln", c => { + MSBuild ("./KotlinXCoroutines.sln", c => { c.Configuration = "Release"; c.Targets.Clear(); c.Targets.Add("Pack"); @@ -127,7 +127,10 @@ Task ("clean") .Does (() => { if (DirectoryExists ("./externals/")) - DeleteDirectory ("./externals", true); + DeleteDirectory ("./externals", new DeleteDirectorySettings { + Recursive = true, + Force = true + }); }); RunTarget (TARGET); diff --git a/Android/KotlinxCoroutines/cgmanifest.json b/Android/KotlinXCoroutines/cgmanifest.json similarity index 100% rename from Android/KotlinxCoroutines/cgmanifest.json rename to Android/KotlinXCoroutines/cgmanifest.json diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/.gitignore similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.gitignore rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/.gitignore diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/build.gradle similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/build.gradle rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/build.gradle diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle.properties similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle.properties rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle.properties diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.jar diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradle/wrapper/gradle-wrapper.properties diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradlew similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradlew diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradlew.bat similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/gradlew.bat rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/gradlew.bat diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/.gitignore diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/build.gradle diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/proguard-rules.pro diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/AndroidManifest.xml diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/kotlinxcoroutinessample/src/main/java/com/example/kotlinxcoroutinessample/KotlinxCoroutineTestClass.kt diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle b/Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/settings.gradle similarity index 100% rename from Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/settings.gradle rename to Android/KotlinXCoroutines/native/KotlinxCoroutinesSample/settings.gradle diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample.sln similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample.sln rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample.sln diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Assets/AboutAssets.txt diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/KotlinxCoroutinesSample.csproj diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/MainActivity.cs diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Properties/AndroidManifest.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Properties/AssemblyInfo.cs diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/AboutResources.txt diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/layout/activity_main.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_foreground.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-hdpi/ic_launcher_round.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_foreground.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-mdpi/ic_launcher_round.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xhdpi/ic_launcher_round.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxhdpi/ic_launcher_round.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/colors.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/ic_launcher_background.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/strings.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSample/Resources/values/styles.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Additions/AboutAdditions.txt diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Jars/AboutJars.txt diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/KotlinxCoroutinesSampleLibrary.csproj diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Properties/AssemblyInfo.cs diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumFields.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/EnumMethods.xml diff --git a/Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml b/Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml similarity index 100% rename from Android/KotlinxCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/samples/KotlinxCoroutinesSampleLibrary/Transforms/Metadata.xml diff --git a/Android/KotlinxCoroutines/samples/nuget.config b/Android/KotlinXCoroutines/samples/nuget.config similarity index 100% rename from Android/KotlinxCoroutines/samples/nuget.config rename to Android/KotlinXCoroutines/samples/nuget.config diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj similarity index 83% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj index 68040519e9..b03a2a5ff0 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Kotlinx.Coroutines.Android.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj @@ -1,58 +1,58 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Android - False - True - Xamarin.Kotlinx.Coroutines.Android - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-android\ - - - - Xamarin.Kotlinx.Coroutines.Android - Xamarin.Kotlinx.Coroutines.Android reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Android - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Android + False + True + Xamarin.KotlinX.Coroutines.Android + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-android\ + + + + Xamarin.KotlinX.Coroutines.Android + Xamarin.KotlinX.Coroutines.Android reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Android + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Xamarin.KotlinX.Coroutines.Android.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Android/Xamarin.Kotlinx.Coroutines.Android.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Xamarin.KotlinX.Coroutines.Android.targets diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj similarity index 82% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj index c59248c43e..beeb953dd5 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Kotlinx.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj @@ -1,55 +1,55 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Core.Jvm - False - True - Xamarin.Kotlinx.Coroutines.Core.Jvm - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-core-jvm\ - - - - Xamarin.Kotlinx.Coroutines.Core.Jvm - Xamarin.Kotlinx.Coroutines.Core.Jvm reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Core - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Core.Jvm + False + True + Xamarin.KotlinX.Coroutines.Core.Jvm + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-core-jvm\ + + + + Xamarin.KotlinX.Coroutines.Core.Jvm + Xamarin.KotlinX.Coroutines.Core.Jvm reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Core + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml similarity index 60% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml index 1d60a85646..9beae72c1e 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -1,15 +1,15 @@  - Xamarin.Kotlinx.Coroutines - Xamarin.Kotlinx.Coroutines.Channels - Xamarin.Kotlinx.Coroutines.Debug - Xamarin.Kotlinx.Coroutines.Flow - Xamarin.Kotlinx.Coroutines.Intrinsics - Xamarin.Kotlinx.Coroutines.Scheduling - Xamarin.Kotlinx.Coroutines.Selects - Xamarin.Kotlinx.Coroutines.Sync - Xamarin.Kotlinx.Coroutines.Test + Xamarin.KotlinX.Coroutines + Xamarin.KotlinX.Coroutines.Channels + Xamarin.KotlinX.Coroutines.Debug + Xamarin.KotlinX.Coroutines.Flow + Xamarin.KotlinX.Coroutines.Intrinsics + Xamarin.KotlinX.Coroutines.Scheduling + Xamarin.KotlinX.Coroutines.Selects + Xamarin.KotlinX.Coroutines.Sync + Xamarin.KotlinX.Coroutines.Test @@ -19,4 +19,11 @@ + + Java.Lang.Object + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Xamarin.KotlinX.Coroutines.Core.Jvm.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core.Jvm/Xamarin.Kotlinx.Coroutines.Core.Jvm.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Xamarin.KotlinX.Coroutines.Core.Jvm.targets diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj similarity index 82% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj index f3eacecb51..9bcc9e8b2b 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Kotlinx.Coroutines.Core.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj @@ -1,55 +1,55 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Core - False - True - Xamarin.Kotlinx.Coroutines.Core - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-core\ - - - - Xamarin.Kotlinx.Coroutines.Core - Xamarin.Kotlinx.Coroutines.Core reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Core - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Core + False + True + Xamarin.KotlinX.Coroutines.Core + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-core\ + + + + Xamarin.KotlinX.Coroutines.Core + Xamarin.KotlinX.Coroutines.Core reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Core + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/Transforms/Metadata.xml similarity index 60% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/Transforms/Metadata.xml index 95962a7fb8..c6dcf02237 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/Transforms/Metadata.xml @@ -1,14 +1,14 @@  - Xamarin.Kotlinx.Coroutines - Xamarin.Kotlinx.Coroutines.Channels - Xamarin.Kotlinx.Coroutines.Debug - Xamarin.Kotlinx.Coroutines.Flow - Xamarin.Kotlinx.Coroutines.Intrinsics - Xamarin.Kotlinx.Coroutines.Scheduling - Xamarin.Kotlinx.Coroutines.Selects - Xamarin.Kotlinx.Coroutines.Sync - Xamarin.Kotlinx.Coroutines.Test + Xamarin.KotlinX.Coroutines + Xamarin.KotlinX.Coroutines.Channels + Xamarin.KotlinX.Coroutines.Debug + Xamarin.KotlinX.Coroutines.Flow + Xamarin.KotlinX.Coroutines.Intrinsics + Xamarin.KotlinX.Coroutines.Scheduling + Xamarin.KotlinX.Coroutines.Selects + Xamarin.KotlinX.Coroutines.Sync + Xamarin.KotlinX.Coroutines.Test @@ -17,4 +17,12 @@ + + + Java.Lang.Object + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/Xamarin.KotlinX.Coroutines.Core.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Core/Xamarin.Kotlinx.Coroutines.Core.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/Xamarin.KotlinX.Coroutines.Core.targets diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj similarity index 82% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj index ec9d731aab..d7cff51d03 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Kotlinx.Coroutines.Jdk8.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj @@ -1,54 +1,54 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Jdk8 - False - True - Xamarin.Kotlinx.Coroutines.Jdk8 - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-jdk8\ - - - - Xamarin.Kotlinx.Coroutines.Jdk8 - Xamarin.Kotlinx.Coroutines.Jdk8 reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Jdk8 - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Jdk8 + False + True + Xamarin.KotlinX.Coroutines.Jdk8 + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-jdk8\ + + + + Xamarin.KotlinX.Coroutines.Jdk8 + Xamarin.KotlinX.Coroutines.Jdk8 reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Jdk8 + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Transforms/Metadata.xml similarity index 54% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Transforms/Metadata.xml index f2abfde9ae..7f0addf6bd 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Transforms/Metadata.xml @@ -1,6 +1,6 @@  - Xamarin.Kotlinx.Coroutines.Future - Xamarin.Kotlinx.Coroutines.Stream - Xamarin.Kotlinx.Coroutines.Time + Xamarin.KotlinX.Coroutines.Future + Xamarin.KotlinX.Coroutines.Stream + Xamarin.KotlinX.Coroutines.Time diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Xamarin.KotlinX.Coroutines.Jdk8.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Jdk8/Xamarin.Kotlinx.Coroutines.Jdk8.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/Xamarin.KotlinX.Coroutines.Jdk8.targets diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj similarity index 85% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj index 54542fa7d3..b56570a6b1 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Kotlinx.Coroutines.Reactive.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj @@ -1,55 +1,55 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Reactive - False - True - Xamarin.Kotlinx.Coroutines.Reactive - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-reactive\ - - - - Xamarin.Kotlinx.Coroutines.Reactive - Kotlinx.Coroutines.Reactive reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Reactive - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Reactive + False + True + Xamarin.KotlinX.Coroutines.Reactive + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-reactive\ + + + + Xamarin.KotlinX.Coroutines.Reactive + Kotlinx.Coroutines.Reactive reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Reactive + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Transforms/Metadata.xml similarity index 57% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Transforms/Metadata.xml index b3bee65222..47cc0e98cb 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Transforms/Metadata.xml @@ -1,4 +1,4 @@  - Xamarin.Kotlinx.Coroutines.Reactive + Xamarin.KotlinX.Coroutines.Reactive diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Xamarin.KotlinX.Coroutines.Reactive.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Reactive/Xamarin.Kotlinx.Coroutines.Reactive.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/Xamarin.KotlinX.Coroutines.Reactive.targets diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj similarity index 85% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj index 9b8e4948e0..795df1b261 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Kotlinx.Coroutines.Rx2.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj @@ -1,55 +1,55 @@ - - - - MonoAndroid10.0 - true - Xamarin.Kotlinx.Coroutines.Rx2 - False - True - Xamarin.Kotlinx.Coroutines.Rx2 - class-parse - XAJavaInterop1 - ..\..\externals\kotlinx-coroutines-rx2\ - - - - Xamarin.Kotlinx.Coroutines.Rx2 - Kotlinx.Coroutines.Rx2 reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Rx2 - Microsoft - Microsoft - © Microsoft Corporation. All rights reserved. - https://go.microsoft.com/fwlink/?linkid=2083771 - LICENSE.md - true - 1.4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + MonoAndroid10.0 + true + Xamarin.KotlinX.Coroutines.Rx2 + False + True + Xamarin.KotlinX.Coroutines.Rx2 + class-parse + XAJavaInterop1 + ..\..\externals\kotlinx-coroutines-rx2\ + + + + Xamarin.KotlinX.Coroutines.Rx2 + Kotlinx.Coroutines.Rx2 reference library for Xamarin.Android + Xamarin.Android bindings for Kotlinx.Coroutines.Rx2 + Microsoft + Microsoft + © Microsoft Corporation. All rights reserved. + https://go.microsoft.com/fwlink/?linkid=2083771 + LICENSE.md + true + 1.4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Transforms/Metadata.xml similarity index 60% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Transforms/Metadata.xml index e11b6f0ff7..2a4d3ff6b5 100644 --- a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Transforms/Metadata.xml @@ -1,4 +1,4 @@  - Xamarin.Kotlinx.Coroutines.Rx2 + Xamarin.KotlinX.Coroutines.Rx2 diff --git a/Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Xamarin.KotlinX.Coroutines.Rx2.targets similarity index 100% rename from Android/KotlinxCoroutines/source/Kotlinx.Coroutines.Rx2/Xamarin.Kotlinx.Coroutines.Rx2.targets rename to Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/Xamarin.KotlinX.Coroutines.Rx2.targets diff --git a/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser b/Android/KotlinxCoroutines/native/KotlinxCoroutinesSample/.idea/caches/build_file_checksums.ser deleted file mode 100644 index 1ae0562feded3c42487cae88fee5c90d8adc2c34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}QPHR4k|6tA3qa&xxTGM$iVzidM&MaZz zNdoy7rmK*lj)4uNFl0#}^Db{2qc{Ke`+hmYQ&++ukdvRBm;(x}g4Cjt%+%sixZ;7EN*Dz3 YSjXhMI{Vws|F5PeYiP%d9ucVk0Gz+WZ2$lO diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7f3ec406b4..d4e38a1a4c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,15 +41,15 @@ jobs: preBuildSteps: - pwsh: | dotnet tool install --global boots - boots https://aka.ms/xamarin-android-commercial-d16-8-macos + boots https://aka.ms/xamarin-android-commercial-d16-9-macos condition: eq(variables['System.JobName'], 'macos') - pwsh: | dotnet tool install --global boots - boots https://aka.ms/xamarin-android-commercial-d16-8-windows + boots https://aka.ms/xamarin-android-commercial-d16-9-windows condition: eq(variables['System.JobName'], 'windows') tools: - - 'xamarin.androidbinderator.tool': '0.4.2' - - 'xamarin.androidx.migration.tool': '1.0.7.1' + - 'xamarin.androidbinderator.tool': '0.4.3' + - 'xamarin.androidx.migration.tool': '1.0.8' - ${{ if eq(variables['System.TeamProject'], 'devdiv') }}: - template: sign-artifacts/jobs/v2.yml@internal-templates parameters: diff --git a/manifest.yaml b/manifest.yaml index 2cab23e7ff..0dd42526a3 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -350,9 +350,9 @@ TriggerPaths: [ Android/SquareOkHttp3LoggingInterceptor ] MacBuildTargets: [ ci ] WindowsBuildTargets: [ ci ] -- Name: KotlinxCoroutines - BuildScript: ./Android/KotlinxCoroutines/build.cake - TriggerPaths: [ Android/KotlinxCoroutines ] +- Name: KotlinXCoroutines + BuildScript: ./Android/KotlinXCoroutines/build.cake + TriggerPaths: [ Android/KotlinXCoroutines ] WindowsBuildTargets: [ ci ] MacBuildTargets: [ ci ] From 15facceebd50fbd73b38c4710d59b4a69ce104ee Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 18:16:07 +0200 Subject: [PATCH 10/17] typo fixed --- Android/AndroidThings/build.cake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Android/AndroidThings/build.cake b/Android/AndroidThings/build.cake index 97bdddbf1d..52d036203c 100644 --- a/Android/AndroidThings/build.cake +++ b/Android/AndroidThings/build.cake @@ -71,7 +71,7 @@ Task("nuget") Task("samples"); .IsDependentOn("nuget"); Task("component"); -Task("ci"); +Task("ci") .IsDependentOn("samples"); Task ("externals") From a5e958bd31b189c18912179e9a7187b1d61b9190 Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 18:16:49 +0200 Subject: [PATCH 11/17] target framework 9.0 --- .../KotlinX.Coroutines.Android.csproj | 4 ++-- .../KotlinX.Coroutines.Core.Jvm.csproj | 4 ++-- .../KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml | 4 ++++ .../KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj | 4 ++-- .../KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj | 4 ++-- .../KotlinX.Coroutines.Reactive.csproj | 4 ++-- .../KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj | 4 ++-- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj index b03a2a5ff0..631b10b276 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Android False diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj index beeb953dd5..5426228bbf 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Core.Jvm False diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml index 9beae72c1e..31a83242c3 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/Transforms/Metadata.xml @@ -26,4 +26,8 @@ Java.Lang.Object + + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj index 9bcc9e8b2b..9a4a697b21 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Core False diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj index d7cff51d03..9fc334c292 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Jdk8 False diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj index b56570a6b1..a290a8213f 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Reactive False diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj index 795df1b261..42880294d2 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj @@ -1,7 +1,7 @@  - + - MonoAndroid10.0 + MonoAndroid9.0 true Xamarin.KotlinX.Coroutines.Rx2 False From da7067df74dd57d30126a5e9a5d3710a04d1aded Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 18:16:57 +0200 Subject: [PATCH 12/17] Create global.json --- global.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 global.json diff --git a/global.json b/global.json new file mode 100644 index 0000000000..0d0701b41c --- /dev/null +++ b/global.json @@ -0,0 +1,8 @@ +{ + "msbuild-sdks": + { + "MSBuild.Sdk.Extras": "3.0.23", + "Microsoft.Build.Traversal": "2.1.1", + "Microsoft.Build.NoTargets": "2.0.1" + } +} \ No newline at end of file From 23ea606dcfc9a49c9ebe817f332bd61bfd0032fc Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 19:02:38 +0200 Subject: [PATCH 13/17] old/stale cake script fixes --- Android/AndroidThings/build.cake | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Android/AndroidThings/build.cake b/Android/AndroidThings/build.cake index 52d036203c..e98e572f6e 100644 --- a/Android/AndroidThings/build.cake +++ b/Android/AndroidThings/build.cake @@ -1,4 +1,4 @@ -#load "../../common.cake" +//#load "../../common.cake" var TARGET = Argument ("t", Argument ("target", "ci")); @@ -68,9 +68,10 @@ Task("nuget") .WithProperty("PackageOutputPath", "../../output")); }); -Task("samples"); +Task("samples") .IsDependentOn("nuget"); Task("component"); + Task("ci") .IsDependentOn("samples"); @@ -104,7 +105,7 @@ Task ("clean") .Does (() => { if (DirectoryExists ("./externals")) - DeleteDirectory ("./externals", true); + DeleteDirectory ("./externals", new DeleteDirectorySettings { Force=true }); }); RunTarget (TARGET); \ No newline at end of file From ca0dcf9564be0515a72dc9f27721c45a1fc37627 Mon Sep 17 00:00:00 2001 From: moljac Date: Fri, 7 May 2021 20:28:33 +0200 Subject: [PATCH 14/17] BetterPickers cake script ci target --- Android/BetterPickers/build.cake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Android/BetterPickers/build.cake b/Android/BetterPickers/build.cake index 9f8bab8b50..511e737bcc 100644 --- a/Android/BetterPickers/build.cake +++ b/Android/BetterPickers/build.cake @@ -1,7 +1,7 @@ #load "../../common.cake" -var TARGET = Argument ("t", Argument ("target", "Default")); +var TARGET = Argument ("t", Argument ("target", "ci")); var LIB_VERSION = "1.6.0"; var AAR_URL = $"http://search.maven.org/remotecontent?filepath=com/doomonafireball/betterpickers/library/{LIB_VERSION}/library-{LIB_VERSION}.aar"; From 8ad90427226a8c1233b7f70b6889111ec6d50074 Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 11 May 2021 21:40:57 +0200 Subject: [PATCH 15/17] Create Resource.Designer.cs --- .../Resources/Resource.Designer.cs | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Android/AndroidThings/samples/WeatherStation/Resources/Resource.Designer.cs diff --git a/Android/AndroidThings/samples/WeatherStation/Resources/Resource.Designer.cs b/Android/AndroidThings/samples/WeatherStation/Resources/Resource.Designer.cs new file mode 100644 index 0000000000..7e1b744cf1 --- /dev/null +++ b/Android/AndroidThings/samples/WeatherStation/Resources/Resource.Designer.cs @@ -0,0 +1,120 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("WeatherStation.Resource", IsApplication=true)] + +namespace WeatherStation +{ + + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + } + + public partial class Attribute + { + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7F010003 + public const int Icon = 2130771971; + + // aapt resource value: 0x7F010000 + public const int ic_cloudy = 2130771968; + + // aapt resource value: 0x7F010001 + public const int ic_rainy = 2130771969; + + // aapt resource value: 0x7F010002 + public const int ic_sunny = 2130771970; + + static Drawable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Drawable() + { + } + } + + public partial class Id + { + + // aapt resource value: 0x7F020000 + public const int imageView = 2130837504; + + static Id() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Id() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7F030000 + public const int Main = 2130903040; + + static Layout() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Layout() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7F040000 + public const int ApplicationName = 2130968576; + + // aapt resource value: 0x7F040001 + public const int Hello = 2130968577; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + } +} +#pragma warning restore 1591 From 10b1adc7d5e304223702633a4a088abb00f19ebf Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 11 May 2021 23:29:01 +0200 Subject: [PATCH 16/17] typos fixed --- .../KotlinX.Coroutines.Android.csproj | 4 ++-- .../source/KotlinX.Coroutines.Android/Transforms/Metadata.xml | 2 +- .../KotlinX.Coroutines.Core.Jvm.csproj | 2 +- .../KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj | 2 +- .../KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj | 2 +- .../KotlinX.Coroutines.Reactive.csproj | 4 ++-- .../KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj index 631b10b276..06db588bfe 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj @@ -15,7 +15,7 @@ Xamarin.KotlinX.Coroutines.Android Xamarin.KotlinX.Coroutines.Android reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Android + Xamarin.Android bindings for KotlinX.Coroutines.Android Microsoft Microsoft © Microsoft Corporation. All rights reserved. @@ -48,7 +48,7 @@ - + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml index 0167b817b4..2effe0abdf 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/Transforms/Metadata.xml @@ -1,6 +1,6 @@  Xamarin.KotlinX.Coroutines.CoroutinesAndroid - Xamarin.Kotlinx.Coroutines.MainCoroutineDispatcher + Xamarin.KotlinX.Coroutines.MainCoroutineDispatcher diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj index 5426228bbf..9313bc1767 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj @@ -15,7 +15,7 @@ Xamarin.KotlinX.Coroutines.Core.Jvm Xamarin.KotlinX.Coroutines.Core.Jvm reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Core + Xamarin.Android bindings for KotlinX.Coroutines.Core Microsoft Microsoft © Microsoft Corporation. All rights reserved. diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj index 9a4a697b21..ecb80cf527 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj @@ -15,7 +15,7 @@ Xamarin.KotlinX.Coroutines.Core Xamarin.KotlinX.Coroutines.Core reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Core + Xamarin.Android bindings for KotlinX.Coroutines.Core Microsoft Microsoft © Microsoft Corporation. All rights reserved. diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj index 9fc334c292..6fdde32323 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj @@ -15,7 +15,7 @@ Xamarin.KotlinX.Coroutines.Jdk8 Xamarin.KotlinX.Coroutines.Jdk8 reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Jdk8 + Xamarin.Android bindings for KotlinX.Coroutines.Jdk8 Microsoft Microsoft © Microsoft Corporation. All rights reserved. diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj index a290a8213f..32c0adf43b 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj @@ -14,8 +14,8 @@ Xamarin.KotlinX.Coroutines.Reactive - Kotlinx.Coroutines.Reactive reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Reactive + KotlinX.Coroutines.Reactive reference library for Xamarin.Android + Xamarin.Android bindings for KotlinX.Coroutines.Reactive Microsoft Microsoft © Microsoft Corporation. All rights reserved. diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj index 42880294d2..2c911be521 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj @@ -14,8 +14,8 @@ Xamarin.KotlinX.Coroutines.Rx2 - Kotlinx.Coroutines.Rx2 reference library for Xamarin.Android - Xamarin.Android bindings for Kotlinx.Coroutines.Rx2 + KotlinX.Coroutines.Rx2 reference library for Xamarin.Android + Xamarin.Android bindings for KotlinX.Coroutines.Rx2 Microsoft Microsoft © Microsoft Corporation. All rights reserved. From bb16f15981bfb51e2e8ffeb77823b1b1f182fea0 Mon Sep 17 00:00:00 2001 From: moljac Date: Thu, 13 May 2021 09:07:55 +0200 Subject: [PATCH 17/17] dependencies bump to recently published (Kotlin) --- .../KotlinX.Coroutines.Android.csproj | 2 +- .../KotlinX.Coroutines.Core.Jvm.csproj | 4 ++-- .../KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj | 4 ++-- .../KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj | 2 +- .../KotlinX.Coroutines.Reactive.csproj | 4 ++-- .../KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj index 06db588bfe..3dd3113696 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Android/KotlinX.Coroutines.Android.csproj @@ -44,7 +44,7 @@ - + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj index 9313bc1767..6376440eae 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core.Jvm/KotlinX.Coroutines.Core.Jvm.csproj @@ -44,8 +44,8 @@ - - + + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj index ecb80cf527..b4e811a469 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Core/KotlinX.Coroutines.Core.csproj @@ -44,8 +44,8 @@ - - + + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj index 6fdde32323..26a0e2c3e8 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Jdk8/KotlinX.Coroutines.Jdk8.csproj @@ -44,7 +44,7 @@ - + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj index 32c0adf43b..fd91065e2c 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Reactive/KotlinX.Coroutines.Reactive.csproj @@ -44,8 +44,8 @@ - - + + diff --git a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj index 2c911be521..7c3543a95c 100644 --- a/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj +++ b/Android/KotlinXCoroutines/source/KotlinX.Coroutines.Rx2/KotlinX.Coroutines.Rx2.csproj @@ -44,8 +44,8 @@ - - + +