diff --git a/.vsts-ci.Windows.yml b/.vsts-ci.Windows.yml index 6eaab640..58f2e55c 100644 --- a/.vsts-ci.Windows.yml +++ b/.vsts-ci.Windows.yml @@ -27,6 +27,48 @@ jobs: logProjectEvents: false createLogFile: false + - task: MSBuild@1 + displayName: ARM Android build + inputs: + solution: src/CalcManager.Android/CalcManager.Android.vcxproj + msbuildLocationMethod: version + msbuildVersion: latest + msbuildArchitecture: x86 + msbuildArguments: /r /p:Configuration=Release /p:Platform=ARM /detailedsummary + clean: false + maximumCpuCount: true + restoreNugetPackages: false + logProjectEvents: false + createLogFile: false + + - task: MSBuild@1 + displayName: ARM64 Android build + inputs: + solution: src/CalcManager.Android/CalcManager.Android.vcxproj + msbuildLocationMethod: version + msbuildVersion: latest + msbuildArchitecture: x86 + msbuildArguments: /r /p:Configuration=Release /p:Platform=ARM64 /detailedsummary + clean: false + maximumCpuCount: true + restoreNugetPackages: false + logProjectEvents: false + createLogFile: false + + - task: MSBuild@1 + displayName: X86 Android build + inputs: + solution: src/CalcManager.Android/CalcManager.Android.vcxproj + msbuildLocationMethod: version + msbuildVersion: latest + msbuildArchitecture: x86 + msbuildArguments: /r /p:Configuration=Release /p:Platform=x86 /detailedsummary + clean: false + maximumCpuCount: true + restoreNugetPackages: false + logProjectEvents: false + createLogFile: false + - task: MSBuild@1 inputs: solution: src/Calculator.sln diff --git a/src/CalcManager.Android/CalcManager.Android.vcxproj b/src/CalcManager.Android/CalcManager.Android.vcxproj index 0c4b267a..9b9c131e 100644 --- a/src/CalcManager.Android/CalcManager.Android.vcxproj +++ b/src/CalcManager.Android/CalcManager.Android.vcxproj @@ -35,62 +35,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + {08a1283c-522b-4820-8c56-361638a82e24} @@ -100,80 +100,92 @@ Android 3.0 - + DynamicLibrary true Clang_5_0 - android-21 + android-27 DynamicLibrary false Clang_5_0 + android-27 DynamicLibrary true Clang_5_0 - android-21 + android-27 DynamicLibrary false Clang_5_0 - android-21 + android-27 DynamicLibrary true Clang_5_0 + android-27 DynamicLibrary false Clang_5_0 + android-27 DynamicLibrary true Clang_5_0 - android-21 + android-27 DynamicLibrary false Clang_5_0 - android-21 + android-27 - + + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ + ../Calculator.Droid/libs/$(Platform)/$(Configuration)/ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h Enabled c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -183,10 +195,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -196,10 +209,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -209,10 +223,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -222,10 +237,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -235,10 +251,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -248,10 +265,11 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true @@ -261,16 +279,17 @@ Use - ..\CalcManager\pch.h + ../CalcManager/pch.h c++1z - $(StlIncludeDirectories);$(Sysroot)\usr\include;$(Sysroot)\usr\include\$(AndroidHeaderTriple);$(VS_NdkRoot)\sources\android\support\include;$(SolutionDir).\CalcManager\;%(AdditionalIncludeDirectories) + ..;../CalcManager;$(StlIncludeDirectories);$(Sysroot)/usr/include;$(Sysroot)/usr/include/$(AndroidHeaderTriple);$(VS_NdkRoot)/sources/android/support/include;$(SolutionDir)./CalcManager/;%(AdditionalIncludeDirectories) Enabled + -Wno-unknown-pragmas -Wno-missing-braces %(AdditionalOptions) true -lm - + \ No newline at end of file diff --git a/src/CalcManager.Android/CalcManager.Android.vcxproj.filters b/src/CalcManager.Android/CalcManager.Android.vcxproj.filters index ed56f71d..fba4455c 100644 --- a/src/CalcManager.Android/CalcManager.Android.vcxproj.filters +++ b/src/CalcManager.Android/CalcManager.Android.vcxproj.filters @@ -12,139 +12,61 @@ - - - - - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - CEngine - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - - - RatPack - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - RatPack - - - RatPack - - - RatPack - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/CalcManager/CCalcManager.cpp b/src/CalcManager/CCalcManager.cpp index 448495fb..e8abad1d 100644 --- a/src/CalcManager/CCalcManager.cpp +++ b/src/CalcManager/CCalcManager.cpp @@ -384,14 +384,14 @@ void CalculatorManager_UpdateMaxIntDigits(void* manager) AsManager(manager)->UpdateMaxIntDigits(); } -const char* CalculatorManager_DecimalSeparator(void* manager) +const wchar_t* CalculatorManager_DecimalSeparator(void* manager) { auto res = AsManager(manager)->DecimalSeparator(); - std::wstring_convert> convert; - auto str = convert.to_bytes(res); + std::wstring ret; + ret += res; - return str.data(); + return ToWChar(ret); } bool CalculatorManager_RemoveHistoryItem(void* manager, int uIdx) diff --git a/src/CalcManager/CCalcManager.h b/src/CalcManager/CCalcManager.h index 80f574f8..caeaa493 100644 --- a/src/CalcManager/CCalcManager.h +++ b/src/CalcManager/CCalcManager.h @@ -101,7 +101,7 @@ extern "C" DLL_EXPORT const wchar_t* CalculatorManager_GetResultForRadix(void* manager, int radix, int precision); DLL_EXPORT void CalculatorManager_SetPrecision(void* manager, int precision); DLL_EXPORT void CalculatorManager_UpdateMaxIntDigits(void* manager); - DLL_EXPORT const char* CalculatorManager_DecimalSeparator(void* manager); + DLL_EXPORT const wchar_t* CalculatorManager_DecimalSeparator(void* manager); DLL_EXPORT bool CalculatorManager_RemoveHistoryItem(void* manager, int uIdx); DLL_EXPORT void CalculatorManager_ClearHistory(void* manager); DLL_EXPORT size_t CalculatorManager_MaxHistorySize(void* manager); diff --git a/src/Calculator.Droid/Calculator.Droid.csproj b/src/Calculator.Droid/Calculator.Droid.csproj index 160ab524..0977d008 100644 --- a/src/Calculator.Droid/Calculator.Droid.csproj +++ b/src/Calculator.Droid/Calculator.Droid.csproj @@ -16,7 +16,7 @@ Resources\Resource.Designer.cs Off False - v8.0 + v9.0 Properties\AndroidManifest.xml True ..\Calculator.Shared\Strings @@ -84,15 +84,18 @@ - - - {08a1283c-522b-4820-8c56-361638a82e24} - CalcManager.Android - Android - false - - - + + + armeabi-v7a + + + arm64-v8a + + + x86 + + + - \ No newline at end of file + diff --git a/src/Calculator.Droid/Properties/AndroidManifest.xml b/src/Calculator.Droid/Properties/AndroidManifest.xml index f789a779..590aa4a3 100644 --- a/src/Calculator.Droid/Properties/AndroidManifest.xml +++ b/src/Calculator.Droid/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs index f636b9cd..b1cf2f04 100644 --- a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs +++ b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs @@ -73,7 +73,7 @@ namespace CalculationManager public static extern void CalculatorManager_UpdateMaxIntDigits(IntPtr nativeManager); [DllImport(DllPath)] - public static extern char CalculatorManager_DecimalSeparator(IntPtr nativeManager); + public static extern IntPtr CalculatorManager_DecimalSeparator(IntPtr nativeManager); [DllImport(DllPath)] public static extern bool CalculatorManager_RemoveHistoryItem(IntPtr nativeManager, int uIdx); diff --git a/src/Calculator.Shared/CalcManager/CalculatorManager.cs b/src/Calculator.Shared/CalcManager/CalculatorManager.cs index cfc919c8..2704e87a 100644 --- a/src/Calculator.Shared/CalcManager/CalculatorManager.cs +++ b/src/Calculator.Shared/CalcManager/CalculatorManager.cs @@ -4,6 +4,7 @@ using CalculatorApp; using System; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using System.Runtime.InteropServices; using System.Text; @@ -217,7 +218,10 @@ namespace CalculationManager => NativeDispatch.CalculatorManager_UpdateMaxIntDigits(_nativeManager); public char DecimalSeparator() - => NativeDispatch.CalculatorManager_DecimalSeparator(_nativeManager); + { + var pString = NativeDispatch.CalculatorManager_DecimalSeparator(_nativeManager); + return NativeDispatch.PtrToString(pString).FirstOrDefault(); + } public List GetHistoryItems() { diff --git a/src/Calculator.Shared/Controls/CalculationResult.cs b/src/Calculator.Shared/Controls/CalculationResult.cs index e2357a09..11f5b406 100644 --- a/src/Calculator.Shared/Controls/CalculationResult.cs +++ b/src/Calculator.Shared/Controls/CalculationResult.cs @@ -131,7 +131,7 @@ namespace CalculatorApp public static readonly DependencyProperty IsOperatorCommandProperty = DependencyProperty.Register("IsOperatorCommand", typeof(bool), typeof(CalculationResult), new PropertyMetadata(false)); - public event SelectedEventHandler Selected; + public event SelectedEventHandler ValueSelected; private Windows.UI.Xaml.Controls.ScrollViewer m_textContainer; @@ -532,7 +532,7 @@ namespace CalculatorApp void RaiseSelectedEvent() { - Selected?.Invoke(this); + ValueSelected?.Invoke(this); } }; } diff --git a/src/Calculator.Shared/Views/UnitConverter.xaml b/src/Calculator.Shared/Views/UnitConverter.xaml index 03ad7a16..8af21067 100644 --- a/src/Calculator.Shared/Views/UnitConverter.xaml +++ b/src/Calculator.Shared/Views/UnitConverter.xaml @@ -504,7 +504,7 @@ FlowDirection="{x:Bind LayoutDirection}" IsActive="{Binding Value1Active, Mode=TwoWay}" KeyDown="OnValueKeyDown" - Selected="OnValueSelected" + ValueSelected="OnValueSelected" TabIndex="1"/>