diff --git a/.gitignore b/.gitignore
index 3fc7a26..fba313c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ Thumbs.db
*.suo
*.log
[Bb]in
+[Oo]bj
*.cache
*.Cache
*.ncrunchsolution*
diff --git a/src/Cimbalino.Toolkit (WP8)/Behaviors/MultiBindingItemCollection.cs b/src/Cimbalino.Toolkit (WP8)/Behaviors/MultiBindingItemCollection.cs
index db570f0..9ea9470 100644
--- a/src/Cimbalino.Toolkit (WP8)/Behaviors/MultiBindingItemCollection.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Behaviors/MultiBindingItemCollection.cs
@@ -117,7 +117,7 @@ private void UpdateSource()
{
_updating = true;
- for (var index = 0; index < Count; index++)
+ for (var index = 0; index < this.Count; index++)
{
var multiBindingItem = this[index] as MultiBindingItem;
diff --git a/src/Cimbalino.Toolkit (WP8)/Converters/ValueConverterBase.cs b/src/Cimbalino.Toolkit (WP8)/Converters/ValueConverterBase.cs
index 9ad945e..9ae4fa4 100644
--- a/src/Cimbalino.Toolkit (WP8)/Converters/ValueConverterBase.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Converters/ValueConverterBase.cs
@@ -51,7 +51,7 @@ public abstract class ValueConverterBase : DependencyObject, IValueConverter
/// The value to be passed to the source object.
public abstract object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);
-#if WINDOWS_PHONE_APP || WINDOWS_APP
+#if WINDOWS_PHONE_APP || WINDOWS_APP || WINDOWS_UAP
object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
{
var cultureInfo = !string.IsNullOrEmpty(language) ? new CultureInfo(language) : null;
diff --git a/src/Cimbalino.Toolkit (WP8)/Extensions/FrameworkElementExtensions.cs b/src/Cimbalino.Toolkit (WP8)/Extensions/FrameworkElementExtensions.cs
index c860446..e94b8c2 100644
--- a/src/Cimbalino.Toolkit (WP8)/Extensions/FrameworkElementExtensions.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Extensions/FrameworkElementExtensions.cs
@@ -18,6 +18,11 @@
using System.Windows.Interactivity;
using TriggerBase = System.Windows.Interactivity.TriggerBase;
using TriggerCollection = System.Windows.Interactivity.TriggerCollection;
+#elif WINDOWS_UAP
+using Windows.UI.Xaml;
+using Cimbalino.Toolkit.Behaviors;
+using Microsoft.Xaml.Interactivity;
+using System.Linq;
#else
using System.Linq;
using Cimbalino.Toolkit.Behaviors;
@@ -67,7 +72,11 @@ public static T GetBehavior(this FrameworkElement frameworkElement)
if (behaviorsCollection != null)
{
+#if !WINDOWS_UAP
return behaviorsCollection.OfType().FirstOrDefault();
+#else
+ return (T)behaviorsCollection.FirstOrDefault(x => x.GetType() == typeof(T));
+#endif
}
return null;
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/DisplayPropertiesService.cs b/src/Cimbalino.Toolkit (WP8)/Services/DisplayPropertiesService.cs
index cc081ee..1d29af8 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/DisplayPropertiesService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/DisplayPropertiesService.cs
@@ -164,7 +164,7 @@ public virtual double RawPixelsPerViewPixel
{
#if WINDOWS_PHONE
return 1.0;
-#elif WINDOWS_PHONE_APP
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
return DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
#else
return DisplayInformation.GetForCurrentView().LogicalDpi / 96.0;
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/EmailComposeService.cs b/src/Cimbalino.Toolkit (WP8)/Services/EmailComposeService.cs
index 8d0a57b..03e5808 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/EmailComposeService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/EmailComposeService.cs
@@ -19,6 +19,10 @@
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Email;
+#elif WINDOWS_UAP
+using System;
+using System.Threading.Tasks;
+using Windows.ApplicationModel.Email;
#else
using System;
using System.Threading.Tasks;
@@ -79,7 +83,7 @@ public virtual Task ShowAsync(string to, string cc, string bcc, string subject,
return Task.FromResult(0);
}
-#elif WINDOWS_PHONE_APP
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
public async virtual Task ShowAsync(string to, string cc, string bcc, string subject, string body)
{
var emailMessage = new EmailMessage
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/MapManagerService.cs b/src/Cimbalino.Toolkit (WP8)/Services/MapManagerService.cs
index 55efd3f..231a43f 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/MapManagerService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/MapManagerService.cs
@@ -16,6 +16,8 @@
using Microsoft.Phone.Tasks;
#elif WINDOWS_PHONE_APP
using Windows.Services.Maps;
+#elif WINDOWS_UAP
+using Windows.Services.Maps;
#else
using System;
#endif
@@ -34,7 +36,7 @@ public virtual void ShowDownloadedMapsUI()
{
#if WINDOWS_PHONE
new MapDownloaderTask().Show();
-#elif WINDOWS_PHONE_APP
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
MapManager.ShowDownloadedMapsUI();
#else
throw new NotSupportedException();
@@ -48,7 +50,7 @@ public virtual void ShowMapsUpdateUI()
{
#if WINDOWS_PHONE
new MapUpdaterTask().Show();
-#elif WINDOWS_PHONE_APP
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
MapManager.ShowMapsUpdateUI();
#else
throw new NotSupportedException();
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/PhoneCallService.cs b/src/Cimbalino.Toolkit (WP8)/Services/PhoneCallService.cs
index 0d942bd..506023e 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/PhoneCallService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/PhoneCallService.cs
@@ -18,11 +18,20 @@
#elif WINDOWS_PHONE_APP
using System.Threading.Tasks;
using Windows.ApplicationModel.Calls;
+using Cimbalino.Toolkit.Core.Helpers;
+#elif WINDOWS_UAP
+using System.Threading.Tasks;
+using Windows.ApplicationModel.Calls;
+using Cimbalino.Toolkit.Core.Helpers;
+using System;
+using Windows.System;
+using Cimbalino.Toolkit.Extensions;
#else
using System;
using System.Threading.Tasks;
using Cimbalino.Toolkit.Extensions;
using Windows.System;
+using Cimbalino.Toolkit.Core.Helpers;
#endif
namespace Cimbalino.Toolkit.Services
@@ -63,11 +72,32 @@ public virtual Task ShowAsync(string phoneNumber, string displayName)
public virtual Task ShowAsync(string phoneNumber, string displayName)
{
PhoneCallManager.ShowPhoneCallUI(phoneNumber, displayName);
+
+ return Task.FromResult(0);
+ }
+#elif WINDOWS_UAP
+ public virtual Task ShowAsync(string phoneNumber, string displayName)
+ {
+ if (ApiHelper.SupportsPhoneCalls)
+ {
+ PhoneCallManager.ShowPhoneCallUI(phoneNumber, displayName);
+ }
+ else
+ {
+ return CallByUri(phoneNumber, displayName);
+ }
return Task.FromResult(0);
}
#else
- public async virtual Task ShowAsync(string phoneNumber, string displayName)
+ public virtual Task ShowAsync(string phoneNumber, string displayName)
+ {
+ return CallByUri(phoneNumber, displayName);
+ }
+#endif
+
+#if WINDOWS_APP || WINDOWS_UAP
+ private async Task CallByUri(string phoneNumber, string displayName)
{
var phoneCallUri = new UriBuilder("tel:")
.SetPath(phoneNumber)
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/SmsComposeService.cs b/src/Cimbalino.Toolkit (WP8)/Services/SmsComposeService.cs
index bf765b2..04b6661 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/SmsComposeService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/SmsComposeService.cs
@@ -19,6 +19,13 @@
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Chat;
+#elif WINDOWS_UAP
+using System;
+using System.Threading.Tasks;
+using Cimbalino.Toolkit.Core.Helpers;
+using Cimbalino.Toolkit.Extensions;
+using Windows.ApplicationModel.Chat;
+using Windows.System;
#else
using System;
using System.Threading.Tasks;
@@ -61,22 +68,29 @@ public virtual Task ShowAsync(string recipient, string body)
return Task.FromResult(0);
}
#elif WINDOWS_PHONE_APP
- public async virtual Task ShowAsync(string recipient, string body)
+ public virtual Task ShowAsync(string recipient, string body)
{
- var chatMessage = new ChatMessage
- {
- Body = body
- };
-
- if (!string.IsNullOrEmpty(recipient))
+ return SendByChat(recipient, body);
+ }
+#elif WINDOWS_UAP
+ public virtual Task ShowAsync(string recipient, string body)
+ {
+ if (ApiHelper.SupportsChat)
{
- chatMessage.Recipients.Add(recipient);
+ return SendByChat(recipient, body);
}
- await ChatMessageManager.ShowComposeSmsMessageAsync(chatMessage);
+ return SendByUri(recipient, body);
}
#else
- public async virtual Task ShowAsync(string recipient, string body)
+ public virtual Task ShowAsync(string recipient, string body)
+ {
+ return SendByUri(recipient, body);
+ }
+#endif
+
+#if WINDOWS_APP || WINDOWS_UAP
+ private async Task SendByUri(string recipient, string body)
{
var smsUri = new UriBuilder("sms:")
.SetPath(recipient)
@@ -86,5 +100,22 @@ public async virtual Task ShowAsync(string recipient, string body)
await Launcher.LaunchUriAsync(smsUri);
}
#endif
+
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
+ private async Task SendByChat(string recipient, string body)
+ {
+ var chatMessage = new ChatMessage
+ {
+ Body = body
+ };
+
+ if (!string.IsNullOrEmpty(recipient))
+ {
+ chatMessage.Recipients.Add(recipient);
+ }
+
+ await ChatMessageManager.ShowComposeSmsMessageAsync(chatMessage);
+ }
+#endif
}
}
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit (WP8)/Services/VibrationService.cs b/src/Cimbalino.Toolkit (WP8)/Services/VibrationService.cs
index e2dc4bb..f6a0e62 100644
--- a/src/Cimbalino.Toolkit (WP8)/Services/VibrationService.cs
+++ b/src/Cimbalino.Toolkit (WP8)/Services/VibrationService.cs
@@ -16,6 +16,11 @@
using System;
using Microsoft.Devices;
#elif WINDOWS_PHONE_APP
+using Cimbalino.Toolkit.Core.Helpers;
+using System;
+using Windows.Phone.Devices.Notification;
+#elif WINDOWS_UAP
+using Cimbalino.Toolkit.Core.Helpers;
using System;
using Windows.Phone.Devices.Notification;
#else
@@ -54,8 +59,11 @@ public virtual void Vibrate(TimeSpan duration)
{
#if WINDOWS_PHONE
VibrateController.Default.Start(duration);
-#elif WINDOWS_PHONE_APP
- VibrationDevice.GetDefault().Vibrate(duration);
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
+ if (ApiHelper.SupportsVibrate)
+ {
+ VibrationDevice.GetDefault().Vibrate(duration);
+ }
#else
throw new NotSupportedException();
#endif
@@ -68,8 +76,11 @@ public virtual void Cancel()
{
#if WINDOWS_PHONE
VibrateController.Default.Stop();
-#elif WINDOWS_PHONE_APP
- VibrationDevice.GetDefault().Cancel();
+#elif WINDOWS_PHONE_APP || WINDOWS_UAP
+ if (ApiHelper.SupportsVibrate)
+ {
+ VibrationDevice.GetDefault().Cancel();
+ }
#else
throw new NotSupportedException();
#endif
diff --git a/src/Cimbalino.Toolkit (WPA81)/Services/NavigationService.cs b/src/Cimbalino.Toolkit (WPA81)/Services/NavigationService.cs
index f50f74d..80fafa2 100644
--- a/src/Cimbalino.Toolkit (WPA81)/Services/NavigationService.cs
+++ b/src/Cimbalino.Toolkit (WPA81)/Services/NavigationService.cs
@@ -19,6 +19,15 @@
using Windows.Phone.UI.Input;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
+using Cimbalino.Toolkit.Core.Helpers;
+#elif WINDOWS_UAP
+using System;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using System.Collections.Generic;
+using Cimbalino.Toolkit.Extensions;
+using Windows.Phone.UI.Input;
+using Cimbalino.Toolkit.Core.Helpers;
#else
using System;
using System.Collections.Generic;
@@ -44,7 +53,7 @@ public class NavigationService : INavigationService
///
/// Occurs when the user presses the hardware Back button.
///
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
public event EventHandler BackKeyPressed;
#else
public event EventHandler BackKeyPressed
@@ -99,45 +108,16 @@ public virtual Uri CurrentSource
}
}
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
///
/// Initializes a new instance of the class.
///
public NavigationService()
{
- HardwareButtons.BackPressed += (s, e) =>
+ if (ApiHelper.SupportsBackButton)
{
- var eventArgs = new NavigationServiceBackKeyPressedEventArgs();
-
- RaiseBackKeyPressed(eventArgs);
-
- switch (eventArgs.Behavior)
- {
- case NavigationServiceBackKeyPressedBehavior.GoBack:
- if (EnsureMainFrame() && _mainFrame.CanGoBack)
- {
- _mainFrame.GoBack();
-
- e.Handled = true;
- }
- break;
-
- case NavigationServiceBackKeyPressedBehavior.HideApp:
- break;
-
- case NavigationServiceBackKeyPressedBehavior.ExitApp:
- e.Handled = true;
- Application.Current.Exit();
- break;
-
- case NavigationServiceBackKeyPressedBehavior.DoNothing:
- e.Handled = true;
- break;
-
- default:
- throw new ArgumentOutOfRangeException();
- }
- };
+ HardwareButtons.BackPressed += HardwareButtons_BackPressed;
+ }
}
#endif
@@ -265,34 +245,33 @@ public virtual bool RemoveBackEntry()
return false;
}
- ///
+ private bool backPressedHandlerSet;
+ ///
/// Ensure that a instance has been found.
///
/// true if a instance has been found; otherwise, false.
protected virtual bool EnsureMainFrame()
{
- if (_mainFrame != null)
- {
- return true;
- }
-
_mainFrame = Window.Current.Content as Frame;
if (_mainFrame != null)
{
- _mainFrame.Navigated += (s, e) =>
- {
- CurrentParameter = e.Parameter;
-
- RaiseNavigated(null);
- };
-
+ _mainFrame.Navigated -= Frame_Navigated;
+ _mainFrame.Navigated += Frame_Navigated;
+
return true;
}
return false;
}
+ private void Frame_Navigated(object sender, Windows.UI.Xaml.Navigation.NavigationEventArgs e)
+ {
+ CurrentParameter = e.Parameter;
+
+ RaiseNavigated(EventArgs.Empty);
+ }
+
///
/// Raises the event with the provided event data.
///
@@ -300,26 +279,45 @@ protected virtual bool EnsureMainFrame()
protected virtual void RaiseNavigated(EventArgs eventArgs)
{
var eventHandler = Navigated;
+ eventHandler?.Invoke(this, eventArgs);
+ }
- if (eventHandler != null)
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
+ private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
+ {
+ var eventArgs = new NavigationServiceBackKeyPressedEventArgs();
+ RaiseBackKeyPressed(eventArgs);
+ switch (eventArgs.Behavior)
{
- eventHandler(this, eventArgs);
+ case NavigationServiceBackKeyPressedBehavior.GoBack:
+ if (_mainFrame.CanGoBack)
+ {
+ _mainFrame.GoBack();
+ e.Handled = true;
+ }
+ break;
+ case NavigationServiceBackKeyPressedBehavior.HideApp:
+ break;
+ case NavigationServiceBackKeyPressedBehavior.ExitApp:
+ e.Handled = true;
+ Application.Current.Exit();
+ break;
+ case NavigationServiceBackKeyPressedBehavior.DoNothing:
+ e.Handled = true;
+ break;
+ default:
+ throw new ArgumentOutOfRangeException();
}
}
-
-#if WINDOWS_PHONE_APP
- ///
+
+ ///
/// Raises the event with the provided event data.
///
/// The event data.
protected virtual void RaiseBackKeyPressed(NavigationServiceBackKeyPressedEventArgs eventArgs)
{
var eventHandler = BackKeyPressed;
-
- if (eventHandler != null)
- {
- eventHandler(this, eventArgs);
- }
+ eventHandler?.Invoke(this, eventArgs);
}
#endif
}
diff --git a/src/Cimbalino.Toolkit (WPA81)/Services/StatusBarService.cs b/src/Cimbalino.Toolkit (WPA81)/Services/StatusBarService.cs
index b940883..0654e96 100644
--- a/src/Cimbalino.Toolkit (WPA81)/Services/StatusBarService.cs
+++ b/src/Cimbalino.Toolkit (WPA81)/Services/StatusBarService.cs
@@ -16,11 +16,10 @@
using System;
using System.Threading.Tasks;
#else
+using Cimbalino.Toolkit.Core.Helpers;
using System;
using System.Threading.Tasks;
using Windows.UI.ViewManagement;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
#endif
namespace Cimbalino.Toolkit.Services
@@ -70,7 +69,12 @@ public virtual Task ShowAsync(string text, double value)
#if WINDOWS_APP
throw new NotSupportedException();
#else
- return ShowAsync(text, value, false);
+ if (ApiHelper.SupportsStatusBar)
+ {
+ return ShowAsync(text, value, false);
+ }
+
+ return Task.FromResult(0);
#endif
}
@@ -84,17 +88,22 @@ public virtual Task HideAsync()
throw new NotSupportedException();
}
#else
- public virtual async Task HideAsync()
+ public virtual Task HideAsync()
{
- var statusBar = StatusBar.GetForCurrentView();
-
- if (statusBar != null)
+ if (ApiHelper.SupportsStatusBar)
{
- await statusBar.ProgressIndicator.HideAsync();
+ var statusBar = StatusBar.GetForCurrentView();
+
+ if (statusBar != null)
+ {
+ return statusBar.ProgressIndicator.HideAsync().AsTask();
+ }
}
+
+ return Task.FromResult(0);
}
- private async Task ShowAsync(string text, double value, bool isIndeterminate)
+ private Task ShowAsync(string text, double value, bool isIndeterminate)
{
var statusBar = StatusBar.GetForCurrentView();
@@ -103,8 +112,10 @@ private async Task ShowAsync(string text, double value, bool isIndeterminate)
statusBar.ProgressIndicator.Text = text;
statusBar.ProgressIndicator.ProgressValue = isIndeterminate ? (double?)null : value;
- await statusBar.ProgressIndicator.ShowAsync();
+ return statusBar.ProgressIndicator.ShowAsync().AsTask();
}
+
+ return Task.FromResult(0);
}
#endif
}
diff --git a/src/Cimbalino.Toolkit (Win10)/.gitignore b/src/Cimbalino.Toolkit (Win10)/.gitignore
new file mode 100644
index 0000000..3529ad9
--- /dev/null
+++ b/src/Cimbalino.Toolkit (Win10)/.gitignore
@@ -0,0 +1,29 @@
+
+#ignore thumbnails created by windows
+Thumbs.db
+#Ignore files build by Visual Studio
+*.obj
+*.exe
+*.pdb
+*.user
+*.aps
+*.pch
+*.vspscc
+*_i.c
+*_p.c
+*.ncb
+*.suo
+*.tlb
+*.tlh
+*.bak
+*.cache
+*.ilk
+*.log
+[Bb]in
+[Dd]ebug*/
+*.lib
+*.sbr
+obj/
+[Rr]elease*/
+_ReSharper*/
+[Tt]est[Rr]esult*
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit (Win10)/Cimbalino.Toolkit (Win10).csproj b/src/Cimbalino.Toolkit (Win10)/Cimbalino.Toolkit (Win10).csproj
new file mode 100644
index 0000000..2703dce
--- /dev/null
+++ b/src/Cimbalino.Toolkit (Win10)/Cimbalino.Toolkit (Win10).csproj
@@ -0,0 +1,261 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}
+ Library
+ Properties
+ Cimbalino.Toolkit
+ Cimbalino.Toolkit
+ en-US
+ UAP
+ 10.0.10030.0
+ 10.0.10030.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ prompt
+ 4
+
+
+ ARM
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ ARM
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+
+
+ x64
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ x64
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+
+
+ x86
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ x86
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+
+
+
+
+ {a4a154f3-a724-4ddc-9761-e6ee0afe2374}
+ Cimbalino.Toolkit.Core %28Win10%29
+
+
+
+
+ Behaviors\AfterAutoFocusEventArgs.cs
+
+
+ Behaviors\AutoFocusBehavior.cs
+
+
+ Behaviors\EnterKeyBehavior.cs
+
+
+ Behaviors\MultiBindingBehavior.cs
+
+
+ Behaviors\MultiBindingItem.cs
+
+
+ Behaviors\MultiBindingItemCollection.cs
+
+
+ Behaviors\ScreenCaptureBehavior.cs
+
+
+ Behaviors\UpdateTextBindingOnPropertyChanged.cs
+
+
+ Converters\BooleanToBrushConverter.cs
+
+
+ Converters\BooleanToIntConverter.cs
+
+
+ Converters\BooleanToStringConverter.cs
+
+
+ Converters\BooleanToValueConverterBase.cs
+
+
+ Converters\BooleanToVisibilityConverter.cs
+
+
+ Converters\ColorToBrushConverter.cs
+
+
+ Converters\MultiValueConverterBase.cs
+
+
+ Converters\NegativeBooleanConverter.cs
+
+
+ Converters\NullToVisibilityConverter.cs
+
+
+ Converters\StringFormatConverter.cs
+
+
+ Converters\StringRegexConverter.cs
+
+
+ Converters\StringToLowercaseConverter.cs
+
+
+ Converters\StringToUppercaseConverter.cs
+
+
+ Converters\StringToVisibilityConverter.cs
+
+
+ Converters\ValueConverterBase.cs
+
+
+ Extensions\FrameworkElementExtensions.cs
+
+
+ Helpers\NamescopeBinding.cs
+
+
+ Services\DeviceSettingsService.cs
+
+
+ Services\DisplayPropertiesService.cs
+
+
+ Services\EmailComposeService.cs
+
+
+ Services\LauncherService.cs
+
+
+ Services\MapManagerService.cs
+
+
+ Services\MessageBoxService.cs
+
+
+ Services\PhoneCallService.cs
+
+
+ Services\SmsComposeService.cs
+
+
+ Services\StoreService.cs
+
+
+ Services\VibrationService.cs
+
+
+ Behaviors\Behavior.cs
+
+
+ Behaviors\Behavior{T}.cs
+
+
+ Helpers\DependencyObjectCollection{T}.cs
+
+
+ Services\NavigationService.cs
+
+
+ Services\StatusBarService.cs
+
+
+
+
+
+ Behaviors SDK %28XAML%29
+
+
+
+
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit (Win10)/Properties/AssemblyInfo.cs b/src/Cimbalino.Toolkit (Win10)/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..87aa0d0
--- /dev/null
+++ b/src/Cimbalino.Toolkit (Win10)/Properties/AssemblyInfo.cs
@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("Cimbalino.Toolkit")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Cimbalino.Toolkit")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: ComVisible(false)]
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit.Core (Portable)/Services/RuntimeInformationServiceProfile.cs b/src/Cimbalino.Toolkit.Core (Portable)/Services/RuntimeInformationServiceProfile.cs
index 26876c6..b72f059 100644
--- a/src/Cimbalino.Toolkit.Core (Portable)/Services/RuntimeInformationServiceProfile.cs
+++ b/src/Cimbalino.Toolkit.Core (Portable)/Services/RuntimeInformationServiceProfile.cs
@@ -32,6 +32,11 @@ public enum RuntimeInformationServiceProfile
///
/// Windows Application Runtime.
///
- WindowsApp
+ WindowsApp,
+
+ ///
+ /// Universal Application Runtime.
+ ///
+ UniversalAppPlatform
}
}
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit.Core (WP8)/Services/ApplicationSettingsService.cs b/src/Cimbalino.Toolkit.Core (WP8)/Services/ApplicationSettingsService.cs
index 2ca49d3..6b61276 100644
--- a/src/Cimbalino.Toolkit.Core (WP8)/Services/ApplicationSettingsService.cs
+++ b/src/Cimbalino.Toolkit.Core (WP8)/Services/ApplicationSettingsService.cs
@@ -31,7 +31,7 @@ namespace Cimbalino.Toolkit.Services
public class ApplicationSettingsService : IApplicationSettingsService
{
private static readonly IApplicationSettingsServiceHandler LocalSettingsServiceHandlerStatic, RoamingSettingsServiceHandlerStatic;
-#if WINDOWS_PHONE || WINDOWS_PHONE_APP
+#if !WINDOWS_APP
private static readonly IApplicationSettingsServiceHandler LegacySettingsServiceHandlerStatic;
#endif
@@ -50,7 +50,7 @@ static ApplicationSettingsService()
RoamingSettingsServiceHandlerStatic = new ApplicationSettingsServiceHandler(applicationData.RoamingSettings);
#endif
-#if WINDOWS_PHONE || WINDOWS_PHONE_APP
+#if !WINDOWS_APP
LegacySettingsServiceHandlerStatic = new LegacyApplicationSettingsServiceHandler();
#endif
}
@@ -94,7 +94,7 @@ public virtual IApplicationSettingsServiceHandler Legacy
{
get
{
-#if WINDOWS_PHONE || WINDOWS_PHONE_APP
+#if !WINDOWS_APP
return LegacySettingsServiceHandlerStatic;
#else
throw new NotSupportedException();
diff --git a/src/Cimbalino.Toolkit.Core (WP8)/Services/RuntimeInformationService.cs b/src/Cimbalino.Toolkit.Core (WP8)/Services/RuntimeInformationService.cs
index ba3efeb..4e62087 100644
--- a/src/Cimbalino.Toolkit.Core (WP8)/Services/RuntimeInformationService.cs
+++ b/src/Cimbalino.Toolkit.Core (WP8)/Services/RuntimeInformationService.cs
@@ -38,8 +38,10 @@ public virtual RuntimeInformationServiceProfile Profile
return RuntimeInformationServiceProfile.WindowsPhoneSilverlight;
#elif WINDOWS_PHONE_APP
return RuntimeInformationServiceProfile.WindowsPhoneApp;
-#else
+#elif WINDOWS
return RuntimeInformationServiceProfile.WindowsApp;
+#else
+ return RuntimeInformationServiceProfile.UniversalAppPlatform;
#endif
}
}
diff --git a/src/Cimbalino.Toolkit.Core (WP8)/Services/StorageServiceHandler.cs b/src/Cimbalino.Toolkit.Core (WP8)/Services/StorageServiceHandler.cs
index cdcdd6f..598d040 100644
--- a/src/Cimbalino.Toolkit.Core (WP8)/Services/StorageServiceHandler.cs
+++ b/src/Cimbalino.Toolkit.Core (WP8)/Services/StorageServiceHandler.cs
@@ -127,7 +127,7 @@ public async virtual Task DeleteFileAsync(string path)
/// The object representing the asynchronous operation.
public async virtual Task DirectoryExistsAsync(string dir)
{
-#if WINDOWS_APP
+#if WINDOWS_APP || WINDOWS_UAP
return await _storageFolder.TryGetItemAsync(dir) is StorageFolder;
#else
try
@@ -150,7 +150,7 @@ public async virtual Task DirectoryExistsAsync(string dir)
/// The object representing the asynchronous operation.
public async virtual Task FileExistsAsync(string path)
{
-#if WINDOWS_APP
+#if WINDOWS_APP || WINDOWS_UAP
return await _storageFolder.TryGetItemAsync(path) is StorageFile;
#else
try
diff --git a/src/Cimbalino.Toolkit.Core (WPA81)/Cimbalino.Toolkit.Core (WPA81).csproj b/src/Cimbalino.Toolkit.Core (WPA81)/Cimbalino.Toolkit.Core (WPA81).csproj
index 9242dd5..df225f5 100644
--- a/src/Cimbalino.Toolkit.Core (WPA81)/Cimbalino.Toolkit.Core (WPA81).csproj
+++ b/src/Cimbalino.Toolkit.Core (WPA81)/Cimbalino.Toolkit.Core (WPA81).csproj
@@ -264,6 +264,9 @@
Services\WindowsStoreServiceAppScreenshotNode.cs
+
+ Helpers\ApiHelper.cs
+
System\Security\Cryptography\HashAlgorithmBase.cs
diff --git a/src/Cimbalino.Toolkit.Core (WPA81)/Services/DeviceStatusService.cs b/src/Cimbalino.Toolkit.Core (WPA81)/Services/DeviceStatusService.cs
index 7fc8f79..d23982e 100644
--- a/src/Cimbalino.Toolkit.Core (WPA81)/Services/DeviceStatusService.cs
+++ b/src/Cimbalino.Toolkit.Core (WPA81)/Services/DeviceStatusService.cs
@@ -12,15 +12,24 @@
//
// ****************************************************************************
+
+
#if WINDOWS_PHONE_APP
+using Cimbalino.Toolkit.Core.Helpers;
using System;
using Windows.Devices.Input;
using Windows.Security.ExchangeActiveSyncProvisioning;
using Windows.System;
+#elif WINDOWS_APP
+using System;
+using Windows.Devices.Input;
+using Windows.Security.ExchangeActiveSyncProvisioning;
#else
+using Cimbalino.Toolkit.Core.Helpers;
using System;
using Windows.Devices.Input;
using Windows.Security.ExchangeActiveSyncProvisioning;
+using Windows.System;
#endif
namespace Cimbalino.Toolkit.Services
@@ -50,7 +59,12 @@ public virtual long ApplicationCurrentMemoryUsage
{
get
{
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
+ if (!ApiHelper.SupportsMemoryManager)
+ {
+ return -1;
+ }
+
return (long)MemoryManager.AppMemoryUsage;
#else
throw new NotSupportedException();
@@ -68,7 +82,12 @@ public virtual long ApplicationMemoryUsageLimit
{
get
{
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
+ if (!ApiHelper.SupportsMemoryManager)
+ {
+ return -1;
+ }
+
return (long)MemoryManager.AppMemoryUsageLimit;
#else
throw new NotSupportedException();
@@ -96,7 +115,7 @@ public virtual string DeviceFirmwareVersion
{
get
{
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
return _easClientDeviceInformation.SystemFirmwareVersion;
#else
throw new NotSupportedException();
@@ -112,7 +131,7 @@ public virtual string DeviceHardwareVersion
{
get
{
-#if WINDOWS_PHONE_APP
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
return _easClientDeviceInformation.SystemHardwareVersion;
#else
throw new NotSupportedException();
@@ -128,7 +147,11 @@ public virtual string DeviceManufacturer
{
get
{
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
return _easClientDeviceInformation.SystemManufacturer;
+#else
+ return string.Empty;
+#endif
}
}
@@ -140,7 +163,11 @@ public virtual string DeviceName
{
get
{
+#if WINDOWS_PHONE_APP || WINDOWS_UAP
return _easClientDeviceInformation.SystemProductName;
+#else
+ return string.Empty;
+#endif
}
}
diff --git a/src/Cimbalino.Toolkit.Core (WPA81)/Services/LegacyApplicationSettingsServiceHandler.cs b/src/Cimbalino.Toolkit.Core (WPA81)/Services/LegacyApplicationSettingsServiceHandler.cs
index 33a40d2..feaa2d2 100644
--- a/src/Cimbalino.Toolkit.Core (WPA81)/Services/LegacyApplicationSettingsServiceHandler.cs
+++ b/src/Cimbalino.Toolkit.Core (WPA81)/Services/LegacyApplicationSettingsServiceHandler.cs
@@ -86,6 +86,12 @@ public virtual void Remove(string key)
/// The object representing the asynchronous operation.
public async virtual Task>> GetValuesAsync()
{
+#if WINDOWS_UAP
+ if(await ApplicationData.Current.LocalFolder.TryGetItemAsync("__ApplicationSettings") == null)
+ {
+ return new Dictionary();
+ }
+#endif
try
{
using (var fileStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("__ApplicationSettings"))
diff --git a/src/Cimbalino.Toolkit.Core (Win10)/.gitignore b/src/Cimbalino.Toolkit.Core (Win10)/.gitignore
new file mode 100644
index 0000000..3529ad9
--- /dev/null
+++ b/src/Cimbalino.Toolkit.Core (Win10)/.gitignore
@@ -0,0 +1,29 @@
+
+#ignore thumbnails created by windows
+Thumbs.db
+#Ignore files build by Visual Studio
+*.obj
+*.exe
+*.pdb
+*.user
+*.aps
+*.pch
+*.vspscc
+*_i.c
+*_p.c
+*.ncb
+*.suo
+*.tlb
+*.tlh
+*.bak
+*.cache
+*.ilk
+*.log
+[Bb]in
+[Dd]ebug*/
+*.lib
+*.sbr
+obj/
+[Rr]elease*/
+_ReSharper*/
+[Tt]est[Rr]esult*
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit.Core (Win10)/Cimbalino.Toolkit.Core (Win10).csproj b/src/Cimbalino.Toolkit.Core (Win10)/Cimbalino.Toolkit.Core (Win10).csproj
new file mode 100644
index 0000000..34a0d94
--- /dev/null
+++ b/src/Cimbalino.Toolkit.Core (Win10)/Cimbalino.Toolkit.Core (Win10).csproj
@@ -0,0 +1,496 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}
+ Library
+ Properties
+ Cimbalino.Toolkit.Core
+ Cimbalino.Toolkit.Core
+ en-US
+ UAP
+ 10.0.10030.0
+ 10.0.10030.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ prompt
+ 4
+
+
+ ARM
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ ARM
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+
+
+ x64
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ x64
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+
+
+ x86
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ x86
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+
+
+
+
+
+
+ Compression\Adler32.generated.cs
+
+
+ Compression\Crc32.generated.cs
+
+
+ Compression\ZlibStream.cs
+
+
+ Extensions\ByteArrayExtensions.cs
+
+
+ Extensions\DateTimeExtensions.cs
+
+
+ Extensions\DateTimeOffsetExtensions.cs
+
+
+ Extensions\EventHandlerExtensions.cs
+
+
+ Extensions\ICollectionExtensions.cs
+
+
+ Extensions\IComparableExtensions.cs
+
+
+ Extensions\IDictionaryExtensions.cs
+
+
+ Extensions\IEnumerableExtensions.cs
+
+
+ Extensions\IFormattableExtensions.cs
+
+
+ Extensions\IntExtensions.cs
+
+
+ Extensions\ObjectExtensions.cs
+
+
+ Extensions\StreamExtensions.cs
+
+
+ Extensions\StreamReaderExtensions.cs
+
+
+ Extensions\StreamWriterExtensions.cs
+
+
+ Extensions\StringExtensions.cs
+
+
+ Extensions\UriBuilderExtensions.cs
+
+
+ Extensions\UriExtensions.cs
+
+
+ Extensions\WebRequestExtensions.cs
+
+
+ Extensions\XmlReaderExtensions.cs
+
+
+ Foundation\Point.cs
+
+
+ Foundation\Rect.cs
+
+
+ Foundation\Size.cs
+
+
+ Helpers\ApplicationManifest.cs
+
+
+ Helpers\ApplicationManifestAppNode.cs
+
+
+ Helpers\ApplicationManifestBackgroundServiceAgentNode.cs
+
+
+ Helpers\ApplicationManifestDefaultTaskNode.cs
+
+
+ Helpers\ApplicationManifestExtendedTaskNode.cs
+
+
+ Helpers\ApplicationManifestIconPathNode.cs
+
+
+ Helpers\ApplicationManifestLanguageNode.cs
+
+
+ Helpers\ApplicationManifestNamedNode.cs
+
+
+ Helpers\ApplicationManifestTaskNodeBase.cs
+
+
+ Helpers\ApplicationManifestTokenNode.cs
+
+
+ Helpers\ChunkedStream.cs
+
+
+ Helpers\ObservableBase.cs
+
+
+ Helpers\ObservableTask.cs
+
+
+ Helpers\ObservableTaskBase.cs
+
+
+ Helpers\ObservableTask{T}.cs
+
+
+ Helpers\OptimizedObservableCollection.cs
+
+
+ Helpers\WeakAction.cs
+
+
+ Helpers\WeakAction{T}.cs
+
+
+ Helpers\WeakEventSubscription.cs
+
+
+ Helpers\WeakEventSubscription{T}.cs
+
+
+ Helpers\WeakFunc{T,TResult}.cs
+
+
+ Helpers\WeakFunc{TResult}.cs
+
+
+ Services\ApplicationProfileServiceMode.cs
+
+
+ Services\DeviceStatusServicePowerSource.cs
+
+
+ Services\IApplicationManifestService.cs
+
+
+ Services\IApplicationProfileService.cs
+
+
+ Services\IApplicationSettingsService.cs
+
+
+ Services\IApplicationSettingsServiceHandler.cs
+
+
+ Services\IDeviceSettingsService.cs
+
+
+ Services\IDeviceStatusService.cs
+
+
+ Services\IDisplayPropertiesService.cs
+
+
+ Services\IEmailComposeService.cs
+
+
+ Services\ILauncherService.cs
+
+
+ Services\ILocationService.cs
+
+
+ Services\IMapManagerService.cs
+
+
+ Services\IMessageBoxService.cs
+
+
+ Services\INavigationService.cs
+
+
+ Services\INetworkInformationService.cs
+
+
+ Services\IPhoneCallService.cs
+
+
+ Services\IRuntimeInformationService.cs
+
+
+ Services\ISmsComposeService.cs
+
+
+ Services\IStatusBarService.cs
+
+
+ Services\IStorageService.cs
+
+
+ Services\IStorageServiceHandler.cs
+
+
+ Services\IStoreService.cs
+
+
+ Services\IVibrationService.cs
+
+
+ Services\IWindowsPhoneStoreService.cs
+
+
+ Services\IWindowsStoreService.cs
+
+
+ Services\LocationServiceAccuracy.cs
+
+
+ Services\LocationServicePosition.cs
+
+
+ Services\LocationServicePositionChangedEventArgs.cs
+
+
+ Services\LocationServiceStatus.cs
+
+
+ Services\LocationServiceStatusChangedEventArgs.cs
+
+
+ Services\NavigationServiceBackKeyPressedBehavior.cs
+
+
+ Services\NavigationServiceBackKeyPressedEventArgs.cs
+
+
+ Services\RuntimeInformationServiceProfile.cs
+
+
+ Services\WindowsPhoneStoreServiceAppCapabilitiesNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppCapabilityNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppCategoryNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppContentNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppEntryNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppHwCapabilityNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppImageNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppOfferNode.cs
+
+
+ Services\WindowsPhoneStoreServiceAppRatingsDistributionsNode.cs
+
+
+ Services\WindowsStoreServiceAppArchitectureNode.cs
+
+
+ Services\WindowsStoreServiceAppCategoryNode.cs
+
+
+ Services\WindowsStoreServiceAppNode.cs
+
+
+ Services\WindowsStoreServiceAppPackageNode.cs
+
+
+ Services\WindowsStoreServiceAppScreenshotNode.cs
+
+
+ System\Security\Cryptography\HashAlgorithmBase.cs
+
+
+ System\Security\Cryptography\HmacHashAlgorithmBase.cs
+
+
+ System\Security\Cryptography\HMACMD5.cs
+
+
+ System\Security\Cryptography\HMACSHA1.cs
+
+
+ System\Security\Cryptography\HMACSHA256.cs
+
+
+ System\Security\Cryptography\MD5Managed.cs
+
+
+ System\Security\Cryptography\SHA1Managed.cs
+
+
+ System\Security\Cryptography\SHA256Managed.cs
+
+
+ Extensions\DependencyObjectExtensions.cs
+
+
+ Extensions\WriteableBitmapExtensions.cs
+
+
+ Services\ApplicationManifestService.cs
+
+
+ Services\ApplicationProfileService.cs
+
+
+ Services\ApplicationSettingsService.cs
+
+
+ Services\ApplicationSettingsServiceHandler.cs
+
+
+ Services\LocationService.cs
+
+
+ Services\LocationServiceExtensions.cs
+
+
+ Services\NetworkInformationService.cs
+
+
+ Services\RuntimeInformationService.cs
+
+
+ Services\StorageService.cs
+
+
+ Services\StorageServiceHandler.cs
+
+
+ Services\WindowsPhoneStoreService.cs
+
+
+ Extensions\RenderTargetBitmapExtensions.cs
+
+
+ Services\DeviceStatusService.cs
+
+
+ Services\LegacyApplicationSettingsServiceHandler.cs
+
+
+ Services\WindowsStoreService.cs
+
+
+
+
+
+
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit.Core (Win10)/Helpers/ApiHelper.cs b/src/Cimbalino.Toolkit.Core (Win10)/Helpers/ApiHelper.cs
new file mode 100644
index 0000000..c1a78c0
--- /dev/null
+++ b/src/Cimbalino.Toolkit.Core (Win10)/Helpers/ApiHelper.cs
@@ -0,0 +1,32 @@
+#if WINDOWS_UAP
+using Windows.Foundation.Metadata;
+#endif
+
+namespace Cimbalino.Toolkit.Core.Helpers
+{
+ public static class ApiHelper
+ {
+#if WINDOWS_UAP
+ public static bool SupportsBackButton => ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons");
+ public static bool SupportsMemoryManager => ApiInformation.IsTypePresent("Windows.System.MemoryManager");
+ public static bool SupportsPhoneCalls => ApiInformation.IsTypePresent("Windows.ApplicationModel.Calls.PhoneCallManager");
+ public static bool SupportsChat => ApiInformation.IsTypePresent("Windows.ApplicationModel.Chat.ChatMessage");
+ public static bool SupportsVibrate => ApiInformation.IsTypePresent("Windows.Phone.Devices.Notification.VibrationDevice");
+ public static bool SupportsStatusBar => ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar");
+#elif WINDOWS_PHONE_APP
+ public static bool SupportsBackButton => true;
+ public static bool SupportsMemoryManager => true;
+ public static bool SupportsPhoneCalls => true;
+ public static bool SupportsChat => true;
+ public static bool SupportsVibrate => true;
+ public static bool SupportsStatusBar => true;
+#else
+ public static bool SupportsBackButton => false;
+ public static bool SupportsMemoryManager => false;
+ public static bool SupportsPhoneCalls => false;
+ public static bool SupportsChat => false;
+ public static bool SupportsVibrate => false;
+ public static bool SupportsStatusBar => false;
+#endif
+ }
+}
diff --git a/src/Cimbalino.Toolkit.Core (Win10)/Properties/AssemblyInfo.cs b/src/Cimbalino.Toolkit.Core (Win10)/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..2407d73
--- /dev/null
+++ b/src/Cimbalino.Toolkit.Core (Win10)/Properties/AssemblyInfo.cs
@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("Cimbalino.Toolkit.Core")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Cimbalino.Toolkit.Core")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: ComVisible(false)]
\ No newline at end of file
diff --git a/src/Cimbalino.Toolkit.Core (Win81)/Cimbalino.Toolkit.Core (Win81).csproj b/src/Cimbalino.Toolkit.Core (Win81)/Cimbalino.Toolkit.Core (Win81).csproj
index b6eceb7..b029995 100644
--- a/src/Cimbalino.Toolkit.Core (Win81)/Cimbalino.Toolkit.Core (Win81).csproj
+++ b/src/Cimbalino.Toolkit.Core (Win81)/Cimbalino.Toolkit.Core (Win81).csproj
@@ -286,6 +286,9 @@
Services\WindowsStoreServiceAppScreenshotNode.cs
+
+ Helpers\ApiHelper.cs
+
Extensions\DependencyObjectExtensions.cs
diff --git a/src/Cimbalino.Toolkit.sln b/src/Cimbalino.Toolkit.sln
index e86f4e9..05546a4 100644
--- a/src/Cimbalino.Toolkit.sln
+++ b/src/Cimbalino.Toolkit.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30501.0
+# Visual Studio 14
+VisualStudioVersion = 14.0.22512.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cimbalino.Toolkit.Core (Portable)", "Cimbalino.Toolkit.Core (Portable)\Cimbalino.Toolkit.Core (Portable).csproj", "{DF37406D-0261-4F84-9576-35387A3DE8C5}"
ProjectSection(ProjectDependencies) = postProject
@@ -22,6 +22,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cimbalino.Toolkit (WPA81)",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Weavers", "Weavers\Weavers.csproj", "{FE4155A2-8D09-49CB-843B-AE5ED2EA4C43}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cimbalino.Toolkit (Win10)", "Cimbalino.Toolkit (Win10)\Cimbalino.Toolkit (Win10).csproj", "{539C4FDB-99BB-4481-95D9-5BE9B785D7D8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cimbalino.Toolkit.Core (Win10)", "Cimbalino.Toolkit.Core (Win10)\Cimbalino.Toolkit.Core (Win10).csproj", "{A4A154F3-A724-4DDC-9761-E6EE0AFE2374}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -142,6 +146,38 @@ Global
{FE4155A2-8D09-49CB-843B-AE5ED2EA4C43}.Release|ARM.ActiveCfg = Release|Any CPU
{FE4155A2-8D09-49CB-843B-AE5ED2EA4C43}.Release|x64.ActiveCfg = Release|Any CPU
{FE4155A2-8D09-49CB-843B-AE5ED2EA4C43}.Release|x86.ActiveCfg = Release|Any CPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|ARM.ActiveCfg = Debug|ARM
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|ARM.Build.0 = Debug|ARM
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|x64.ActiveCfg = Debug|x64
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|x64.Build.0 = Debug|x64
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|x86.ActiveCfg = Debug|x86
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Debug|x86.Build.0 = Debug|x86
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|ARM.ActiveCfg = Release|ARM
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|ARM.Build.0 = Release|ARM
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|x64.ActiveCfg = Release|x64
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|x64.Build.0 = Release|x64
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|x86.ActiveCfg = Release|x86
+ {539C4FDB-99BB-4481-95D9-5BE9B785D7D8}.Release|x86.Build.0 = Release|x86
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|ARM.ActiveCfg = Debug|ARM
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|ARM.Build.0 = Debug|ARM
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|x64.ActiveCfg = Debug|x64
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|x64.Build.0 = Debug|x64
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|x86.ActiveCfg = Debug|x86
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Debug|x86.Build.0 = Debug|x86
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|ARM.ActiveCfg = Release|ARM
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|ARM.Build.0 = Release|ARM
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|x64.ActiveCfg = Release|x64
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|x64.Build.0 = Release|x64
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|x86.ActiveCfg = Release|x86
+ {A4A154F3-A724-4DDC-9761-E6EE0AFE2374}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE