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"/>