diff --git a/.gitignore b/.gitignore index fd193a46b25..6cf7b464d2c 100644 --- a/.gitignore +++ b/.gitignore @@ -223,3 +223,6 @@ project.lock.json msbuild.binlog *.project.lock.json /build/tools + +#Xamarin.Android resources +Resource.designer.cs \ No newline at end of file diff --git a/.vsts-ci.yml b/.vsts-ci.yml new file mode 100644 index 00000000000..523b586b004 --- /dev/null +++ b/.vsts-ci.yml @@ -0,0 +1,108 @@ +trigger: +- master +- rel/* + +resources: + containers: + - container: nv-bionic-wasm + image: nventive/wasm-build:1.4.1 + +jobs: +- job: Windows + + pool: + vmImage: 'windows-2019' + + variables: + BuildConfiguration: Release + ANDROID_NDK_HOME: C:\Microsoft\AndroidNDK64\android-ndk-r16b + ANDROID_NDK_PATH: C:\Microsoft\AndroidNDK64\android-ndk-r16b + AndroidNdkDirectory: C:\Microsoft\AndroidNDK64\android-ndk-r16b + steps: + - task: BatchScript@1 + inputs: + filename: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\Common7\\Tools\\VsDevCmd.bat" + arguments: -no_logo + modifyEnvironment: true + displayName: Setup Environment Variables + + - task: NuGetToolInstaller@0 + displayName: Use NuGet 5.0.0 + inputs: + versionSpec: 5.0.0 + + - task: NuGetCommand@2 + inputs: + restoreSolution: 'Windows Community Toolkit.sln' + + - task: DotNetCoreCLI@2 + inputs: + command: custom + custom: tool + arguments: install --tool-path . nbgv + displayName: Install NBGV tool + + - script: nbgv cloud + displayName: Set Version + + - powershell: .\build\build.ps1 -target=Package + displayName: Build + + - task: PublishBuildArtifacts@1 + displayName: Publish Package Artifacts + inputs: + pathToPublish: .\Microsoft.Toolkit.Uwp.SampleApp.Wasm\bin\Release\netstandard2.0\dist + artifactType: container + artifactName: Wasm + + - task: PublishBuildArtifacts@1 + displayName: Publish Package Artifacts + inputs: + pathToPublish: .\bin\nupkg + artifactType: container + artifactName: WCT-Packages + condition: always() + +- job: linux + + container: nv-bionic-wasm + + pool: + vmImage: 'ubuntu-16.04' + + variables: + NUGET_PACKAGES: $(build.sourcesdirectory)/.nuget + + steps: + - checkout: self + clean: true + + - bash: | + sudo chmod -R 777 /emsdk + cd /emsdk + sudo ./emsdk activate sdk-1.38.31-64bit + + displayName: 'Setup Emscripten' + + - bash: | + source /emsdk/emsdk_env.sh + cd $(build.sourcesdirectory)/Microsoft.Toolkit.Uwp.SampleApp.Wasm + msbuild /r /p:Configuration=Release $(build.sourcesdirectory)/Microsoft.Toolkit.Uwp.SampleApp.Wasm/Microsoft.Toolkit.Uwp.SampleApp.Wasm.csproj /p:TargetFrameworksOverride=netstandard2.0 /bl:$(build.artifactstagingdirectory)\build.binlog + + - task: CopyFiles@2 + displayName: 'Publish Wasm Binaries' + inputs: + SourceFolder: $(build.sourcesdirectory)/Microsoft.Toolkit.Uwp.SampleApp.Wasm/bin/Release/netstandard2.0/dist + Contents: '**/*.*' + TargetFolder: $(build.artifactstagingdirectory) + CleanTargetFolder: false + OverWrite: false + flattenFolders: false + + - task: PublishBuildArtifacts@1 + # https://developercommunity.visualstudio.com/content/problem/284991/public-vsts-previouw-cant-set-build-number-of-pr-b.html + condition: eq(variables['System.PullRequest.IsFork'], 'False') + inputs: + PathtoPublish: $(build.artifactstagingdirectory) + ArtifactName: wct-aot-drop + ArtifactType: Container diff --git a/Directory.Build.props b/Directory.Build.props index 4f6d23454b8..b27c50236a0 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,16 +1,20 @@ - Microsoft.Toolkit + nventive true true - https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/master/build/nuget.png - https://github.com/windows-toolkit/WindowsCommunityToolkit - https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/license.md - v3.0 release https://github.com/windows-toolkit/WindowsCommunityToolkit/releases + https://raw.githubusercontent.com/unoplatform/Uno.WindowsCommunityToolkit/uno/build/nuget.png + https://github.com/unoplatform/Uno.WindowsCommunityToolkit + https://github.com/unoplatform/Uno.WindowsCommunityToolkit/blob/uno/license.md + v5.1.0 release https://github.com/unoplatform/Uno.WindowsCommunityToolkit/releases (c) .NET Foundation and Contributors. All rights reserved. $(MSBuildThisFileDirectory)Toolkit.ruleset en-US + + + uap10.0.16299;MonoAndroid80;xamarinios10;netstandard2.0 + $(MSBuildProjectName.Contains('.Design')) $(MSBuildProjectName.Contains('Test')) $(MSBuildProjectName.Contains('Uwp')) @@ -21,14 +25,14 @@ - true + true $(MSBuildThisFileDirectory)toolkit.snk - true + @@ -62,7 +66,7 @@ - + @@ -74,14 +78,23 @@ + + $(DefineConstants);__WASM__ + + + + $(NoWarn);CS0649;CS0067;CS1998 + + - $(NoWarn);8002 + $(NoWarn);8002; + $(NoWarn);CS1998 - + @@ -90,4 +103,10 @@ stylecop.json - \ No newline at end of file + + + + $(JAVA_HOME_8_X64) + + + diff --git a/Directory.Build.targets b/Directory.Build.targets index 2f44693b6c2..ee20f262252 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -27,4 +27,11 @@ + + + + + \ No newline at end of file diff --git a/GazeInputTest/GazeInputTest.csproj b/GazeInputTest/GazeInputTest.csproj index a28769ae755..9ed31ed9b6a 100644 --- a/GazeInputTest/GazeInputTest.csproj +++ b/GazeInputTest/GazeInputTest.csproj @@ -128,15 +128,9 @@ - 6.1.5 + 6.2.9 - - - {a5e98964-45b1-442d-a07a-298a3221d81e} - Microsoft.Toolkit.Uwp.Input.GazeInteraction - - 14.0 diff --git a/GazeInputTest/Package.appxmanifest b/GazeInputTest/Package.appxmanifest index 232aef12182..0d7719c3f84 100644 --- a/GazeInputTest/Package.appxmanifest +++ b/GazeInputTest/Package.appxmanifest @@ -1,48 +1,27 @@  - - - - - - - + + + GazeInputTest harishsk Assets\StoreLogo.png - - - + - - - - - + + + + + - diff --git a/Microsoft.Toolkit.Parsers/Microsoft.Toolkit.Parsers.csproj b/Microsoft.Toolkit.Parsers/Microsoft.Toolkit.Parsers.csproj index 42babfcddb7..921e72f2177 100644 --- a/Microsoft.Toolkit.Parsers/Microsoft.Toolkit.Parsers.csproj +++ b/Microsoft.Toolkit.Parsers/Microsoft.Toolkit.Parsers.csproj @@ -1,16 +1,29 @@ - + - netstandard2.0 + $(TargetFrameworksOverride) Windows Community Toolkit .NET Standard Parsers This .NET standard library contains various parsers including Markdown and RSS. It is part of the Windows Community Toolkit. UWP Toolkit Windows Parsers Parsing Markdown RSS + Windows Community Toolkit .NET Standard Parsers + Uno.Microsoft.Toolkit.Parsers - + Full - + $(NoWarn);Uno0001;NU1701 + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Services/AssemblyInfo.cs b/Microsoft.Toolkit.Services/AssemblyInfo.cs new file mode 100644 index 00000000000..eedb25da592 --- /dev/null +++ b/Microsoft.Toolkit.Services/AssemblyInfo.cs @@ -0,0 +1 @@ +using System.Runtime.CompilerServices; diff --git a/Microsoft.Toolkit.Services/Microsoft.Toolkit.Services.csproj b/Microsoft.Toolkit.Services/Microsoft.Toolkit.Services.csproj index 3d3e4fdbb05..73fd0b8e3c0 100644 --- a/Microsoft.Toolkit.Services/Microsoft.Toolkit.Services.csproj +++ b/Microsoft.Toolkit.Services/Microsoft.Toolkit.Services.csproj @@ -1,18 +1,21 @@  - uap10.0.16299;netstandard2.0;NET462 + $(TargetFrameworksOverride) Windows Community Toolkit .NET Standard Services - This .NET standard library enables access to different data sources such as Microsoft Graph, OneDrive, Twitter, Microsoft Translator, and LinkedIn. It is part of the Windows Community Toolkit. - UWP Community Toolkit Windows Microsoft Graph OneDrive Twitter Translator LinkedIn service login OAuth + Uno.Microsoft.Toolkit.Services - + Full - CS8002 + $(NoWarn);CS8002;Uno0001;NU1701 + + + + $(DefineConstants);WINRT - - $(DefineConstants);WINRT + + $(DefineConstants);WINRT @@ -25,9 +28,16 @@ - + + + + + + + + - + @@ -64,9 +74,11 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/MicrosoftGraph/MicrosoftGraphAuthenticationHelper.cs b/Microsoft.Toolkit.Services/Services/MicrosoftGraph/MicrosoftGraphAuthenticationHelper.cs index ed49c3692ed..806d6998edd 100644 --- a/Microsoft.Toolkit.Services/Services/MicrosoftGraph/MicrosoftGraphAuthenticationHelper.cs +++ b/Microsoft.Toolkit.Services/Services/MicrosoftGraph/MicrosoftGraphAuthenticationHelper.cs @@ -20,7 +20,7 @@ namespace Microsoft.Toolkit.Services.MicrosoftGraph /// /// Authentication Helper Using Azure Active Directory v2.0 app Model /// - internal class MicrosoftGraphAuthenticationHelper + public class MicrosoftGraphAuthenticationHelper { /// /// Base Url for service. @@ -47,7 +47,7 @@ internal class MicrosoftGraphAuthenticationHelper /// protected const string LogoutUrlV2Model = "https://login.microsoftonline.com/common/oauth2/v2.0/logout"; -#if WINRT || WINDOWS_UWP +#if WINRT || WINDOWS_UWP || HAS_UNO private const string LogoutUrl = "https://login.microsoftonline.com/common/oauth2/logout"; private const string MicrosoftGraphResource = "https://graph.microsoft.com"; @@ -60,7 +60,7 @@ internal class MicrosoftGraphAuthenticationHelper private static MSAL.PublicClientApplication _identityClient = null; -#if WINRT || WINDOWS_UWP +#if WINRT || WINDOWS_UWP || HAS_UNO /// /// Password vault used to store access tokens /// @@ -82,7 +82,7 @@ internal class MicrosoftGraphAuthenticationHelper /// public MicrosoftGraphAuthenticationHelper() { -#if WINRT || WINDOWS_UWP +#if WINRT || WINDOWS_UWP || HAS_UNO _vault = new Windows.Security.Credentials.PasswordVault(); #endif } @@ -113,7 +113,7 @@ public MicrosoftGraphAuthenticationHelper(string[] delegatedPermissionScopes) internal void CleanToken() { TokenForUser = null; -#if WINRT || WINDOWS_UWP +#if WINRT || WINDOWS_UWP || HAS_UNO _azureAdContext.TokenCache.Clear(); #endif } @@ -217,7 +217,7 @@ public async Task LogoutAsync() return true; } -#if WINRT || WINDOWS_UWP +#if WINRT || WINDOWS_UWP || HAS_UNO /// /// Get a Microsoft Graph access token from Azure AD. /// @@ -231,7 +231,20 @@ public async Task GetUserTokenAsync(string appClientId, string resourceI // refresh silently the token if (TokenForUser == null) { - IdentityModel.Clients.ActiveDirectory.AuthenticationResult userAuthnResult = await _azureAdContext.AcquireTokenAsync(resourceId, appClientId, new Uri(DefaultRedirectUri), new IdentityModel.Clients.ActiveDirectory.PlatformParameters(promptBehavior, false)); + IdentityModel.Clients.ActiveDirectory.AuthenticationResult userAuthnResult = await _azureAdContext.AcquireTokenAsync( + resourceId, + appClientId, + new Uri(DefaultRedirectUri), +#if __IOS__ + new IdentityModel.Clients.ActiveDirectory.PlatformParameters(Windows.UI.Xaml.Application.Current.Window.RootViewController, false) +#elif NETFX_CORE + new IdentityModel.Clients.ActiveDirectory.PlatformParameters(PromptBehavior.Always, false) +#elif __ANDROID__ + new IdentityModel.Clients.ActiveDirectory.PlatformParameters(/*UNO TODO */ null, false) +#else + new IdentityModel.Clients.ActiveDirectory.PlatformParameters() +#endif + ); TokenForUser = userAuthnResult.AccessToken; Expiration = userAuthnResult.ExpiresOn; } @@ -274,5 +287,38 @@ public async Task LogoutAsync(string authenticationModel) return true; } #endif - } + } + +#if HAS_UNO + // + // Summary: + // Indicates whether AcquireToken should automatically prompt only if necessary + // or whether it should prompt regardless of whether there is a cached token. + public enum PromptBehavior + { + // + // Summary: + // Acquire token will prompt the user for credentials only when necessary. If a + // token that meets the requirements is already cached then the user will not be + // prompted. + Auto = 0, + // + // Summary: + // The user will be prompted for credentials even if there is a token that meets + // the requirements already in the cache. + Always = 1, + // + // Summary: + // The user will not be prompted for credentials. If prompting is necessary then + // the AcquireToken request will fail. + Never = 2, + // + // Summary: + // Re-authorizes (through displaying webview) the resource usage, making sure that + // the resulting access token contains updated claims. If user logon cookies are + // available, the user will not be asked for credentials again and the logon dialog + // will dismiss automatically. + RefreshSession = 3 + } +#endif } diff --git a/Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/Uwp/MicrosoftGraphUserServicePhotos.cs b/Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/MicrosoftGraphUserServicePhotos.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/Uwp/MicrosoftGraphUserServicePhotos.cs rename to Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/MicrosoftGraphUserServicePhotos.cs index f27085e5d63..5cc19b73635 100644 --- a/Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/Uwp/MicrosoftGraphUserServicePhotos.cs +++ b/Microsoft.Toolkit.Services/Services/MicrosoftGraph/Platform/MicrosoftGraphUserServicePhotos.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -65,3 +66,4 @@ public async Task GetPhotoAsync() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatform.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatform.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatform.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatform.cs index a6fc14fe568..0847bd57a67 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatform.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatform.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -75,3 +76,4 @@ public OneDriveServicePlatform(Toolkit.Services.OneDrive.OneDriveService service } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatformInitializer.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatformInitializer.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatformInitializer.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatformInitializer.cs index bf66ae11995..d1d0629eec1 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveServicePlatformInitializer.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveServicePlatformInitializer.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -53,3 +54,4 @@ public IOneDriveStorageItemPlatform CreateOneDriveStorageItemPlatformInstance(To } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFilePlatform.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFilePlatform.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFilePlatform.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFilePlatform.cs index a71c9bccdfb..c10ab57c2a9 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFilePlatform.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFilePlatform.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -117,3 +118,4 @@ public OneDriveStorageFilePlatform( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFolderPlatform.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFolderPlatform.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFolderPlatform.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFolderPlatform.cs index e342b4d1ca6..d0d9369d772 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageFolderPlatform.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageFolderPlatform.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -212,3 +213,4 @@ public IncrementalLoadingCollection, } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageItemPlatform.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageItemPlatform.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageItemPlatform.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageItemPlatform.cs index fd4b774f486..2060d7a59cd 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/OneDriveStorageItemPlatform.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/OneDriveStorageItemPlatform.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -101,3 +102,4 @@ private bool IsOfTypeInternal(StorageItemTypes type) } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/UserInfoSettings.cs b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/UserInfoSettings.cs similarity index 99% rename from Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/UserInfoSettings.cs rename to Microsoft.Toolkit.Services/Services/OneDrive/Platform/UserInfoSettings.cs index 21a1f8053b2..e4d6455bca1 100644 --- a/Microsoft.Toolkit.Services/Services/OneDrive/Platform/Uwp/UserInfoSettings.cs +++ b/Microsoft.Toolkit.Services/Services/OneDrive/Platform/UserInfoSettings.cs @@ -1,3 +1,4 @@ +#if WINRT // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -115,3 +116,4 @@ internal void Save() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.Connectivity/Microsoft.Toolkit.Uwp.Connectivity.csproj b/Microsoft.Toolkit.Uwp.Connectivity/Microsoft.Toolkit.Uwp.Connectivity.csproj index 4af1417441f..5f535832778 100644 --- a/Microsoft.Toolkit.Uwp.Connectivity/Microsoft.Toolkit.Uwp.Connectivity.csproj +++ b/Microsoft.Toolkit.Uwp.Connectivity/Microsoft.Toolkit.Uwp.Connectivity.csproj @@ -1,16 +1,24 @@  - uap10.0.16299 - Windows Community Toolkit Devices + $(TargetFrameworksOverride) + Windows Community Toolkit Devices This library enables easier consumption of Devices / Peripherals connected to Windows device. It is part of the Windows Community Toolkit. UWP Toolkit Windows Devices Bluetooth BTLE Networking - + + Uno.Microsoft.Toolkit.Uwp.Connectivity + $(NoWarn);Uno0001;NU1701 + - + + + + + + diff --git a/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid/AlignmentGrid.cs b/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid/AlignmentGrid.cs index 5981e6b2652..9d2f909f5b9 100644 --- a/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid/AlignmentGrid.cs +++ b/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid/AlignmentGrid.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.DeveloperTools /// /// AlignmentGrid is used to display a grid to help aligning controls /// - public class AlignmentGrid : ContentControl + public partial class AlignmentGrid : ContentControl { /// /// Identifies the dependency property. diff --git a/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker/FocusTracker.cs b/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker/FocusTracker.cs index 7aef4dc2fed..c4f72650a6b 100644 --- a/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker/FocusTracker.cs +++ b/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker/FocusTracker.cs @@ -24,7 +24,7 @@ namespace Microsoft.Toolkit.Uwp.DeveloperTools [TemplatePart(Name = "ControlType", Type = typeof(TextBlock))] [TemplatePart(Name = "ControlAutomationName", Type = typeof(TextBlock))] [TemplatePart(Name = "ControlFirstParentWithName", Type = typeof(TextBlock))] - public class FocusTracker : Control + public partial class FocusTracker : Control { /// /// Defines the dependency property. diff --git a/Microsoft.Toolkit.Uwp.DeveloperTools/Microsoft.Toolkit.Uwp.DeveloperTools.csproj b/Microsoft.Toolkit.Uwp.DeveloperTools/Microsoft.Toolkit.Uwp.DeveloperTools.csproj index 88a8e9fce3f..6b04f5964f8 100644 --- a/Microsoft.Toolkit.Uwp.DeveloperTools/Microsoft.Toolkit.Uwp.DeveloperTools.csproj +++ b/Microsoft.Toolkit.Uwp.DeveloperTools/Microsoft.Toolkit.Uwp.DeveloperTools.csproj @@ -1,23 +1,42 @@  - uap10.0.16299 - Windows Community Toolkit Developer Tools + $(TargetFrameworksOverride) + Windows Community Toolkit Developer Tools This library provides XAML user controls and services to help developer building their app. It is part of the Windows Community Toolkit. UWP Toolkit Windows Controls XAML Developer Tools Accessibility AlignmentGrid true - + + Uno.Microsoft.Toolkit.Uwp.DeveloperTools + $(NoWarn);Uno0001;NU1701 + - - - - - - - - + + + + + + + MSBuild:Compile + + + MSBuild:Compile + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.Input.GazeInteraction/Microsoft.Toolkit.UWP.Input.GazeInteraction.vcxproj b/Microsoft.Toolkit.Uwp.Input.GazeInteraction/Microsoft.Toolkit.UWP.Input.GazeInteraction.vcxproj index 8448221e9a6..0c55de18e85 100644 --- a/Microsoft.Toolkit.Uwp.Input.GazeInteraction/Microsoft.Toolkit.UWP.Input.GazeInteraction.vcxproj +++ b/Microsoft.Toolkit.Uwp.Input.GazeInteraction/Microsoft.Toolkit.UWP.Input.GazeInteraction.vcxproj @@ -38,6 +38,7 @@ 10.0.17134.0 10.0 Microsoft.Toolkit.Uwp.Input.GazeInteraction + Uno.Microsoft.Toolkit.Uwp.Input.GazeInteraction diff --git a/Microsoft.Toolkit.Uwp.Notifications.JavaScript/Microsoft.Toolkit.Uwp.Notifications.JavaScript.csproj b/Microsoft.Toolkit.Uwp.Notifications.JavaScript/Microsoft.Toolkit.Uwp.Notifications.JavaScript.csproj index 8ac6f53483a..fe75ba17e27 100644 --- a/Microsoft.Toolkit.Uwp.Notifications.JavaScript/Microsoft.Toolkit.Uwp.Notifications.JavaScript.csproj +++ b/Microsoft.Toolkit.Uwp.Notifications.JavaScript/Microsoft.Toolkit.Uwp.Notifications.JavaScript.csproj @@ -1,4 +1,4 @@ - + uap10.0 @@ -8,7 +8,8 @@ Supports adaptive tiles and adaptive/interactive toasts for Windows 10. It is part of the Windows Community Toolkit. Supports C# and C++ UWP project types (see Microsoft.Toolkit.Uwp.Notifications). Also works with C# portable class libraries and non-UWP C# projects like server projects. notifications win10 windows-10 tile tiles toast toasts badge xml uwp javascript true - + Uno.Microsoft.Toolkit.Uwp.Notifications.JavaScript + diff --git a/Microsoft.Toolkit.Uwp.Notifications/Microsoft.Toolkit.Uwp.Notifications.csproj b/Microsoft.Toolkit.Uwp.Notifications/Microsoft.Toolkit.Uwp.Notifications.csproj index 34f8af0623c..958b6af8a66 100644 --- a/Microsoft.Toolkit.Uwp.Notifications/Microsoft.Toolkit.Uwp.Notifications.csproj +++ b/Microsoft.Toolkit.Uwp.Notifications/Microsoft.Toolkit.Uwp.Notifications.csproj @@ -1,17 +1,20 @@ - + - netstandard1.4;uap10.0;native - $(DefineConstants);NETFX_CORE + $(TargetFrameworksOverride) + $(DefineConstants);NETFX_CORE Windows Community Toolkit Notifications Generate tile, toast, and badge notifications for Windows 10 via code, with the help of IntelliSense, instead of directly using XML. Supports adaptive tiles and adaptive/interactive toasts for Windows 10. It is part of the Windows Community Toolkit. Supports C# and C++ UWP project types (see Microsoft.Toolkit.Uwp.Notifications.JavaScript for the JS version). Also works with C# portable class libraries and non-UWP C# projects like server projects. notifications win10 windows 10 tile tiles toast toasts badge xml uwp c# csharp c++ true - + + Uno.Microsoft.Toolkit.Uwp.Notifications + $(NoWarn);Uno0001;NU1701 + - + diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Assets/AboutAssets.txt b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Assets/AboutAssets.txt new file mode 100644 index 00000000000..dcb04096ff4 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/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/Microsoft.Toolkit.Uwp.SampleApp.Droid/Assets/Fonts/winjs-symbols.ttf b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Assets/Fonts/winjs-symbols.ttf new file mode 100644 index 00000000000..118f5c48501 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Assets/Fonts/winjs-symbols.ttf differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Main.cs b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Main.cs new file mode 100644 index 00000000000..8102581e84f --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Main.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Com.Nostra13.Universalimageloader.Core; +using Windows.UI.Xaml.Media; + +namespace Microsoft.Toolkit.Uwp.SampleApp.Droid +{ + [global::Android.App.ApplicationAttribute( + Label = "@string/app_name", + LargeHeap = true, + HardwareAccelerated = true + , + Theme = "@style/AppTheme" + )] + public class Application : Windows.UI.Xaml.NativeApplication + { + public Application(IntPtr javaReference, JniHandleOwnership transfer) + : base(new App(), javaReference, transfer) + { + ConfigureUniversalImageLoader(); + } + + private void ConfigureUniversalImageLoader() + { + // Create global configuration and initialize ImageLoader with this config + ImageLoaderConfiguration config = new ImageLoaderConfiguration + .Builder(Context) + .Build(); + + ImageLoader.Instance.Init(config); + + ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync; + } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/MainActivity.cs b/Microsoft.Toolkit.Uwp.SampleApp.Droid/MainActivity.cs new file mode 100644 index 00000000000..8745dbe03c7 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/MainActivity.cs @@ -0,0 +1,19 @@ +using Android.App; +using Android.OS; +using Android.Support.V7.App; +using Android.Runtime; +using Android.Widget; +using Android.Content.PM; +using Android.Views; + +namespace Microsoft.Toolkit.Uwp.SampleApp.Droid +{ + [Activity( + MainLauncher = true, + ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize, + WindowSoftInputMode = SoftInput.AdjustPan | SoftInput.StateHidden + )] + public class MainActivity : Windows.UI.Xaml.ApplicationActivity + { + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Microsoft.Toolkit.Uwp.SampleApp.Droid.csproj b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Microsoft.Toolkit.Uwp.SampleApp.Droid.csproj new file mode 100644 index 00000000000..9f16f8f31d1 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Microsoft.Toolkit.Uwp.SampleApp.Droid.csproj @@ -0,0 +1,152 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {AF2B0725-7859-4D38-A340-4474C5040C3F} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {122416d6-6b49-4ee2-a1e8-b825f31c79fe} + Library + Properties + Microsoft.Toolkit.Uwp.SampleApp.Droid + Microsoft.Toolkit.Uwp.SampleApp.Droid + 512 + True + Resources\Resource.designer.cs + Resource + Off + false + v8.0 + Properties\AndroidManifest.xml + Resources + Assets + true + false + Xamarin.Android.Net.AndroidClientHandler + + + True + portable + False + bin\Debug\ + DEBUG;TRACE + prompt + 4 + True + None + False + false + false + false + + + True + portable + True + bin\Release\ + TRACE + prompt + 4 + true + False + SdkOnly + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.0.1-uno.28 + + + + + + {42ca4935-54be-42ea-ac19-992378c08de6} + Microsoft.Toolkit.Parsers + + + {34398053-fc70-4243-84f9-f355defff66d} + Microsoft.Toolkit.Services + + + {e7697922-9555-4cfb-aee0-c5f4d657e559} + Microsoft.Toolkit.Uwp.DeveloperTools + + + {b24a296c-b3eb-4e06-a64e-74ac2d1acc91} + Microsoft.Toolkit.Uwp.UI.Animations + + + {ae9086c5-6aad-4f37-b93d-1eb491aa8356} + Microsoft.Toolkit.Uwp.UI.Controls.DataGrid + + + {d4d78cba-b238-4794-89a0-4f1a2d8fea97} + Microsoft.Toolkit.Uwp.UI.Controls.Graph + + + {e9faabfb-d726-42c1-83c1-cb46a29fea81} + Microsoft.Toolkit.Uwp.UI.Controls + + + {3dd8aa7c-3569-4e51-992f-0c2257e8878e} + Microsoft.Toolkit.Uwp.UI + + + {805f80df-75c6-4c2f-8fd9-b47f6d0df5a3} + Microsoft.Toolkit.Uwp + + + {6fe128a8-cefa-4a61-a987-ec92de6b538e} + Microsoft.Toolkit + + + + + + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AndroidManifest.xml b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AndroidManifest.xml new file mode 100644 index 00000000000..6d571afdba5 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AssemblyInfo.cs b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..8cb6c529b2e --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +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("Microsoft.Toolkit.Uwp.SampleApp.Droid")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Microsoft.Toolkit.Uwp.SampleApp.Droid")] +[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 diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/AboutResources.txt b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/AboutResources.txt new file mode 100644 index 00000000000..096447a90d1 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/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/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/drawable/Icon.png b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/drawable/Icon.png new file mode 100644 index 00000000000..8074c4c571b Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/drawable/Icon.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/colors.xml b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/colors.xml new file mode 100644 index 00000000000..17bb9a9dd16 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #2c3e50 + #1B3147 + #3498db + diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/ic_launcher_background.xml b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/ic_launcher_background.xml new file mode 100644 index 00000000000..6ec24e6413c --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #2C3E50 + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/strings.xml b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/strings.xml new file mode 100644 index 00000000000..ed7fdb7dbd1 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/strings.xml @@ -0,0 +1,4 @@ + + Microsoft.Toolkit.Uwp.SampleApp.Droid + Settings + diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/styles.xml b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/styles.xml new file mode 100644 index 00000000000..422c0a5ff0f --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Droid/Resources/values/styles.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml new file mode 100644 index 00000000000..ada6cdf920b --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/App.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml.cs similarity index 67% rename from Microsoft.Toolkit.Uwp.SampleApp/App.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml.cs index 69d8bcea8bb..f45885a9586 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/App.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/App.xaml.cs @@ -14,6 +14,11 @@ using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Navigation; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; + +using Uno.Extensions; +using Uno.Logging; namespace Microsoft.Toolkit.Uwp.SampleApp { @@ -29,11 +34,15 @@ public sealed partial class App : Application /// public App() { +#if DEBUG + ConfigureFilters(LogExtensionPoint.AmbientLoggerFactory); +#endif + InitializeComponent(); Suspending += OnSuspending; - } + } - protected override async void OnActivated(IActivatedEventArgs args) + protected override async void OnActivated(IActivatedEventArgs args) { await RunAppInitialization(null); @@ -63,7 +72,13 @@ protected override async void OnActivated(IActivatedEventArgs args) /// Details about the launch request and process. protected override async void OnLaunched(LaunchActivatedEventArgs e) { - ApplicationView.GetForCurrentView().SetPreferredMinSize(new Windows.Foundation.Size(500, 500)); +#if HAS_UNO + Application.Current.UnhandledException += (s, args) => this.Log().Error($"Unhandled exception: {args.Exception}"); + AppDomain.CurrentDomain.UnhandledException += (s, args) => this.Log().Error($"AppDomain Unhandled exception: {args.ExceptionObject}"); + TaskScheduler.UnobservedTaskException += (s, args) => this.Log().Error($"AppDomain Unhandled exception: {args.Exception}"); +#endif + + ApplicationView.GetForCurrentView().SetPreferredMinSize(new Windows.Foundation.Size(500, 500)); if (e.PrelaunchActivated) { @@ -87,7 +102,8 @@ protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); - var deferral = args.TaskInstance.GetDeferral(); +#if NETFX_CORE // UNO TODO + var deferral = args.TaskInstance.GetDeferral(); switch (args.TaskInstance.Task.Name) { @@ -97,10 +113,12 @@ protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) } deferral.Complete(); - } +#endif + } - private async System.Threading.Tasks.Task RunAppInitialization(string launchParameters) + private async System.Threading.Tasks.Task RunAppInitialization(string launchParameters) { +#if NETFX_CORE // UNO TODO ThemeInjector.InjectThemeResources(Application.Current.Resources); // Go fullscreen on Xbox @@ -114,11 +132,13 @@ private async System.Threading.Tasks.Task RunAppInitialization(string launchPara { Constants.ApplicationDisplayName = (await Package.Current.GetAppListEntriesAsync())[0].DisplayInfo.DisplayName; } +#endif - // Check if the Cache is Latest, wipe if not. - Sample.EnsureCacheLatest(); + // Check if the Cache is Latest, wipe if not. + Sample.EnsureCacheLatest(); - Frame rootFrame = Window.Current.Content as Frame; + // UNO TODO + Frame rootFrame = Windows.UI.Xaml.Window.Current.Content as Frame; // Do not repeat app initialization when the Window already has content, // just ensure that the window is active @@ -129,8 +149,9 @@ private async System.Threading.Tasks.Task RunAppInitialization(string launchPara rootFrame.NavigationFailed += OnNavigationFailed; - // Place the frame in the current Window - Window.Current.Content = rootFrame; + // Place the frame in the current Window + // UNO TODO + Windows.UI.Xaml.Window.Current.Content = rootFrame; } if (rootFrame.Content == null) @@ -141,8 +162,9 @@ private async System.Threading.Tasks.Task RunAppInitialization(string launchPara rootFrame.Navigate(typeof(Shell), launchParameters); } - // Ensure the current window is active - Window.Current.Activate(); + // Ensure the current window is active + // UNO TODO + Windows.UI.Xaml.Window.Current.Activate(); } /// @@ -152,7 +174,7 @@ private async System.Threading.Tasks.Task RunAppInitialization(string launchPara /// Details about the navigation failure private void OnNavigationFailed(object sender, NavigationFailedEventArgs e) { - throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + throw new Exception($"Failed to load Page [{e.SourcePageType.FullName}]: {e.Exception}"); } /// @@ -169,5 +191,40 @@ private void OnSuspending(object sender, SuspendingEventArgs e) // TODO: Save application state and stop any background activity deferral.Complete(); } + + static void ConfigureFilters(ILoggerFactory factory) + { + factory + .WithFilter(new FilterLoggerSettings + { + { "Uno", LogLevel.Warning }, + { "Windows", LogLevel.Warning }, + //{ "SampleControl.Presentation", LogLevel.Debug }, + + // Generic Xaml events + // { "Windows.UI.Xaml", LogLevel.Debug }, + + // { "Uno.UI.Controls.AsyncValuePresenter", LogLevel.Debug }, + // { "Uno.UI.Controls.IfDataContext", LogLevel.Debug }, + //{ "Windows.UI.Xaml.FrameworkElement", LogLevel.Debug }, + // { "Windows.UI.Xaml.UIElement", LogLevel.Debug }, + // { "Windows.UI.Xaml.Controls.SinglelineTextBoxView", LogLevel.Debug }, + + // Layouter specific messages + // { "Windows.UI.Xaml.Controls", LogLevel.Debug }, + //{ "Windows.UI.Xaml.Controls.Layouter", LogLevel.Debug }, + //{ "Windows.UI.Xaml.Controls.Panel", LogLevel.Debug }, + + // Binding related messages + // { "Windows.UI.Xaml.Data", LogLevel.Debug }, + //{ "Windows.UI.Xaml.DependencyObjectStore", LogLevel.Debug }, + //{ "Uno.UI.DataBinding.BindingPropertyHelper", LogLevel.Debug }, + + // Binder memory references tracking + // { "ReferenceHolder", LogLevel.Debug }, + } + ) + .AddConsole(LogLevel.Debug); + } } } \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/GithubLogo.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/GithubLogo.png new file mode 100644 index 00000000000..52d07e63b69 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/GithubLogo.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Helpers.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Helpers.png new file mode 100644 index 00000000000..552b074e902 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Helpers.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Cloudy-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Cloudy-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Cloudy-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Cloudy-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Cloudy.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Cloudy.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Cloudy.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Cloudy.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Drizzle-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Drizzle-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Drizzle-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Drizzle-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Drizzle.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Drizzle.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Drizzle.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Drizzle.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Haze-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Haze-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Haze-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Haze-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Haze.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Haze.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Haze.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Haze.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy-Background.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy-Background.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy-Background.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy-Background.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Mostly Cloudy.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Mostly Cloudy.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Slight Drizzle-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Slight Drizzle-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Slight Drizzle-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Slight Drizzle-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Slight Drizzle.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Slight Drizzle.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Slight Drizzle.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Slight Drizzle.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Snow-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Snow-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Snow-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Snow-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Snow.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Snow.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Snow.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Snow.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Sunny-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Sunny-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Sunny-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Sunny-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Sunny.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Sunny.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Sunny.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Sunny.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Thunderstorms-Square.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Thunderstorms-Square.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Thunderstorms-Square.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Thunderstorms-Square.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Thunderstorms.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Thunderstorms.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/NotificationAssets/Thunderstorms.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/NotificationAssets/Thunderstorms.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/dave.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/dave.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/dave.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/dave.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/david.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/david.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/david.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/david.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/giorgio.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/giorgio.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/giorgio.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/giorgio.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/jeff.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/jeff.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/jeff.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/jeff.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/nikola.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/nikola.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/nikola.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/nikola.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/pete.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/pete.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/pete.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/pete.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/petri.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/petri.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/petri.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/petri.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/shen.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/shen.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/shen.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/shen.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/People/vlad.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/vlad.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/People/vlad.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/People/vlad.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Backgrounds/HERO.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Backgrounds/HERO.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Backgrounds/HERO.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Backgrounds/HERO.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/BigFourSummerHeat.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/BigFourSummerHeat.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/BigFourSummerHeat.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/BigFourSummerHeat.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/BisonBadlandsChillin.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/BisonBadlandsChillin.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/BisonBadlandsChillin.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/BisonBadlandsChillin.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ColumbiaRiverGorge.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ColumbiaRiverGorge.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ColumbiaRiverGorge.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ColumbiaRiverGorge.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/GiantSlabInOregon.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/GiantSlabInOregon.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/GiantSlabInOregon.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/GiantSlabInOregon.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/GrandTetons.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/GrandTetons.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/GrandTetons.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/GrandTetons.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/HERO.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/HERO.jpg new file mode 100644 index 00000000000..2072e0c8a9e Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/HERO.jpg differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ImageExPlaceholder.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ImageExPlaceholder.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ImageExPlaceholder.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ImageExPlaceholder.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/LakeAnnMushroom.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/LakeAnnMushroom.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/LakeAnnMushroom.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/LakeAnnMushroom.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/LunchBreak.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/LunchBreak.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/LunchBreak.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/LunchBreak.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MilkyWayStHelensHikePurple.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MilkyWayStHelensHikePurple.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MilkyWayStHelensHikePurple.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MilkyWayStHelensHikePurple.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MitchellButtes.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MitchellButtes.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MitchellButtes.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MitchellButtes.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MultnomahFalls.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MultnomahFalls.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/MultnomahFalls.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/MultnomahFalls.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/NorthernCascadesReflection.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/NorthernCascadesReflection.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/NorthernCascadesReflection.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/NorthernCascadesReflection.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/NovemberHikeWaterfall.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/NovemberHikeWaterfall.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/NovemberHikeWaterfall.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/NovemberHikeWaterfall.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/OnlinePhotos.json b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/OnlinePhotos.json similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/OnlinePhotos.json rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/OnlinePhotos.json diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/OregonWineryNamaste.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/OregonWineryNamaste.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/OregonWineryNamaste.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/OregonWineryNamaste.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Owl.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Owl.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Owl.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Owl.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/PaintedHillsPathway.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/PaintedHillsPathway.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/PaintedHillsPathway.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/PaintedHillsPathway.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Photos.json b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Photos.json similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Photos.json rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Photos.json diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/RunningDogPacificCity.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/RunningDogPacificCity.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/RunningDogPacificCity.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/RunningDogPacificCity.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ShootingOnAutoOnTheDrone.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ShootingOnAutoOnTheDrone.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/ShootingOnAutoOnTheDrone.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/ShootingOnAutoOnTheDrone.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SmithnRockDownTheRiverView.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SmithnRockDownTheRiverView.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SmithnRockDownTheRiverView.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SmithnRockDownTheRiverView.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SnowyInterbayt.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SnowyInterbayt.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SnowyInterbayt.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SnowyInterbayt.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SpeedTripleAtristsPoint.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SpeedTripleAtristsPoint.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/SpeedTripleAtristsPoint.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/SpeedTripleAtristsPoint.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Van.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Van.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/Van.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/Van.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/WestSeattleView.jpg b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/WestSeattleView.jpg similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Photos/WestSeattleView.jpg rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Photos/WestSeattleView.jpg diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Samples/RangeSelector.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Samples/RangeSelector.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Samples/RangeSelector.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Samples/RangeSelector.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/SplashScreen.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/SplashScreen.png new file mode 100644 index 00000000000..214b7c372aa Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/SplashScreen.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogo.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/ToolkitLogo.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogo.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/ToolkitLogo.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogoTransparent.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/ToolkitLogoTransparent.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogoTransparent.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/ToolkitLogoTransparent.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/TwitterLogo.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/TwitterLogo.png new file mode 100644 index 00000000000..9ad80198364 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/TwitterLogo.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-16_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-20_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-24_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-256_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-30_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-32_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-36_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-40_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-48_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-60_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-64_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-72_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-80_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96_altform-unplated.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96_altform-unplated.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96_altform-unplated.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppAppList.targetsize-96_altform-unplated.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppBadgeLogo.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppLargeTile.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppMedTile.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppMedTile.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSmallTile.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppSplashScreen.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppStoreLogo.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-100.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-100.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-100.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-100.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-125.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-125.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-125.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-125.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-150.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-150.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-150.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-150.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-200.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-200.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-200.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/UWPCommunityToolkitSampleAppWideTile.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkitSampleAppWideTile.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkit_Uno_SplashScreen.scale-200.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkit_Uno_SplashScreen.scale-200.png new file mode 100644 index 00000000000..47708b67931 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UWPCommunityToolkit_Uno_SplashScreen.scale-200.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo.png new file mode 100644 index 00000000000..c6bb942d345 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo_small.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo_small.png new file mode 100644 index 00000000000..a136e76bee6 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/UnoLogo_small.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/Wide310x150Logo.scale-400.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Wide310x150Logo.scale-400.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/Wide310x150Logo.scale-400.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/Wide310x150Logo.scale-400.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Assets/mtns.csv b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/mtns.csv similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Assets/mtns.csv rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/mtns.csv diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/pixel.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/pixel.png new file mode 100644 index 00000000000..39ba0f83311 Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Assets/pixel.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/AnalyticsVersionInfoExtensions.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/AnalyticsVersionInfoExtensions.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/AnalyticsVersionInfoExtensions.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/AnalyticsVersionInfoExtensions.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/BindableBase.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/BindableBase.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/BindableBase.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/BindableBase.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/BoolStringConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/BoolStringConverter.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/BoolStringConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/BoolStringConverter.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/Constants.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/Constants.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/Constants.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/Constants.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand.cs similarity index 92% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand.cs index c4c7eb98133..bcf28dc4205 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand.cs @@ -60,9 +60,10 @@ public bool CanExecute(object parameter = null) { return commandCanExecute(); } - catch + catch(Exception e) { - return false; + Console.WriteLine($"Action failed {e}"); + return false; } } @@ -81,10 +82,12 @@ public void Execute(object parameter) try { + Console.WriteLine($"Execute command 2"); commandExecuteAction(); } - catch + catch(Exception e) { + Console.WriteLine($"Action failed {e}"); Debugger.Break(); } } diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand{T}.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand{T}.cs similarity index 89% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand{T}.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand{T}.cs index d81c6c53697..fca36a46d72 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Common/DelegateCommand{T}.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DelegateCommand{T}.cs @@ -45,9 +45,10 @@ public bool CanExecute(object parameter) { return commandCanExecute(ConvertParameterValue(parameter)); } - catch + catch(Exception e) { - return false; + Console.WriteLine($"Action failed {e}"); + return false; } } @@ -66,11 +67,13 @@ public void Execute(object parameter) try { - commandExecuteAction(ConvertParameterValue(parameter)); + Console.WriteLine($"Execute command 1"); + commandExecuteAction(ConvertParameterValue(parameter)); } - catch + catch(Exception e) { - Debugger.Break(); + Console.WriteLine($"Action failed {e}"); + Debugger.Break(); } } diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/DoubleTopThicknessConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DoubleTopThicknessConverter.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/DoubleTopThicknessConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/DoubleTopThicknessConverter.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/EnumConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/EnumConverter.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/EnumConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/EnumConverter.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/IXamlRenderListener.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/IXamlRenderListener.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/IXamlRenderListener.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/IXamlRenderListener.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/SampleCommand.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/SampleCommand.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/SampleCommand.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/SampleCommand.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/SolidColorBrushConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/SolidColorBrushConverter.cs similarity index 85% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/SolidColorBrushConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/SolidColorBrushConverter.cs index 65e510e527b..49d86009bc0 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Common/SolidColorBrushConverter.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/SolidColorBrushConverter.cs @@ -27,8 +27,13 @@ public object Convert(object value, Type targetType, object parameter, string la public object ConvertBack(object value, Type targetType, object parameter, string language) { +#if HAS_UNO + // Check if what we're getting back is a named color so that we can keep it as its name if it is. + var prop = typeof(Colors).GetTypeInfo().GetDeclaredField(value.ToString()); +#else // Check if what we're getting back is a named color so that we can keep it as its name if it is. var prop = typeof(Colors).GetTypeInfo().GetDeclaredProperty(value.ToString()); +#endif if (prop != null) { diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/ThicknessConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/ThicknessConverter.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/ThicknessConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/ThicknessConverter.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/TimeSpanConverter.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/TimeSpanConverter.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/TimeSpanConverter.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/TimeSpanConverter.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Common/Tools.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/Tools.cs similarity index 81% rename from Microsoft.Toolkit.Uwp.SampleApp/Common/Tools.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/Tools.cs index 013bd11eea4..3c2b59ca4d5 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Common/Tools.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Common/Tools.cs @@ -4,24 +4,28 @@ using System; using System.Threading.Tasks; -using Microsoft.Toolkit.Uwp.Connectivity; using Windows.UI.Popups; +#if NETFX_CORE // UNO TODO +using Microsoft.Toolkit.Uwp.Connectivity; +#endif + namespace Microsoft.Toolkit.Uwp.SampleApp { internal static class Tools { internal static async Task CheckInternetConnectionAsync() { - if (!NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable) +#if NETFX_CORE // UNO TODO + if (!NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable) { var dialog = new MessageDialog("Internet connection not detected. Please try again later."); await dialog.ShowAsync(); return false; } - - return true; +#endif + return true; } } } diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml similarity index 92% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml index 8ce0c687f9b..bea1defe2e3 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml @@ -2,6 +2,7 @@ x:Name="aadAuthControl" x:Class="Microsoft.Toolkit.Uwp.SampleApp.Controls.AadAuthControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:win="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:graph="using:Microsoft.Toolkit.Uwp.UI.Controls.Graph" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" @@ -9,7 +10,7 @@ mc:Ignorable="d" Visibility="{x:Bind Path=IsEnabled, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}"> + Background="{StaticResource Brush-Grey-05}"> - + Visibility="{Binding ElementName=aadAuthControl, Path=IsShowSignInButton, Mode=OneTime}"/>--> diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml.cs similarity index 98% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml.cs index ddbd15745fc..af2c94856f8 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/AadAuthControl.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/AadAuthControl.xaml.cs @@ -60,7 +60,7 @@ public AadAuthControl() _graphService.IsAuthenticatedChanged += GraphService_IsAuthenticatedChanged; } - private void AadAuthControl_Loading(FrameworkElement sender, object args) + private void AadAuthControl_Loading(object sender, object args) { IsEnabled = !_graphService.IsAuthenticated; @@ -132,4 +132,4 @@ private string[] GetAdminPermissions() return new string[0]; } } -} +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/CodeRenderer.cs similarity index 98% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/CodeRenderer.cs index d8ce3386a76..59775df7adb 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/CodeRenderer.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.SampleApp.Controls { - public class CodeRenderer : Control + public partial class CodeRenderer : Control { private RichTextBlockFormatter _formatter; private RichTextBlock _codeView; @@ -87,10 +87,12 @@ protected override void OnApplyTemplate() private void RenderDocument() { - _codeView?.Blocks?.Clear(); +#if !HAS_UNO + _codeView?.Blocks?.Clear(); _formatter = new RichTextBlockFormatter(_theme); _formatter.FormatRichTextBlock(_displayedText, _language, _codeView); _rendered = true; +#endif } private void CopyButton_Click(object sender, RoutedEventArgs e) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/CodeRenderer.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/CodeRenderer.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/PropertyControl.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/PropertyControl.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/PropertyControl.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/PropertyControl.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/PropertyControl.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/PropertyControl.xaml.cs similarity index 95% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/PropertyControl.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/PropertyControl.xaml.cs index 51526c86135..6c2adbc5397 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/PropertyControl.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/PropertyControl.xaml.cs @@ -38,7 +38,7 @@ public PropertyControl() InitializeComponent(); } - private void PropertyControl_OnDataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args) + private void PropertyControl_OnDataContextChanged(/* UNO TODO */DependencyObject sender, DataContextChangedEventArgs args) { if (args.NewValue == _currentSample) { @@ -131,7 +131,11 @@ private void PropertyControl_OnDataContextChanged(FrameworkElement sender, DataC case PropertyKind.Brush: var colorComboBox = new ComboBox(); +#if HAS_UNO + var dataSource = typeof(Colors).GetTypeInfo().DeclaredFields.Select(p => p.Name).ToList(); +#else var dataSource = typeof(Colors).GetTypeInfo().DeclaredProperties.Select(p => p.Name).ToList(); +#endif colorComboBox.ItemsSource = dataSource; if ((propertyDict[option.Name] as ValueHolder).Value is SolidColorBrush brush && @@ -176,7 +180,9 @@ private void PropertyControl_OnDataContextChanged(FrameworkElement sender, DataC controlToAdd = thicknessTextBox; dependencyProperty = TextBox.TextProperty; - converter = new ThicknessConverter(); +#if NETFX_CORE // UNO TODO + converter = new ThicknessConverter(); +#endif break; default: diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/SampleAppMarkdownRenderer.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/SampleAppMarkdownRenderer.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/SampleAppMarkdownRenderer.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/SampleAppMarkdownRenderer.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml new file mode 100644 index 00000000000..69fc79bcca0 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlCodeEditor.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml.cs similarity index 94% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlCodeEditor.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml.cs index ab510bbc38d..fb684701097 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlCodeEditor.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlCodeEditor.xaml.cs @@ -5,15 +5,18 @@ using System; using System.Diagnostics; using System.Threading.Tasks; -using Monaco; -using Monaco.Editor; -using Monaco.Helpers; using Windows.System.Threading; using Windows.UI; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Media; +#if !HAS_UNO +using Monaco; +using Monaco.Editor; +using Monaco.Helpers; +#endif + namespace Microsoft.Toolkit.Uwp.SampleApp.Controls { public sealed partial class XamlCodeEditor : UserControl @@ -28,11 +31,14 @@ public XamlCodeEditor() public async Task ResetPosition() { +#if !HAS_UNO await XamlCodeRenderer.RevealPositionAsync(new Position(1, 1)); - } +#endif + } public async void ReportError(XamlExceptionRange error) { +#if !HAS_UNO XamlCodeRenderer.Options.GlyphMargin = true; var range = new Range(error.StartLine, 1, error.EndLine, await XamlCodeRenderer.GetModel().GetLineMaxColumnAsync(error.EndLine)); @@ -46,12 +52,15 @@ public async void ReportError(XamlExceptionRange error) XamlCodeRenderer.Decorations.Add(new IModelDeltaDecoration( range, new IModelDecorationOptions() { IsWholeLine = true, GlyphMarginClassName = _errorIconStyle, GlyphMarginHoverMessage = new string[] { error.Message }.ToMarkdownString() })); - } +#endif + } - public void ClearErrors() + public void ClearErrors() { - XamlCodeRenderer.Decorations.Clear(); +#if !HAS_UNO + XamlCodeRenderer.Decorations.Clear(); XamlCodeRenderer.Options.GlyphMargin = false; +#endif } public void ResetTimer() @@ -61,9 +70,12 @@ public void ResetTimer() private void XamlCodeRenderer_Loading(object sender, RoutedEventArgs e) { - XamlCodeRenderer.Options.Folding = true; +#if !HAS_UNO + XamlCodeRenderer.Options.Folding = true; +#endif } +#if !HAS_UNO private void XamlCodeRenderer_InternalException(CodeEditor sender, Exception args) { TrackingManager.TrackException(args); @@ -110,6 +122,7 @@ private void XamlCodeRenderer_KeyDown(Monaco.CodeEditor sender, Monaco.Helpers.W }, TimeSpan.FromSeconds(0.5)); } } +#endif public string Text { @@ -121,6 +134,7 @@ public string Text public DateTime TimeSampleEditedLast { get; private set; } = DateTime.MinValue; +#if !HAS_UNO private CssLineStyle _errorStyle = new CssLineStyle() { BackgroundColor = new SolidColorBrush(Color.FromArgb(0x00, 0xFF, 0xD6, 0xD6)) @@ -130,6 +144,8 @@ public string Text { GlyphImage = new Uri("ms-appx-web:///Icons/Error.png") }; +#endif + private ThreadPoolTimer _autocompileTimer; diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlExceptionRange.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlExceptionRange.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlExceptionRange.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlExceptionRange.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlRenderService.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlRenderService.cs similarity index 96% rename from Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlRenderService.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlRenderService.cs index acbb141f00b..137f3370cd3 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/XamlRenderService.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Controls/XamlRenderService.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using System.Reflection; using Windows.UI.Xaml; using Windows.UI.Xaml.Markup; @@ -68,6 +69,11 @@ public UIElement Render(string content) } catch (Exception e) { + if(e is TargetInvocationException tie) + { + e = e.InnerException; + } + // Highlight Error (we'll only get one at a time). string msg = e.Message; @@ -89,6 +95,8 @@ public UIElement Render(string content) column = uint.Parse(msg.Substring(pl + 9, msg.IndexOf("]", pl) - pl - 9)); } + Console.WriteLine($"Failed to parse xaml {e}"); + // TODO: Should I just throw this nicely parsed message? Errors.Add(new XamlExceptionRange(msg, e, line, column, line, column + 8)); // TODO: Inspect Content at this position and go until space / EOL } diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataItem.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/DataGridDataItem.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataItem.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/DataGridDataItem.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataSource.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/DataGridDataSource.cs similarity index 87% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataSource.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/DataGridDataSource.cs index 21e1359abc4..a514c2f0a2c 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataSource.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/DataGridDataSource.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Microsoft.Toolkit.Uwp.Helpers; using Windows.Storage; using Windows.Storage.Streams; using Windows.UI.Xaml.Data; @@ -25,36 +26,42 @@ public class DataGridDataSource // Loading data public async Task> GetDataAsync() - { - var uri = new Uri($"ms-appx:///Assets/mtns.csv"); - StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri); - IRandomAccessStreamWithContentType randomStream = await file.OpenReadAsync(); - _items = new ObservableCollection(); - - using (StreamReader sr = new StreamReader(randomStream.AsStreamForRead())) - { - while (!sr.EndOfStream) - { - string line = sr.ReadLine(); - string[] values = line.Split(','); - - _items.Add( - new DataGridDataItem() - { - Rank = uint.Parse(values[0]), - Mountain = values[1], - Height_m = uint.Parse(values[2]), - Range = values[3], - Coordinates = values[4], - Prominence = uint.Parse(values[5]), - Parent_mountain = values[6], - First_ascent = uint.Parse(values[7]), - Ascents = values[8] - }); - } - } - - return _items; + { + using (var stream = await StreamHelper.GetEmbeddedFileStreamAsync(GetType(), "mtns.csv")) + { + var list = new List(); + + using (var sr = new StreamReader(stream)) + { + while (!sr.EndOfStream) + { + string line = sr.ReadLine(); + string[] values = line.Split(','); + + list.Add( + new DataGridDataItem() + { + Rank = uint.Parse(values[0]), + Mountain = values[1], + Height_m = uint.Parse(values[2]), + Range = values[3], + Coordinates = values[4], + Prominence = uint.Parse(values[5]), + Parent_mountain = values[6], + First_ascent = uint.Parse(values[7]), + Ascents = values[8] + }); + } + } + + _items = new ObservableCollection( + list +#if true //__WASM__ + .Take(2) +#endif + ); + return _items; + } } // Load mountains into separate collection for use in combobox column diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/GitHub.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/GitHub.cs similarity index 61% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/GitHub.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/GitHub.cs index d1322f0595d..c0d930b40f1 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Data/GitHub.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/GitHub.cs @@ -7,7 +7,12 @@ using System.Linq; using System.Threading.Tasks; using Newtonsoft.Json; + +#if !HAS_UNO using Windows.Web.Http; +#else +using System.Net.Http; +#endif namespace Microsoft.Toolkit.Uwp.SampleApp.Data { @@ -25,14 +30,20 @@ public static async Task> GetPublishedReleases() { try { - using (var client = new HttpClient()) - { - client.DefaultRequestHeaders.TryAppendWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"); - - var uri = $"{_root}/repos/{_repoOwner}/{_repoName}/releases"; - var result = await client.GetStringAsync(new Uri(uri)); - _releases = JsonConvert.DeserializeObject>(result).Take(5).ToList(); - } + using (var client = new HttpClient()) + { + const string userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"; + +#if HAS_UNO + client.DefaultRequestHeaders.Add("User-Agent", userAgent); +#else + client.DefaultRequestHeaders.TryAppendWithoutValidation("User-Agent", userAgent); +#endif + + var uri = $"{_root}/repos/{_repoOwner}/{_repoName}/releases"; + var result = await client.GetStringAsync(new Uri(uri)); + _releases = JsonConvert.DeserializeObject>(result).Take(5).ToList(); + } } catch (Exception) { diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/PhotoDataItem.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotoDataItem.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/PhotoDataItem.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotoDataItem.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/PhotoDataItemWithDimension.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotoDataItemWithDimension.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/PhotoDataItemWithDimension.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotoDataItemWithDimension.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Data/PhotosDataSource.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotosDataSource.cs similarity index 87% rename from Microsoft.Toolkit.Uwp.SampleApp/Data/PhotosDataSource.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotosDataSource.cs index 90eceab697e..d2cacced1f3 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Data/PhotosDataSource.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Data/PhotosDataSource.cs @@ -75,12 +75,10 @@ private static async Task LoadAsync(bool online, int maxCount) private static async Task> GetPhotosAsync(bool online) { - var prefix = online ? "Online" : string.Empty; - var uri = new Uri($"ms-appx:///Assets/Photos/{prefix}Photos.json"); - StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri); - IRandomAccessStreamWithContentType randomStream = await file.OpenReadAsync(); + var prefix = online ? "Online" : string.Empty; + var uri = $"Photos.{prefix}Photos.json"; - using (StreamReader r = new StreamReader(randomStream.AsStreamForRead())) + using (StreamReader r = new StreamReader(await Helpers.StreamHelper.GetEmbeddedFileStreamAsync(typeof(PhotosDataSource), uri))) { return Parse(await r.ReadToEndAsync()); } diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/About.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/About.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/About.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/About.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Animations.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Animations.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Animations.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Animations.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Brushes.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Brushes.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Brushes.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Brushes.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/DeveloperTools.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/DeveloperTools.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/DeveloperTools.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/DeveloperTools.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Error.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Error.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Error.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Error.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Extensions.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Extensions.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Extensions.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Extensions.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Foundation.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Foundation.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Foundation.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Foundation.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Helpers.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Helpers.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Helpers.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Helpers.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Layouts.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Layouts.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Layouts.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Layouts.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/More.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/More.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/More.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/More.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Notifications.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Notifications.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Notifications.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Notifications.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Icons/Services.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Services.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Icons/Services.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Icons/Services.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems new file mode 100644 index 00000000000..b09f5c7d82c --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems @@ -0,0 +1,1220 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + 30cb6cf1-80f7-43d5-b619-c737503724b0 + + + Microsoft.Toolkit.Uwp.SampleApp.Shared + + + + Designer + MSBuild:Compile + + + + + App.xaml + + + + + + + + + + + + + + + + + AadAuthControl.xaml + + + + PropertyControl.xaml + + + + XamlCodeEditor.xaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + About.xaml + + + SampleController.xaml + + + AadLoginPage.xaml + + + AdaptiveGridViewPage.xaml + + + AdvancedCollectionViewPage.xaml + + + AlignmentGridPage.xaml + + + BackdropBlurBrushPage.xaml + + + BackdropGammaTransferBrushPage.xaml + + + BackdropInvertBrushPage.xaml + + + BackdropSaturationBrushPage.xaml + + + BackdropSepiaBrushPage.xaml + + + BackgroundTaskHelperPage.xaml + + + + BladePage.xaml + + + BluetoothLEHelperPage.xaml + + + BlurBehaviorPage.xaml + + + CameraHelperPage.xaml + + + CameraPreviewPage.xaml + + + CarouselPage.xaml + + + ConnectedAnimationsPage.xaml + + + FirstPage.xaml + + + SecondPage.xaml + + + ThirdPage.xaml + + + DataGridPage.xaml + + + DispatcherHelperPage.xaml + + + DockPanelPage.xaml + + + DropShadowPanelPage.xaml + + + ExpanderPage.xaml + + + FacebookPage.xaml + + + + FadeHeaderBehaviorPage.xaml + + + FadeBehaviorPage.xaml + + + FocusTrackerPage.xaml + + + FrameworkElementExtensionsPage.xaml + + + GazeTracingPage.xaml + + + GridSplitterPage.xaml + + + HeaderedContentControlPage.xaml + + + HeaderedItemsControlPage.xaml + + + HeaderedTextBlockPage.xaml + + + ImageBlendBrushPage.xaml + + + ImageCachePage.xaml + + + ImageExPage.xaml + + + ImplicitAnimationsPage.xaml + + + InAppNotificationPage.xaml + + + IncrementalLoadingCollectionPage.xaml + + + + + InfiniteCanvasPage.xaml + + + LayoutTransformControlPage.xaml + + + LightBehaviorPage.xaml + + + LinkedInPage.xaml + + + ListViewExtensionsPage.xaml + + + LiveTilePage.xaml + + + LoadingPage.xaml + + + MarkdownParserPage.xaml + + + MarkdownTextBlockPage.xaml + + + MasterDetailsViewPage.xaml + + + + MenuPage.xaml + + + MicrosoftGraphPage.xaml + + + + + SendMessageContentDialog.xaml + + + MicrosoftTranslatorPage.xaml + + + MouseCursorPage.xaml + + + NetworkHelperPage.xaml + + + ObjectStoragePage.xaml + + + OffsetBehaviorPage.xaml + + + FoldersPickerControl.xaml + + + + OneDrivePage.xaml + + + + OrbitViewPage.xaml + + + PeoplePickerPage.xaml + + + PlannerTaskListPage.xaml + + + PowerBIEmbeddedPage.xaml + + + PrintHelperPage.xaml + + + ProfileCardPage.xaml + + + RadialGaugePage.xaml + + + RadialGradientBrushPage.xaml + + + RadialProgressBarPage.xaml + + + RangeSelectorPage.xaml + + + + + ReorderGridPage.xaml + + + RotateBehaviorPage.xaml + + + RotatorTilePage.xaml + + + RssParserPage.xaml + + + SaturationBehaviorPage.xaml + + + ScaleBehaviorPage.xaml + + + ScrollHeaderPage.xaml + + + ScrollViewerExtensionsPage.xaml + + + SharePointFileListPage.xaml + + + StaggeredPanelPage.xaml + + + StringExtensionsPage.xaml + + + SurfaceDialTextboxPage.xaml + + + SystemInformationPage.xaml + + + + TextBoxMaskPage.xaml + + + TextBoxRegexPage.xaml + + + + TextToolbarPage.xaml + + + ThemeListenerPage.xaml + + + TileControlPage.xaml + + + ToastPage.xaml + + + TwitterPage.xaml + + + + UniformGridPage.xaml + + + ViewExtensionsPage.xaml + + + VisualExtensionsPage.xaml + + + WeatherLiveTileAndToastPage.xaml + + + + WrapPanelPage.xaml + + + + + Shell.xaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Never + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + + + + + + + + RemoteDeviceHelperPage.xaml + + + RemoteDevicePickerControlPage.xaml + + + TabViewPage.xaml + + + WeiboPage.xaml + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.shproj b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.shproj new file mode 100644 index 00000000000..d087de32901 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Microsoft.Toolkit.Uwp.SampleApp.Shared.shproj @@ -0,0 +1,13 @@ + + + + 30cb6cf1-80f7-43d5-b619-c737503724b0 + 14.0 + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/Email.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Email.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/Email.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Email.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/GitHubRelease.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/GitHubRelease.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/GitHubRelease.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/GitHubRelease.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/Item.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Item.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/Item.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Item.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageLink.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageLink.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageLink.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageLink.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageLinks.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageLinks.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageLinks.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageLinks.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageResource.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageResource.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/LandingPageResource.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/LandingPageResource.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/Option.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Option.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/Option.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Option.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PaneState.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PaneState.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PaneState.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PaneState.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyDescriptor.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyDescriptor.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyDescriptor.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyDescriptor.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyKind.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyKind.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyKind.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyKind.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyOptions.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyOptions.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/PropertyOptions.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/PropertyOptions.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/SliderPropertyOptions.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/SliderPropertyOptions.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/SliderPropertyOptions.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/SliderPropertyOptions.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/ThicknessPropertyOptions.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/ThicknessPropertyOptions.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/ThicknessPropertyOptions.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/ThicknessPropertyOptions.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/ValueHolder.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/ValueHolder.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/PropertyDescriptor/ValueHolder.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/PropertyDescriptor/ValueHolder.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/Sample.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Sample.cs similarity index 93% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/Sample.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Sample.cs index df9f645ebaa..089b9319154 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Models/Sample.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Sample.cs @@ -15,18 +15,21 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using Microsoft.Toolkit.Uwp.Helpers; -using Microsoft.Toolkit.Uwp.Input.GazeInteraction; using Microsoft.Toolkit.Uwp.SampleApp.Models; using Microsoft.Toolkit.Uwp.UI.Animations; using Microsoft.Toolkit.Uwp.UI.Controls; -using Microsoft.Toolkit.Uwp.UI.Controls.Graph; -using Microsoft.Toolkit.Uwp.UI.Media; using Newtonsoft.Json; using Windows.Foundation.Metadata; using Windows.Storage; using Windows.Storage.Streams; using Windows.UI.Xaml; +#if !HAS_UNO +// using Microsoft.Toolkit.Uwp.Input.GazeInteraction; +using Microsoft.Toolkit.Uwp.UI.Controls.Graph; +using Microsoft.Toolkit.Uwp.UI.Media; +#endif + namespace Microsoft.Toolkit.Uwp.SampleApp { public class Sample @@ -38,7 +41,8 @@ public class Sample public static async void EnsureCacheLatest() { - var settingsStorage = new LocalObjectStorageHelper(); +#if !HAS_UNO + var settingsStorage = new LocalObjectStorageHelper(); var onlineDocsSHA = await GetDocsSHA(); var cacheSHA = settingsStorage.Read(_cacheSHAKey); @@ -63,6 +67,7 @@ public static async void EnsureCacheLatest() // Update Cache Version info. settingsStorage.Save(_cacheSHAKey, onlineDocsSHA); } +#endif } private string _cachedDocumentation = string.Empty; @@ -177,7 +182,7 @@ public bool IsSupported public async Task GetCSharpSourceAsync() { - using (var codeStream = await StreamHelper.GetPackagedFileStreamAsync($"SamplePages/{Name}/{CodeFile}")) + using (var codeStream = await StreamHelper.GetEmbeddedFileStreamAsync(GetType(), $"SamplePages.{Name}.{CodeFile}")) { using (var streamreader = new StreamReader(codeStream.AsStream())) { @@ -188,7 +193,7 @@ public async Task GetCSharpSourceAsync() public async Task GetJavaScriptSourceAsync() { - using (var codeStream = await StreamHelper.GetPackagedFileStreamAsync($"SamplePages/{Name}/{JavaScriptCodeFile}")) + using (var codeStream = await StreamHelper.GetEmbeddedFileStreamAsync(GetType(), $"SamplePages.{Name}.{JavaScriptCodeFile}")) { using (var streamreader = new StreamReader(codeStream.AsStream())) { @@ -266,7 +271,7 @@ public async Task GetJavaScriptSourceAsync() { try { - using (var localDocsStream = await StreamHelper.GetPackagedFileStreamAsync($"docs/{filepath}")) + using (var localDocsStream = await StreamHelper.GetEmbeddedFileStreamAsync(GetType(), $"docs.{filepath}")) { var result = await localDocsStream.ReadTextAsync(Encoding.UTF8); _cachedDocumentation = ProcessDocs(result); @@ -300,7 +305,7 @@ async Task CopyStream(HttpContent source) var localpath = $"{uri.Host}/{uri.LocalPath}"; // Cache only in Release -#if !DEBUG +#if !DEBUG && !HAS_UNO try { imageStream = await StreamHelper.GetLocalCacheFileStreamAsync(localpath, Windows.Storage.FileAccessMode.Read); @@ -448,8 +453,17 @@ public async Task PreparePropertyDescriptorAsync() if (_propertyDescriptor == null) { - // Get Xaml code - using (var codeStream = await StreamHelper.GetPackagedFileStreamAsync($"SamplePages/{Name}/{XamlCodeFile}")) + var manifestName = typeof(Samples).GetTypeInfo().Assembly + .GetManifestResourceNames() + .FirstOrDefault(n => n.EndsWith($"{Name}.{XamlCodeFile}".Replace(" ", "_"), StringComparison.OrdinalIgnoreCase)); + + if(manifestName == null) + { + throw new InvalidOperationException($"Failed to find resource [{Name}.{XamlCodeFile}]"); + } + + // Get Xaml code + using (var codeStream = typeof(Samples).GetTypeInfo().Assembly.GetManifestResourceStream(manifestName)) { XamlCode = await codeStream.ReadTextAsync(Encoding.UTF8); @@ -548,8 +562,10 @@ public async Task PreparePropertyDescriptorAsync() catch (Exception ex) { Debug.WriteLine($"Unable to extract slider info from {value}({ex.Message})"); - TrackingManager.TrackException(ex); - continue; +#if NETFX_CORE // UNO TODO + TrackingManager.TrackException(ex); +#endif + continue; } break; @@ -557,17 +573,22 @@ public async Task PreparePropertyDescriptorAsync() case PropertyKind.Enum: try { - options = new PropertyOptions(); var split = value.Split('.'); var typeName = string.Join(".", split.Take(split.Length - 1)); var enumType = LookForTypeByName(typeName); - options.DefaultValue = Enum.Parse(enumType, split.Last()); + options = new PropertyOptions(); + if (enumType != null) + { + options.DefaultValue = Enum.Parse(enumType, split.Last()); + } } catch (Exception ex) { Debug.WriteLine($"Unable to parse enum from {value}({ex.Message})"); +#if NETFX_CORE // UNO TODO TrackingManager.TrackException(ex); - continue; +#endif + continue; } break; @@ -593,8 +614,10 @@ public async Task PreparePropertyDescriptorAsync() catch (Exception ex) { Debug.WriteLine($"Unable to parse bool from {value}({ex.Message})"); +#if NETFX_CORE // UNO TODO TrackingManager.TrackException(ex); - continue; +#endif + continue; } break; @@ -667,8 +690,9 @@ private static Type LookForTypeByName(string typeName) } } - // Search in Microsoft.Toolkit.Uwp.UI.Controls.Graph - var graphControlsProxyType = ViewType.EmailOnly; +#if NETFX_CORE + // Search in Microsoft.Toolkit.Uwp.UI.Controls.Graph + var graphControlsProxyType = ViewType.EmailOnly; assembly = graphControlsProxyType.GetType().GetTypeInfo().Assembly; foreach (var typeInfo in assembly.ExportedTypes) @@ -678,6 +702,7 @@ private static Type LookForTypeByName(string typeName) return typeInfo; } } +#endif // Search in Microsoft.Toolkit.Uwp.UI.Animations var animationsProxyType = EasingType.Default; @@ -691,8 +716,7 @@ private static Type LookForTypeByName(string typeName) } // Search in Microsoft.Toolkit.Uwp.UI - var uiProxyType = ImageBlendMode.Multiply; - assembly = uiProxyType.GetType().GetTypeInfo().Assembly; + assembly = typeof(UI.Helpers.BindableValueHolder).GetTypeInfo().Assembly; foreach (var typeInfo in assembly.ExportedTypes) { if (typeInfo.Name == typeName) @@ -701,8 +725,9 @@ private static Type LookForTypeByName(string typeName) } } - // Search in Microsoft.Toolkit.Uwp.Input.GazeInteraction - var gazeType = Interaction.Enabled; +#if false // NETFX_CORE + // Search in Microsoft.Toolkit.Uwp.Input.GazeInteraction + var gazeType = Interaction.Enabled; assembly = gazeType.GetType().GetTypeInfo().Assembly; foreach (var typeInfo in assembly.ExportedTypes) { @@ -711,6 +736,7 @@ private static Type LookForTypeByName(string typeName) return typeInfo; } } +#endif // Search in Microsoft.Toolkit.Uwp.UI.Controls.DataGrid var dataGridProxyType = DataGridGridLinesVisibility.None; diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/SampleCategory.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/SampleCategory.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/SampleCategory.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/SampleCategory.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/Samples.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Samples.cs similarity index 80% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/Samples.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Samples.cs index e205b5dc680..85d09aba457 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Models/Samples.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/Samples.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Threading; using System.Threading.Tasks; using Microsoft.Toolkit.Uwp.Helpers; @@ -51,20 +52,24 @@ public static async Task FindSample(string name) public static async Task> GetCategoriesAsync() { await _semaphore.WaitAsync(); - if (_samplesCategories == null) - { - List allCategories; - using (var jsonStream = await StreamHelper.GetPackagedFileStreamAsync("SamplePages/samples.json")) - { - var jsonString = await jsonStream.ReadTextAsync(); - allCategories = JsonConvert.DeserializeObject>(jsonString); - } + if (_samplesCategories == null) + { + List allCategories; - // Check API - var supportedCategories = new List(); - foreach (var category in allCategories) - { - var finalSamples = new List(); + var manifestName = typeof(Samples).GetTypeInfo().Assembly + .GetManifestResourceNames() + .FirstOrDefault(n => n.EndsWith("samples.json", StringComparison.OrdinalIgnoreCase)); + + if (manifestName != null) + { + var jsonString = await typeof(Samples).GetTypeInfo().Assembly.GetManifestResourceStream(manifestName).ReadTextAsync(); + allCategories = JsonConvert.DeserializeObject>(jsonString); + + // Check API + var supportedCategories = new List(); + foreach (var category in allCategories) + { + var finalSamples = new List(); foreach (var sample in category.Samples) { @@ -77,15 +82,20 @@ public static async Task> GetCategoriesAsync() } } - if (finalSamples.Count > 0) - { - supportedCategories.Add(category); - category.Samples = finalSamples.OrderBy(s => s.Name).ToArray(); - } - } - - _samplesCategories = supportedCategories.ToList(); - } + if (finalSamples.Count > 0) + { + supportedCategories.Add(category); + category.Samples = finalSamples.OrderBy(s => s.Name).ToArray(); + } + } + + _samplesCategories = supportedCategories.ToList(); + } + else + { + throw new Exception("samples.json cannot be found in resources"); + } + } _semaphore.Release(); return _samplesCategories; diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Models/ThemeChangedArgs.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/ThemeChangedArgs.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/Models/ThemeChangedArgs.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Models/ThemeChangedArgs.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/About.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/About.xaml similarity index 90% rename from Microsoft.Toolkit.Uwp.SampleApp/Pages/About.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/About.xaml index 75415ae6431..aed094d9f9c 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/About.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/About.xaml @@ -1,5 +1,7 @@  + mc:Ignorable="d xamarin wasm not_wasm"> @@ -25,7 +29,8 @@ + Click="RecentSample_Click" + > @@ -45,18 +50,19 @@ Style="{StaticResource AboutHyperlinkButtonStyle}"> - - + + - - + + @@ -139,15 +145,23 @@ - Recent Activity + + + + Recent Activity - - + + + + Release Notes @@ -200,14 +221,6 @@ - - (jsonString); diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml similarity index 93% rename from Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml index 0afef900ff5..a3ea15556b9 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml @@ -1,6 +1,8 @@  + xmlns:triggers="using:Microsoft.Toolkit.Uwp.SampleApp.Shared.Triggers" + mc:Ignorable="d xamarin"> - + @@ -47,6 +50,7 @@ @@ -63,13 +67,13 @@ + win:Visibility="{x:Bind CanChangePaneState}" xamarin:Visibility="Collapsed" /> + win:Visibility="{x:Bind CanChangePaneState}" xamarin:Visibility="Collapsed"> + Click="NarrowInfoButton_OnClick"> @@ -166,7 +170,8 @@ Visibility="{x:Bind CanChangePaneState}" Icon="ClosePane" Width="50" - Click="{x:Bind ExpandCollapsePane}" /> + Height="50" + Click="ExpandPane_OnClick" /> - + + + + + + + - + @@ -288,24 +299,19 @@ - - - - - - + - + @@ -316,7 +322,7 @@ - + @@ -325,7 +331,7 @@ - + @@ -334,7 +340,7 @@ - + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml.cs similarity index 89% rename from Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml.cs index a620ba71a1e..a0361975883 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/Pages/SampleController.xaml.cs @@ -45,7 +45,7 @@ public SampleController() }; // Prevent Pop in on wider screens. - if (((FrameworkElement)Window.Current.Content).ActualWidth > 700) + if (((FrameworkElement)Windows.UI.Xaml.Window.Current.Content).ActualWidth > 700) { SidePaneState = PaneState.Normal; } @@ -108,6 +108,8 @@ public ElementTheme GetActualTheme() return theme; } + private async void NarrowInfoButton_OnClick(object sender, RoutedEventArgs e) => OpenClosePane(); + public void OpenClosePane() { if (CanChangePaneState) @@ -123,6 +125,8 @@ public void OpenClosePane() } } + private async void ExpandPane_OnClick(object sender, RoutedEventArgs e) => ExpandCollapsePane(); + public void ExpandCollapsePane() { if (CanChangePaneState) @@ -142,6 +146,7 @@ public void ShowExceptionNotification(Exception ex) { if (ex != null) { + Console.WriteLine("Failed to run command: " + ex); ExceptionNotification.Show(ex.Message); } } @@ -192,10 +197,17 @@ protected override async void OnNavigatedTo(NavigationEventArgs e) if (CurrentSample != null) { + // UNO TODO + // The controls may be loaded when set directly to their parent + // so the datacontext of the renderer needs to be set early. + setSampleDataContext(); + if (!string.IsNullOrWhiteSpace(CurrentSample.Type)) { try { + Console.WriteLine($"Creating {CurrentSample.PageType}"); + var pageInstance = Activator.CreateInstance(CurrentSample.PageType); SampleContent.Content = pageInstance; @@ -218,6 +230,11 @@ protected override async void OnNavigatedTo(NavigationEventArgs e) if (SamplePage != null) { SamplePage.Loaded += SamplePage_Loaded; + + if (SamplePage.IsLoaded) + { + SamplePage_Loaded(SamplePage, new RoutedEventArgs()); + } } } else @@ -225,25 +242,33 @@ protected override async void OnNavigatedTo(NavigationEventArgs e) _onlyDocumentation = true; } - DataContext = CurrentSample; + void setSampleDataContext() + { + DataContext = CurrentSample; - var propertyDesc = CurrentSample.PropertyDescriptor; + var propertyDesc = CurrentSample.PropertyDescriptor; - InfoAreaPivot.Items.Clear(); + InfoAreaPivot.Items.Clear(); - if (propertyDesc != null) - { - _xamlRenderer.DataContext = propertyDesc.Expando; - } + if (propertyDesc != null) + { + _xamlRenderer.DataContext = propertyDesc.Expando; + } - if (propertyDesc != null && propertyDesc.Options.Count > 0) - { - InfoAreaPivot.Items.Add(PropertiesPivotItem); + if (propertyDesc != null && propertyDesc.Options.Count > 0) + { + InfoAreaPivot.Items.Add(PropertiesPivotItem); + } } - if (CurrentSample.HasXAMLCode) + if (CurrentSample.HasXAMLCode) { - if (AnalyticsInfo.VersionInfo.GetDeviceFormFactor() != DeviceFormFactor.Desktop || CurrentSample.DisableXamlEditorRendering) + if ( +#if !HAS_UNO + AnalyticsInfo.VersionInfo.GetDeviceFormFactor() != DeviceFormFactor.Desktop || +#endif + CurrentSample.DisableXamlEditorRendering + ) { // Only makes sense (and works) for now to show Live Xaml on Desktop, so fallback to old system here otherwise. XamlReadOnlyCodeRenderer.SetCode(CurrentSample.UpdatedXamlCode, "xaml"); @@ -307,7 +332,11 @@ protected override async void OnNavigatedTo(NavigationEventArgs e) } else { - SidePaneState = _onlyDocumentation ? PaneState.Full : PaneState.Normal; + SidePaneState = _onlyDocumentation + ? PaneState.Full + : ((FrameworkElement)Windows.UI.Xaml.Window.Current.Content).ActualWidth > 700 + ? PaneState.Normal + : PaneState.Closed; } Shell.Current.SetAppTitle($"{CurrentSample.CategoryName} > {CurrentSample.Name}"); @@ -538,10 +567,19 @@ private async Task UpdateXamlRenderAsync(string text) SamplePage.Content = element; } + Console.WriteLine("UpdateXamlRenderAsync done adding content"); + // Tell the page we've finished with an update to the XAML contents, after the control has rendered. if (element is FrameworkElement fe) { fe.Loaded += XamlFrameworkElement_Loaded; + + Console.WriteLine($"UpdateXamlRenderAsync attach loaded fe.IsLoaded:{fe.IsLoaded}"); + + if (fe.IsLoaded) + { + XamlFrameworkElement_Loaded(fe, new RoutedEventArgs()); + } } } else if (_xamlRenderer.Errors.Count > 0) @@ -554,12 +592,15 @@ private async Task UpdateXamlRenderAsync(string text) private async void XamlFrameworkElement_Loaded(object sender, RoutedEventArgs e) { + Console.WriteLine("XamlFrameworkElement_Loaded"); + if (sender is FrameworkElement fe) { fe.Loaded -= XamlFrameworkElement_Loaded; await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { + Console.WriteLine("calling OnXamlRendered"); (SamplePage as IXamlRenderListener)?.OnXamlRendered(fe); }); } @@ -685,7 +726,12 @@ public bool UseBackground private Page SamplePage => SampleContent.Content as Page; - private bool CanChangePaneState => !_onlyDocumentation; + private bool CanChangePaneState => +#if HAS_UNO + !_onlyDocumentation; +#else + false; +#endif private XamlRenderService _xamlRenderer = new XamlRenderService(); private bool _lastRenderedProperties = true; diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLogin.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLogin.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLogin.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLogin.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AadLogin/AadLoginXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AadLogin/AadLoginXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridView.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridView.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridView.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridView.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdaptiveGridView/AdaptiveGridViewPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionView.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionView.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionView.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionView.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionView.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionView.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionView.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionView.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AdvancedCollectionView/AdvancedCollectionViewPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGrid.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGrid.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGrid.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGrid.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/AlignmentGrid/AlignmentGridXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/AlignmentGrid/AlignmentGridXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrush.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrush.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrush.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrush.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropBlurBrush/BackdropBlurBrushXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropBlurBrush/BackdropBlurBrushXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrush.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrush.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrush.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrush.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrushXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrush.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrush.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrush.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrush.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropInvertBrush/BackdropInvertBrushXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropInvertBrush/BackdropInvertBrushXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrush.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrush.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrush.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrush.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSaturationBrush/BackdropSaturationBrushXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrush.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrush.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrush.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrush.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushXaml.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushXaml.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackdropSepiaBrush/BackdropSepiaBrushXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelper.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelper.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelper.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelper.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/BackgroundTaskHelperPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs similarity index 93% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs index a523d439fb7..f9d780269f8 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BackgroundTaskHelper/TestBackgroundTask.cs @@ -1,4 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +#if NETFX_CORE // UNO TODO +/// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -37,3 +38,4 @@ public void Run(IBackgroundTaskInstance taskInstance) } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladeCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladeCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladeCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladeCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladePage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladePage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladePage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladePage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladePage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladePage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladePage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladePage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladeView.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladeView.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BladeView/BladeView.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BladeView/BladeView.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelper.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelper.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelper.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelper.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml.cs similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml.cs rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/BluetoothLEHelper/BluetoothLEHelperPage.xaml.cs diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehavior.png b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehavior.png similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehavior.png rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehavior.png diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehaviorCode.bind b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehaviorCode.bind similarity index 100% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehaviorCode.bind rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehaviorCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehaviorPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehaviorPage.xaml similarity index 95% rename from Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehaviorPage.xaml rename to Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehaviorPage.xaml index 8c6ef1f0512..230a2889b21 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/Blur/BlurBehaviorPage.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp.Shared/SamplePages/Blur/BlurBehaviorPage.xaml @@ -1,5 +1,6 @@  - + - + [ContentProperty(Name = nameof(KeyFrames))] - public abstract class AnimationBase : DependencyObject + public abstract partial class AnimationBase : DependencyObject { /// /// Identifies the property diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/CompositionAnimations/KeyFrames/KeyFrame.cs b/Microsoft.Toolkit.Uwp.UI.Animations/CompositionAnimations/KeyFrames/KeyFrame.cs index 4d08d472610..f3fd4c650da 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/CompositionAnimations/KeyFrames/KeyFrame.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/CompositionAnimations/KeyFrames/KeyFrame.cs @@ -9,7 +9,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Animations /// /// Provides common Dependency properties for KeyFrames /// - public abstract class KeyFrame : DependencyObject + public abstract partial class KeyFrame : DependencyObject { /// /// Identifies the dependency property diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/AnimationEffect.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/AnimationEffect.cs index 3fe6bcff5a4..49a1a633646 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/AnimationEffect.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/AnimationEffect.cs @@ -133,7 +133,8 @@ public AnimationSet EffectAnimation( } else { - foreach (var effectProperty in _effectProperties) +#if NETFX_CORE + foreach (var effectProperty in _effectProperties) { var animation = Compositor.CreateScalarKeyFrameAnimation(); animation.InsertKeyFrame(1f, (float)value, AnimationExtensions.GetCompositionEasingFunction(easingType, Compositor, easingMode)); @@ -142,7 +143,8 @@ public AnimationSet EffectAnimation( animation.DelayTime = TimeSpan.FromMilliseconds(delay); animationSet.AddCompositionEffectAnimation(EffectBrush, animation, effectProperty); - } + } +#endif } // Saturation starts from 1 to 0, instead of 0 to 1 so this makes sure the diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Blur.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Blur.cs index 8363413159a..0024ba2599d 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Blur.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Blur.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -57,4 +58,5 @@ public override string[] ApplyEffect() return propertiesToAnimate; } } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Saturation.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Saturation.cs index e13fa57c1a3..e5f55fa1a99 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Saturation.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Effects/Saturation.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -55,4 +56,5 @@ public override string[] ApplyEffect() return propertiesToAnimate; } } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Expressions/CompositionExtensions.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Expressions/CompositionExtensions.cs index bbae7193377..3e716fd42c6 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Expressions/CompositionExtensions.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Expressions/CompositionExtensions.cs @@ -176,9 +176,11 @@ public static void StartAnimation(this CompositionObject compObject, string prop /// The easing function to use when interpolating between frames. public static void InsertExpressionKeyFrame(this KeyFrameAnimation keyframeAnimation, float normalizedProgressKey, ExpressionNode expressionNode, CompositionEasingFunction easing = null) { +#if NETFX_CORE // UNO TODO keyframeAnimation.InsertExpressionKeyFrame(normalizedProgressKey, expressionNode.ToExpressionString(), easing); +#endif - expressionNode.SetAllParameters(keyframeAnimation); + expressionNode.SetAllParameters(keyframeAnimation); } /// diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Blur.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Blur.cs index c368465de86..cc83d88f183 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Blur.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Blur.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -88,3 +89,4 @@ public static AnimationSet Blur( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Fade.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Fade.cs index 24e7a65e631..afcb06f29ef 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Fade.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Fade.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -108,3 +109,4 @@ public static AnimationSet Fade( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Light.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Light.cs index 0949dd235dd..e80d1395639 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Light.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Light.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -223,3 +224,4 @@ public static AnimationSet Light( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Offset.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Offset.cs index a967fefbd7e..5ae09c9b604 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Offset.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Offset.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -120,3 +121,4 @@ public static AnimationSet Offset( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Rotate.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Rotate.cs index d288b07a453..125e91bb953 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Rotate.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Rotate.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -124,3 +125,4 @@ public static AnimationSet Rotate( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Saturation.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Saturation.cs index 9a7169b3515..cb0a3ae3f7a 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Saturation.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Saturation.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -69,4 +70,5 @@ public static AnimationSet Saturation( return SaturationEffect.EffectAnimation(animationSet, value, duration, delay, easingType, easingMode); } } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Scale.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Scale.cs index 5ee0d22feb2..d8ea1da7edf 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Scale.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.Scale.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -132,3 +133,4 @@ public static AnimationSet Scale( } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.cs index 3a34ebb9248..13fae1372a5 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationExtensions.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -280,3 +281,4 @@ private static CompositeTransform GetAttachedCompositeTransform(UIElement elemen } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationTools.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationTools.cs index 2d4deb838bd..63417c900ff 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationTools.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Extensions/AnimationTools.cs @@ -9,7 +9,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Animations /// /// Internal tool to link composite transforms to elements /// - internal class AnimationTools : DependencyObject + internal partial class AnimationTools : DependencyObject { /// /// Attached property used to link composite transform with UIElement diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Implicit.cs b/Microsoft.Toolkit.Uwp.UI.Animations/Implicit.cs index 59fe6c42fbe..81d6309d214 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Implicit.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Implicit.cs @@ -118,7 +118,8 @@ public static void SetAnimations(DependencyObject obj, AnimationCollection value private static void ShowAnimationsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - if (!ApiInformationHelper.IsCreatorsUpdateOrAbove) +#if !HAS_UNO + if (!ApiInformationHelper.IsCreatorsUpdateOrAbove) { return; } @@ -135,11 +136,13 @@ private static void ShowAnimationsChanged(DependencyObject d, DependencyProperty animationCollection.AnimationCollectionChanged += ShowCollectionChanged; ElementCompositionPreview.SetImplicitShowAnimation(element, GetCompositionAnimationGroup(animationCollection, element)); } - } +#endif + } private static void HideAnimationsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - if (!ApiInformationHelper.IsCreatorsUpdateOrAbove) + #if !HAS_UNO + if (!ApiInformationHelper.IsCreatorsUpdateOrAbove) { return; } @@ -156,7 +159,8 @@ private static void HideAnimationsChanged(DependencyObject d, DependencyProperty animationCollection.AnimationCollectionChanged += HideCollectionChanged; ElementCompositionPreview.SetImplicitHideAnimation(element, GetCompositionAnimationGroup(animationCollection, element)); } - } +#endif + } private static void AnimationsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { @@ -167,10 +171,12 @@ private static void AnimationsChanged(DependencyObject d, DependencyPropertyChan if (e.NewValue is AnimationCollection animationCollection && d is UIElement element) { - animationCollection.Parent = element; +#if !HAS_UNO + animationCollection.Parent = element; animationCollection.AnimationCollectionChanged -= AnimationsCollectionChanged; animationCollection.AnimationCollectionChanged += AnimationsCollectionChanged; ElementCompositionPreview.GetElementVisual(element).ImplicitAnimations = GetImplicitAnimationCollection(animationCollection, element); +#endif } } diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/Microsoft.Toolkit.Uwp.UI.Animations.csproj b/Microsoft.Toolkit.Uwp.UI.Animations/Microsoft.Toolkit.Uwp.UI.Animations.csproj index 84501f2f140..7a1963f0398 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/Microsoft.Toolkit.Uwp.UI.Animations.csproj +++ b/Microsoft.Toolkit.Uwp.UI.Animations/Microsoft.Toolkit.Uwp.UI.Animations.csproj @@ -1,17 +1,29 @@  - uap10.0.16299 - Windows Community Toolkit Animations + $(TargetFrameworksOverride) + Windows Community Toolkit Animations This library provides helpers and extensions on top of Windows Composition and XAML storyboards. It is part of the Windows Community Toolkit. UWP Toolkit Windows Animations Composition Connected Implicit XAML - + + $(NoWarn);Uno0001;NU1701 + Uno.Microsoft.Toolkit.Uwp.UI.Animations + - - - - - - + + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/ReorderGridAnimation.cs b/Microsoft.Toolkit.Uwp.UI.Animations/ReorderGridAnimation.cs index afbd88d7539..fd1c10e03bb 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/ReorderGridAnimation.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/ReorderGridAnimation.cs @@ -57,6 +57,7 @@ public static void SetDuration(DependencyObject obj, double value) private static void OnDurationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { +#if !HAS_UNO if (IsSupported == false) { return; @@ -73,11 +74,13 @@ private static void OnDurationChanged(DependencyObject d, DependencyPropertyChan view.ChoosingItemContainer -= OnChoosingItemContainer; view.ChoosingItemContainer += OnChoosingItemContainer; } - } +#endif + } - private static void AssignReorderAnimation(GridView view) + private static void AssignReorderAnimation(GridView view) { - var compositor = ElementCompositionPreview.GetElementVisual(view).Compositor; +#if !HAS_UNO + var compositor = ElementCompositionPreview.GetElementVisual(view).Compositor; var elementImplicitAnimation = view.GetValue(ReorderAnimationProperty) as ImplicitAnimationCollection; if (elementImplicitAnimation == null) { @@ -86,39 +89,46 @@ private static void AssignReorderAnimation(GridView view) } double duration = (double)view.GetValue(DurationProperty); - elementImplicitAnimation[nameof(Visual.Offset)] = CreateOffsetAnimation(compositor, duration); - } + elementImplicitAnimation[nameof(Visual.Offset)] = CreateOffsetAnimation(compositor, duration); +#endif + } private static void OnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { - var elementVisual = ElementCompositionPreview.GetElementVisual(args.ItemContainer); - if (args.InRecycleQueue) - { - PokeUIElementZIndex(args.ItemContainer); - } - else - { - var elementImplicitAnimation = sender.GetValue(ReorderAnimationProperty) as ImplicitAnimationCollection; - elementVisual.ImplicitAnimations = elementImplicitAnimation; - } - } - - private static void OnChoosingItemContainer(ListViewBase sender, ChoosingItemContainerEventArgs args) +#if !HAS_UNO + var elementVisual = ElementCompositionPreview.GetElementVisual(args.ItemContainer); + if (args.InRecycleQueue) + { + PokeUIElementZIndex(args.ItemContainer); + } + else + { + var elementImplicitAnimation = sender.GetValue(ReorderAnimationProperty) as ImplicitAnimationCollection; + elementVisual.ImplicitAnimations = elementImplicitAnimation; + } +#endif + } + + private static void OnChoosingItemContainer(ListViewBase sender, ChoosingItemContainerEventArgs args) { - if (args.ItemContainer != null) +#if !IS_UNO + if (args.ItemContainer != null) { PokeUIElementZIndex(args.ItemContainer); } - } +#endif + } private static CompositionAnimationGroup CreateOffsetAnimation(Compositor compositor, double duration) { Vector3KeyFrameAnimation offsetAnimation = compositor.CreateVector3KeyFrameAnimation(); +#if !HAS_UNO // UNO TODO offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue"); offsetAnimation.Duration = TimeSpan.FromMilliseconds(duration); offsetAnimation.Target = nameof(Visual.Offset); +#endif - CompositionAnimationGroup animationGroup = compositor.CreateAnimationGroup(); + CompositionAnimationGroup animationGroup = compositor.CreateAnimationGroup(); animationGroup.Add(offsetAnimation); return animationGroup; diff --git a/Microsoft.Toolkit.Uwp.UI.Animations/SurfaceLoader.cs b/Microsoft.Toolkit.Uwp.UI.Animations/SurfaceLoader.cs index 53216f50c84..af1065b8d05 100644 --- a/Microsoft.Toolkit.Uwp.UI.Animations/SurfaceLoader.cs +++ b/Microsoft.Toolkit.Uwp.UI.Animations/SurfaceLoader.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // UNO TODO // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -185,4 +186,5 @@ public static async Task LoadFromUri(Uri uri, Size si } } } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/CollectionViews/ListCollectionView.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/CollectionViews/ListCollectionView.cs index 5c5ee466d43..18488a58194 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/CollectionViews/ListCollectionView.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/CollectionViews/ListCollectionView.cs @@ -561,7 +561,7 @@ public object AddNew() BeginAddNew(newItem, index); } - Debug.Assert(_newItemIndex != -2 && object.Equals(newItem, _newItem), "AddNew did not raise expected events"); + System.Diagnostics.Debug.Assert(_newItemIndex != -2 && object.Equals(newItem, _newItem), "AddNew did not raise expected events"); MoveCurrentTo(newItem); @@ -586,7 +586,7 @@ public object AddNew() // related to AddNew. This method is called from ProcessCollectionChanged. private void BeginAddNew(object newItem, int index) { - Debug.Assert(_newItemIndex == -2 && _newItem == NoNewItem, "unexpected call to BeginAddNew"); + System.Diagnostics.Debug.Assert(_newItemIndex == -2 && _newItem == NoNewItem, "unexpected call to BeginAddNew"); // remember the new item and its position in the underlying list SetNewItem(newItem); @@ -808,7 +808,7 @@ private void SetNewItem(object item) { if (!object.Equals(item, _newItem)) { - Debug.Assert(item == NoNewItem || this._newItem == NoNewItem, "Old and new _newItem values are unexpectedly different from NoNewItem"); + System.Diagnostics.Debug.Assert(item == NoNewItem || this._newItem == NoNewItem, "Old and new _newItem values are unexpectedly different from NoNewItem"); _newItem = item; OnPropertyChanged(CurrentAddItemPropertyName); @@ -1191,7 +1191,7 @@ private void SetEditItem(object item) { if (!object.Equals(item, _editItem)) { - Debug.Assert(item == null || _editItem == null, "Old and new _editItem values are unexpectedly non null"); + System.Diagnostics.Debug.Assert(item == null || _editItem == null, "Old and new _editItem values are unexpectedly non null"); _editItem = item; OnPropertyChanged(CurrentEditItemPropertyName); @@ -1541,7 +1541,7 @@ private void ProcessCollectionChangedWithAdjustedIndex(EffectiveNotifyCollection break; default: - Debug.Assert(false, "Unexpected Effective Collection Change Action"); + System.Diagnostics.Debug.Assert(false, "Unexpected Effective Collection Change Action"); break; } @@ -1569,7 +1569,7 @@ private void ProcessCollectionChangedWithAdjustedIndex(EffectiveNotifyCollection // so any changes to the current item will only be raised once, and from this method // _currentChangedMonitor is used to guard whether the CurrentChanged and CurrentChanging event can be fired // so by entering it we're preventing the base calls from firing those events. - Debug.Assert(!CurrentChangedMonitor.Busy, "Expected _currentChangedMonitor.Busy is false."); + System.Diagnostics.Debug.Assert(!CurrentChangedMonitor.Busy, "Expected _currentChangedMonitor.Busy is false."); CurrentChangedMonitor.Enter(); using (CurrentChangedMonitor) @@ -1908,23 +1908,23 @@ private void Debug_ValidateCollectionChangedEventArgs(NotifyCollectionChangedEve switch (e.Action) { case NotifyCollectionChangedAction.Add: - Debug.Assert(e.NewItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.NewItems.Count for Add action"); + System.Diagnostics.Debug.Assert(e.NewItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.NewItems.Count for Add action"); break; case NotifyCollectionChangedAction.Remove: - Debug.Assert(e.OldItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.OldItems.Count for Remove action"); + System.Diagnostics.Debug.Assert(e.OldItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.OldItems.Count for Remove action"); break; case NotifyCollectionChangedAction.Replace: - Debug.Assert(e.OldItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.OldItems.Count for Replace action"); - Debug.Assert(e.NewItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.NewItems.Count for Replace action"); + System.Diagnostics.Debug.Assert(e.OldItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.OldItems.Count for Replace action"); + System.Diagnostics.Debug.Assert(e.NewItems.Count == 1, "Unexpected NotifyCollectionChangedEventArgs.NewItems.Count for Replace action"); break; case NotifyCollectionChangedAction.Reset: break; default: - Debug.Assert(false, "Unexpected NotifyCollectionChangedEventArgs action"); + System.Diagnostics.Debug.Assert(false, "Unexpected NotifyCollectionChangedEventArgs action"); break; } } @@ -2305,7 +2305,7 @@ private void SetSortDescriptions(SortDescriptionCollection descriptions) if (_sort != null) { - Debug.Assert(_sort.Count == 0, "must be empty SortDescription collection"); + System.Diagnostics.Debug.Assert(_sort.Count == 0, "must be empty SortDescription collection"); ((INotifyCollectionChanged)_sort).CollectionChanged += new NotifyCollectionChangedEventHandler(SortDescriptionsChanged); } } diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridAutomationPeer.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridAutomationPeer.cs index 980586b3bf1..bfb148ff5f1 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridAutomationPeer.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridAutomationPeer.cs @@ -279,8 +279,8 @@ IRawElementProviderSimple IGridProvider.GetItem(int row, int column) column++; } - Debug.Assert(column >= 0, "Expected positive column value."); - Debug.Assert(column < this.OwningDataGrid.ColumnsItemsInternal.Count, "Expected smaller column value."); + System.Diagnostics.Debug.Assert(column >= 0, "Expected positive column value."); + System.Diagnostics.Debug.Assert(column < this.OwningDataGrid.ColumnsItemsInternal.Count, "Expected smaller column value."); DataGridCell cell = dgr.Cells[column]; AutomationPeer peer = CreatePeerForElement(cell); if (peer != null) @@ -550,8 +550,8 @@ private AutomationPeer GetCellPeer(int slot, int column) DataGridRow row = this.OwningDataGrid.DisplayData.GetDisplayedElement(slot) as DataGridRow; if (row != null) { - Debug.Assert(column >= 0, "Expected positive column value."); - Debug.Assert(column < this.OwningDataGrid.ColumnsItemsInternal.Count, "Expected smaller column value."); + System.Diagnostics.Debug.Assert(column >= 0, "Expected positive column value."); + System.Diagnostics.Debug.Assert(column < this.OwningDataGrid.ColumnsItemsInternal.Count, "Expected smaller column value."); DataGridCell cell = row.Cells[column]; return CreatePeerForElement(cell); } diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridGroupItemAutomationPeer.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridGroupItemAutomationPeer.cs index 3bf9966a638..36233af7f11 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridGroupItemAutomationPeer.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridGroupItemAutomationPeer.cs @@ -461,8 +461,8 @@ IRawElementProviderSimple IGridProvider.GetItem(int row, int column) { // Adjust the row index to be relative to the DataGrid instead of the group row = groupInfo.Slot - this.OwningDataGrid.RowGroupHeadersTable.GetIndexCount(0, groupInfo.Slot) + row + 1; - Debug.Assert(row >= 0, "Expected positive row."); - Debug.Assert(row < this.OwningDataGrid.DataConnection.Count, "Expected row smaller than this.OwningDataGrid.DataConnection.Count."); + System.Diagnostics.Debug.Assert(row >= 0, "Expected positive row."); + System.Diagnostics.Debug.Assert(row < this.OwningDataGrid.DataConnection.Count, "Expected row smaller than this.OwningDataGrid.DataConnection.Count."); int slot = this.OwningDataGrid.SlotFromRowIndex(row); if (!this.OwningDataGrid.IsSlotVisible(slot)) @@ -471,12 +471,12 @@ IRawElementProviderSimple IGridProvider.GetItem(int row, int column) this.OwningDataGrid.ScrollIntoView(item, this.OwningDataGrid.Columns[column]); } - Debug.Assert(this.OwningDataGrid.IsSlotVisible(slot), "Expected OwningDataGrid.IsSlotVisible(slot) is true."); + System.Diagnostics.Debug.Assert(this.OwningDataGrid.IsSlotVisible(slot), "Expected OwningDataGrid.IsSlotVisible(slot) is true."); DataGridRow dgr = this.OwningDataGrid.DisplayData.GetDisplayedElement(slot) as DataGridRow; // the first cell is always the indentation filler cell if grouping is enabled, so skip it - Debug.Assert(column + 1 < dgr.Cells.Count, "Expected column + 1 smaller than dgr.Cells.Count."); + System.Diagnostics.Debug.Assert(column + 1 < dgr.Cells.Count, "Expected column + 1 smaller than dgr.Cells.Count."); DataGridCell cell = dgr.Cells[column + 1]; AutomationPeer peer = CreatePeerForElement(cell); if (peer != null) diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridRowAutomationPeer.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridRowAutomationPeer.cs index f084150de2c..67de8bcb568 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridRowAutomationPeer.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/Automation/DataGridRowAutomationPeer.cs @@ -52,7 +52,7 @@ protected override string GetItemTypeCore() return itemType; } - return UI.Controls.Properties.Resources.DataGridRowAutomationPeer_ItemType; + return UI.Controls.DG.Properties.Resources.DataGridRowAutomationPeer_ItemType; } } } diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs index fbb1351fff2..9cacf4a7ecd 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs @@ -407,7 +407,7 @@ public DataGrid() _loadedRows = new List(); _lostFocusActions = new Queue(); _selectedItems = new DataGridSelectedItemsCollection(this); - _rowGroupHeaderPropertyNameAlternative = Properties.Resources.DefaultRowGroupHeaderPropertyNameAlternative; + _rowGroupHeaderPropertyNameAlternative = DG.Properties.Resources.DefaultRowGroupHeaderPropertyNameAlternative; _rowGroupHeaderStyles = new ObservableCollection + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.cs b/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.cs index f352b5a1fe7..5e87c0723fc 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.cs @@ -1,4 +1,8 @@ -// Licensed to the .NET Foundation under one or more agreements. +#if HAS_UNO +#pragma warning disable CS0108 // UNO TODO +#endif + +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,7 +16,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Controls /// /// The control is used for . /// - public class ImageCropperThumb : Control + public partial class ImageCropperThumb : Control { private readonly TranslateTransform _layoutTransform = new TranslateTransform(); diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.xaml index 03463ed9255..b48852aa1a6 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.xaml +++ b/Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropperThumb.xaml @@ -1,6 +1,9 @@  + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" + mc:Ignorable="d"> + + + + + + + + + - + - - + + - + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/InfiniteCanvas/JsonConverters/InkCanvasExportModel.cs b/Microsoft.Toolkit.Uwp.UI.Controls/InfiniteCanvas/JsonConverters/InkCanvasExportModel.cs index 54336f28e4e..73049137b1c 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/InfiniteCanvas/JsonConverters/InkCanvasExportModel.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/InfiniteCanvas/JsonConverters/InkCanvasExportModel.cs @@ -1,4 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +#if NETFX_CORE +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -14,3 +15,4 @@ internal class InkCanvasExportModel public int Version { get; set; } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.Properties.cs b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.Properties.cs index 38a2b915da9..695b175c04f 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.Properties.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.Properties.cs @@ -1,3 +1,8 @@ +#if HAS_UNO +#pragma warning disable CS0108 // UNO TODO +#pragma warning disable CS0114 // UNO TODO +#endif + // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.cs b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.cs index 21f8576983e..327cb04c9ec 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/LayoutTransformControl.cs @@ -156,7 +156,8 @@ private Matrix GetTransformMatrix(Transform transform) if (transformGroup != null) { - var groupMatrix = Matrix.Identity; + // UNO TODO + var groupMatrix = Windows.UI.Xaml.Media.Matrix.Identity; foreach (var child in transformGroup.Children) { @@ -205,8 +206,9 @@ private Matrix GetTransformMatrix(Transform transform) // TranslateTransform has no effect in LayoutTransform } - // Fall back to no-op transformation - return Matrix.Identity; + // Fall back to no-op transformation + // UNO TODO + return Windows.UI.Xaml.Media.Matrix.Identity; } /// diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/PropertyChangeEventSource.cs b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/PropertyChangeEventSource.cs index 752bf5cf473..0bde75f2acf 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/PropertyChangeEventSource.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/LayoutTransformControl/PropertyChangeEventSource.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Controls /// Allows raise an event when the value of a dependency property changes when a view model is otherwise not necessary. /// /// Type of the DependencyProperty - internal class PropertyChangeEventSource : FrameworkElement + internal partial class PropertyChangeEventSource : FrameworkElement { private readonly DependencyObject _source; diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Methods.cs b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Methods.cs index 3ee1149517d..3553da0ac52 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Methods.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Methods.cs @@ -160,7 +160,7 @@ private void RenderMarkdown() } catch (Exception ex) { - Debug.WriteLine("Error while parsing and rendering: " + ex.Message); + System.Diagnostics.Debug.WriteLine("Error while parsing and rendering: " + ex.Message); if (Debugger.IsAttached) { Debugger.Break(); @@ -185,7 +185,9 @@ private void UnhookListeners() } else if (link is Image image) { - image.Tapped -= NewImagelink_Tapped; +#if NETFX_CORE + image.Tapped -= NewImagelink_Tapped; +#endif } } @@ -213,9 +215,10 @@ public void RegisterNewHyperLink(Hyperlink newHyperlink, string linkUrl) /// public void RegisterNewHyperLink(Image newImagelink, string linkUrl, bool isHyperLink) { - // Setup a listener for clicks. +#if NETFX_CORE + // Setup a listener for clicks. newImagelink.Tapped += NewImagelink_Tapped; - +#endif // Associate the URL with the hyperlink. newImagelink.SetValue(HyperlinkUrlProperty, linkUrl); diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Properties.cs b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Properties.cs index 568df9e1f38..9accd784f25 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Properties.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.Properties.cs @@ -23,7 +23,7 @@ public partial class MarkdownTextBlock { // SvgImageSource was introduced in Creators Update (15063) private static readonly bool _isSvgImageSupported = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4); - + // Used to attach the URL to hyperlinks. private static readonly DependencyProperty HyperlinkUrlProperty = DependencyProperty.RegisterAttached("HyperlinkUrl", typeof(string), typeof(MarkdownTextBlock), new PropertyMetadata(null)); diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.xaml index 11a0deff313..765604461fe 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.xaml +++ b/Microsoft.Toolkit.Uwp.UI.Controls/MarkdownTextBlock/MarkdownTextBlock.xaml @@ -1,8 +1,21 @@  + xmlns:win="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:xamarin="http://uno.ui/xamarin" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" + mc:Ignorable="d xamarin"> - + + + + + + + + + @@ -28,7 +41,7 @@ - + + xmlns:win="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + mc:Ignorable="d"> + + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenItemRemovedEventArgs.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenItemRemovedEventArgs.cs new file mode 100644 index 00000000000..6fd13b325c1 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenItemRemovedEventArgs.cs @@ -0,0 +1,36 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.ComponentModel; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// Event arguments for event. + /// + public class TokenItemRemovedEventArgs : CancelEventArgs + { + /// + /// Initializes a new instance of the class. + /// + /// Item being removed. + /// container being closed. + public TokenItemRemovedEventArgs(object item, TokenizingTextBoxItem token) + { + Item = item; + Token = token; + } + + /// + /// Gets the Item being closed. + /// + public object Item { get; private set; } + + /// + /// Gets the Tab being closed. + /// + public TokenizingTextBoxItem Token { get; private set; } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Events.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Events.cs new file mode 100644 index 00000000000..b90cf177fa8 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Events.cs @@ -0,0 +1,45 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Windows.Foundation; +using Windows.UI.Xaml.Controls; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A text input control that auto-suggests and displays token items. + /// + public partial class TokenizingTextBox : Control + { + /// + /// Event raised when the text input value has changed. + /// + public event TypedEventHandler QueryTextChanged; + + /// + /// Event raised when a suggested item is chosen by the user. + /// + public event TypedEventHandler SuggestionChosen; + + /// + /// Event raised when the user submits the text query. + /// + public event TypedEventHandler QuerySubmitted; + + /// + /// Event raised when a new token item has been added. + /// + public event TypedEventHandler TokenItemAdded; + + /// + /// Event raised when a token item has been clicked. + /// + public event TypedEventHandler TokenItemClicked; + + /// + /// Event raised when a token item has been removed. + /// + public event TypedEventHandler TokenItemRemoved; + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Properties.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Properties.cs new file mode 100644 index 00000000000..fb793c73d08 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.Properties.cs @@ -0,0 +1,321 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A text input control that auto-suggests and displays token items. + /// + public partial class TokenizingTextBox : Control + { + /// + /// Identifies the property. + /// + public static readonly DependencyProperty AutoSuggestBoxStyleProperty = DependencyProperty.Register( + nameof(AutoSuggestBoxStyle), + typeof(Style), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty AutoSuggestBoxTextBoxStyleProperty = DependencyProperty.Register( + nameof(AutoSuggestBoxTextBoxStyle), + typeof(Style), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty DisplayMemberPathProperty = DependencyProperty.Register( + nameof(DisplayMemberPath), + typeof(string), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TextMemberPathProperty = DependencyProperty.Register( + nameof(TextMemberPath), + typeof(string), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TokenItemTemplateProperty = DependencyProperty.Register( + nameof(TokenItemTemplate), + typeof(DataTemplate), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TokenItemTemplateSelectorProperty = DependencyProperty.Register( + nameof(TokenItemTemplateSelector), + typeof(DataTemplateSelector), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TokenItemStyleProperty = DependencyProperty.Register( + nameof(TokenItemStyle), + typeof(Style), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TokenDelimiterProperty = DependencyProperty.Register( + nameof(TokenDelimiter), + typeof(string), + typeof(TokenizingTextBox), + new PropertyMetadata(string.Empty)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty TokenSpacingProperty = DependencyProperty.Register( + nameof(TokenSpacing), + typeof(double), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty PlaceholderTextProperty = DependencyProperty.Register( + nameof(PlaceholderText), + typeof(string), + typeof(TokenizingTextBox), + new PropertyMetadata(string.Empty)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty QueryIconProperty = DependencyProperty.Register( + nameof(QueryIcon), + typeof(object), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty QueryTextProperty = DependencyProperty.Register( + nameof(QueryText), + typeof(string), + typeof(TokenizingTextBox), + new PropertyMetadata(string.Empty)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty SuggestedItemsSourceProperty = DependencyProperty.Register( + nameof(SuggestedItemsSource), + typeof(object), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty SuggestedItemTemplateProperty = DependencyProperty.Register( + nameof(SuggestedItemTemplate), + typeof(DataTemplate), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty SuggestedItemTemplateSelectorProperty = DependencyProperty.Register( + nameof(SuggestedItemTemplateSelector), + typeof(DataTemplateSelector), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty SuggestedItemContainerStyleProperty = DependencyProperty.Register( + nameof(SuggestedItemContainerStyle), + typeof(Style), + typeof(TokenizingTextBox), + new PropertyMetadata(null)); + + /// + /// Gets or sets the Style for the contained AutoSuggestBox template part. + /// + public Style AutoSuggestBoxStyle + { + get => (Style)GetValue(AutoSuggestBoxStyleProperty); + set => SetValue(AutoSuggestBoxStyleProperty, value); + } + + /// + /// Gets or sets the Style for the TextBox part of the AutoSuggestBox template part. + /// + public Style AutoSuggestBoxTextBoxStyle + { + get => (Style)GetValue(AutoSuggestBoxStyleProperty); + set => SetValue(AutoSuggestBoxStyleProperty, value); + } + + /// + /// Gets or sets the DisplayMemberPath of the AutoSuggestBox template part. + /// + public string DisplayMemberPath + { + get => (string)GetValue(DisplayMemberPathProperty); + set => SetValue(DisplayMemberPathProperty, value); + } + + /// + /// Gets the collection of currently selected token items. + /// + public IList SelectedItems { get; private set; } = new List(); + + /// + /// Gets or sets the TextMemberPath of the AutoSuggestBox template part. + /// + public string TextMemberPath + { + get => (string)GetValue(TextMemberPathProperty); + set => SetValue(TextMemberPathProperty, value); + } + + /// + /// Gets or sets the template for token items. + /// + public DataTemplate TokenItemTemplate + { + get => (DataTemplate)GetValue(TokenItemTemplateProperty); + set => SetValue(TokenItemTemplateProperty, value); + } + + /// + /// Gets or sets the template selector for token items. + /// + public DataTemplateSelector TokenItemTemplateSelector + { + get => (DataTemplateSelector)GetValue(TokenItemTemplateSelectorProperty); + set => SetValue(TokenItemTemplateSelectorProperty, value); + } + + /// + /// Gets or sets the style for token items. + /// + public Style TokenItemStyle + { + get => (Style)GetValue(TokenItemStyleProperty); + set => SetValue(TokenItemStyleProperty, value); + } + + /// + /// Gets or sets delimiter used to determine when to process text input as a new token item. + /// + public string TokenDelimiter + { + get => (string)GetValue(TokenDelimiterProperty); + set => SetValue(TokenDelimiterProperty, value); + } + + /// + /// Gets or sets the spacing value used to separate token items. + /// + public double TokenSpacing + { + get => (double)GetValue(TokenSpacingProperty); + set => SetValue(TokenSpacingProperty, value); + } + + /// + /// Gets or sets the PlaceholderText for the AutoSuggestBox template part. + /// + public string PlaceholderText + { + get => (string)GetValue(PlaceholderTextProperty); + set => SetValue(PlaceholderTextProperty, value); + } + + /// + /// Gets or sets the icon to display in the AutoSuggestBox template part. + /// + public object QueryIcon + { + get => GetValue(QueryIconProperty); + set + { + // Special case for parsing Symbol enum strings + if (value is string valueString && Enum.TryParse(valueString, out Symbol symbol)) + { + SetValue(QueryIconProperty, new SymbolIcon(symbol)); + } + else + { + SetValue(QueryIconProperty, value); + } + } + } + + /// + /// Gets or sets the input text of the AutoSuggestBox template part. + /// + public string QueryText + { + get => (string)GetValue(QueryTextProperty); + set => SetValue(QueryTextProperty, value); + } + + /// + /// Gets or sets the items source for token suggestions. + /// + public object SuggestedItemsSource + { + get => GetValue(SuggestedItemsSourceProperty); + set => SetValue(SuggestedItemsSourceProperty, value); + } + + /// + /// Gets or sets the template for displaying suggested tokens. + /// + public DataTemplate SuggestedItemTemplate + { + get => (DataTemplate)GetValue(SuggestedItemTemplateProperty); + set => SetValue(SuggestedItemTemplateProperty, value); + } + + /// + /// Gets or sets the template selector for displaying suggested tokens. + /// + public DataTemplateSelector SuggestedItemTemplateSelector + { + get => (DataTemplateSelector)GetValue(SuggestedItemTemplateSelectorProperty); + set => SetValue(SuggestedItemTemplateSelectorProperty, value); + } + + /// + /// Gets or sets the item container style for displaying suggested tokens. + /// + public Style SuggestedItemContainerStyle + { + get => (Style)GetValue(SuggestedItemContainerStyleProperty); + set => SetValue(SuggestedItemContainerStyleProperty, value); + } + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.cs new file mode 100644 index 00000000000..7af614e1d7e --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.cs @@ -0,0 +1,258 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using Microsoft.Toolkit.Uwp.Extensions; +using Windows.System; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A text input control that auto-suggests and displays token items. + /// + [TemplatePart(Name = PART_AutoSuggestBox, Type = typeof(AutoSuggestBox))] + [TemplatePart(Name = PART_WrapPanel, Type = typeof(WrapPanel))] + public partial class TokenizingTextBox : Control + { + private const string PART_AutoSuggestBox = "PART_AutoSuggestBox"; + private const string PART_WrapPanel = "PART_WrapPanel"; + + private AutoSuggestBox _autoSuggestBox; + private WrapPanel _wrapPanel; + + /// + /// Initializes a new instance of the class. + /// + public TokenizingTextBox() + { + DefaultStyleKey = typeof(TokenizingTextBox); + } + + /// + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + if (_autoSuggestBox != null) + { + _autoSuggestBox.QuerySubmitted -= AutoSuggestBox_QuerySubmitted; + _autoSuggestBox.SuggestionChosen -= AutoSuggestBox_SuggestionChosen; + _autoSuggestBox.TextChanged -= AutoSuggestBox_TextChanged; + _autoSuggestBox.KeyDown -= AutoSuggestBox_KeyDown; + _autoSuggestBox.CharacterReceived -= AutoSuggestBox_CharacterReceived; + } + + _autoSuggestBox = (AutoSuggestBox)GetTemplateChild(PART_AutoSuggestBox); + _wrapPanel = (WrapPanel)GetTemplateChild(PART_WrapPanel); + + if (_autoSuggestBox != null) + { + _autoSuggestBox.QuerySubmitted += AutoSuggestBox_QuerySubmitted; + _autoSuggestBox.SuggestionChosen += AutoSuggestBox_SuggestionChosen; + _autoSuggestBox.TextChanged += AutoSuggestBox_TextChanged; + _autoSuggestBox.KeyDown += AutoSuggestBox_KeyDown; + _autoSuggestBox.CharacterReceived += AutoSuggestBox_CharacterReceived; + } + + var selectAllMenuItem = new MenuFlyoutItem + { + Text = StringExtensions.GetLocalized("WindowsCommunityToolkit_TokenizingTextBox_MenuFlyout_SelectAll", "Microsoft.Toolkit.Uwp.UI.Controls/Resources") + }; + selectAllMenuItem.Click += (s, e) => SelectAll(); + var menuFlyout = new MenuFlyout(); + menuFlyout.Items.Add(selectAllMenuItem); + ContextFlyout = menuFlyout; + } + + private void AutoSuggestBox_CharacterReceived(UIElement sender, CharacterReceivedRoutedEventArgs args) + { + if (args.Character.ToString() == TokenDelimiter && sender is AutoSuggestBox autoSuggestBox) + { + AddToken(autoSuggestBox.Text); + autoSuggestBox.Text = string.Empty; + autoSuggestBox.Focus(FocusState.Programmatic); + } + } + + private void AutoSuggestBox_KeyDown(object sender, KeyRoutedEventArgs e) + { + switch (e.Key) + { + case VirtualKey.Back: + case VirtualKey.Delete: + + if (_autoSuggestBox.Text != string.Empty || _wrapPanel.Children.Count <= 1) + { + break; + } + + // The last item is the AutoSuggestBox. Get the second to last. + var lastTokenIndex = _wrapPanel.Children.Count - 2; + var lastToken = _wrapPanel.Children[lastTokenIndex]; + RemoveToken(lastToken as TokenizingTextBoxItem); + break; + + case VirtualKey.Left: + break; + + case VirtualKey.Right: + break; + + case VirtualKey.Up: + break; + + case VirtualKey.Down: + break; + } + } + + private void AutoSuggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) + { + if (args.QueryText != string.Empty) + { + AddToken(args.QueryText); + sender.Text = string.Empty; + sender.Focus(FocusState.Programmatic); + } + + QuerySubmitted?.Invoke(sender, args); + } + + private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) + { + AddToken(args.SelectedItem); + sender.Text = string.Empty; + sender.Focus(FocusState.Programmatic); + SuggestionChosen?.Invoke(sender, args); + } + + private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) + { + QueryTextChanged?.Invoke(sender, args); + } + + private void TokenizingTextBoxItem_ClearClicked(TokenizingTextBoxItem sender, RoutedEventArgs args) + { + RemoveToken(sender); + } + + private void TokenizingTextBoxItem_Click(object sender, RoutedEventArgs e) + { + if (sender is TokenizingTextBoxItem item) + { + bool isControlDown = CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down); + if (!item.IsSelected && !isControlDown) + { + foreach (var child in _wrapPanel.Children) + { + if (child is TokenizingTextBoxItem childItem) + { + childItem.IsSelected = false; + } + } + + SelectedItems.Clear(); + } + + item.IsSelected = !item.IsSelected; + + var clickedItem = item.Content; + + if (item.IsSelected) + { + SelectedItems.Add(clickedItem); + } + else + { + SelectedItems.Remove(clickedItem); + } + + TokenItemClicked?.Invoke(this, item); // TODO: Do we want to use EventArgs here to have the OriginalSource like ItemClickEventArgs? + } + } + + private void AddToken(object data) + { + var item = new TokenizingTextBoxItem() + { + Content = data, + ContentTemplateSelector = TokenItemTemplateSelector, + ContentTemplate = TokenItemTemplate, + Style = TokenItemStyle + }; + item.Click += TokenizingTextBoxItem_Click; // TODO: Wonder if this needs to be in a PrepareContainerForItemOverride? + item.ClearClicked += TokenizingTextBoxItem_ClearClicked; + + var removeMenuItem = new MenuFlyoutItem + { + Text = StringExtensions.GetLocalized("WindowsCommunityToolkit_TokenizingTextBoxItem_MenuFlyout_Remove", "Microsoft.Toolkit.Uwp.UI.Controls/Resources") + }; + removeMenuItem.Click += (s, e) => RemoveToken(item); + var menuFlyout = new MenuFlyout(); + menuFlyout.Items.Add(removeMenuItem); + item.ContextFlyout = menuFlyout; + + var i = _wrapPanel.Children.Count - 1; + _wrapPanel.Children.Insert(i, item); + + TokenItemAdded?.Invoke(this, item); + } + + private void RemoveToken(TokenizingTextBoxItem item) + { + var tirea = new TokenItemRemovedEventArgs(item?.Content, item); + TokenItemRemoved?.Invoke(this, tirea); + + if (tirea.Cancel) + { + return; + } + + SelectedItems.Remove(item.Content); + + var itemIndex = Math.Max(_wrapPanel.Children.IndexOf(item) - 1, 0); + _wrapPanel.Children.Remove(item); + + if (_wrapPanel.Children[itemIndex] is Control control) + { + control.Focus(FocusState.Programmatic); + } + } + + private void SelectAll() + { + foreach (var child in _wrapPanel.Children) + { + if (child is TokenizingTextBoxItem item) + { + item.IsSelected = true; + SelectedItems.Add(item.Content); + } + } + } + + /// + /// Returns the string representation of each token item, concatenated and delimeted. + /// + /// Untokenized text string + public string GetUntokenizedText(string tokenDelimiter = " ,") + { + var tokenStrings = new List(); + foreach (var child in _wrapPanel.Children) + { + if (child is TokenizingTextBoxItem item) + { + tokenStrings.Add(item.Content.ToString()); + } + } + + return string.Join(tokenDelimiter, tokenStrings); + } + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.xaml new file mode 100644 index 00000000000..e85b09615f8 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBox.xaml @@ -0,0 +1,403 @@ + + + + 2 + 2 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.cs new file mode 100644 index 00000000000..86095717a3e --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.cs @@ -0,0 +1,159 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Windows.Foundation; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A control that manages as the item logic for the control. + /// + [TemplatePart(Name = PART_ClearButton, Type = typeof(Button))] + public partial class TokenizingTextBoxItem : Button + { + private const string PART_ClearButton = "PART_ClearButton"; + + private Button _clearButton; + + /// + /// Event raised when the 'Clear' Button is clicked. + /// + public event TypedEventHandler ClearClicked; + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register( + nameof(IsSelected), + typeof(bool), + typeof(TokenizingTextBoxItem), + new PropertyMetadata(false, new PropertyChangedCallback(TokenizingTextBoxItem_IsSelectedChanged))); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty ClearButtonStyleProperty = DependencyProperty.Register( + nameof(ClearButtonStyle), + typeof(Style), + typeof(TokenizingTextBoxItem), + new PropertyMetadata(Visibility.Collapsed)); + + /// + /// Gets or sets a value indicating whether this item is currently in a selected state. + /// + public bool IsSelected + { + get => (bool)GetValue(IsSelectedProperty); + set => SetValue(IsSelectedProperty, value); + } + + /// + /// Gets or sets the Style for the 'Clear' Button + /// + public Style ClearButtonStyle + { + get => (Style)GetValue(ClearButtonStyleProperty); + set => SetValue(ClearButtonStyleProperty, value); + } + + /// + /// Initializes a new instance of the class. + /// + public TokenizingTextBoxItem() + { + DefaultStyleKey = typeof(TokenizingTextBoxItem); + + var pointerEventHandler = new PointerEventHandler((s, e) => UpdateVisualState()); + var dependencyPropertyChangedEventHandler = new DependencyPropertyChangedEventHandler((d, e) => UpdateVisualState()); + + PointerEntered += pointerEventHandler; + PointerExited += pointerEventHandler; + PointerCanceled += pointerEventHandler; + PointerPressed += pointerEventHandler; + PointerReleased += pointerEventHandler; + IsEnabledChanged += dependencyPropertyChangedEventHandler; + RightTapped += TokenizingTextBoxItem_RightTapped; + KeyDown += TokenizingTextBoxItem_KeyDown; + } + + private static void TokenizingTextBoxItem_IsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is TokenizingTextBoxItem item) + { + if (item.IsSelected) + { + VisualStateManager.GoToState(item, "Selected", true); + } + else + { + VisualStateManager.GoToState(item, "Unselected", true); + } + } + } + + /// + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + if (_clearButton != null) + { + _clearButton.Click -= ClearButton_Click; + } + + _clearButton = (Button)GetTemplateChild(PART_ClearButton); + + if (_clearButton != null) + { + _clearButton.Click += ClearButton_Click; + } + } + + private void ClearButton_Click(object sender, RoutedEventArgs e) + { + ClearClicked?.Invoke(this, e); + } + + private void TokenizingTextBoxItem_RightTapped(object sender, RightTappedRoutedEventArgs e) + { + ContextFlyout.ShowAt(this); + } + + private void TokenizingTextBoxItem_KeyDown(object sender, KeyRoutedEventArgs e) + { + switch (e.Key) + { + case Windows.System.VirtualKey.Back: + case Windows.System.VirtualKey.Delete: + ClearButton_Click(sender, e); + break; + } + } + + private void UpdateVisualState(bool useTransitions = true) + { + if (!IsEnabled) + { + VisualStateManager.GoToState(this, "Disabled", useTransitions); + } + else if (IsPressed) + { + VisualStateManager.GoToState(this, "Pressed", useTransitions); + } +#if !HAS_UNO + else if (IsPointerOver) + { + VisualStateManager.GoToState(this, "PointerOver", useTransitions); + } +#endif + else + { + VisualStateManager.GoToState(this, "Normal", useTransitions); + } + } + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.xaml new file mode 100644 index 00000000000..c802a3cda7d --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.xaml @@ -0,0 +1,105 @@ + + + + 28 + 0 + 0 + Center + Center + + + + + + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/UniformGrid/UniformGrid.cs b/Microsoft.Toolkit.Uwp.UI.Controls/UniformGrid/UniformGrid.cs index cdc7bc9a4b9..9e78a294b00 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/UniformGrid/UniformGrid.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/UniformGrid/UniformGrid.cs @@ -30,7 +30,10 @@ public partial class UniformGrid : Grid protected override Size MeasureOverride(Size availableSize) { // Get all Visible FrameworkElement Children - var visible = Children.Where(item => item.Visibility != Visibility.Collapsed && item is FrameworkElement).Select(item => item as FrameworkElement).ToArray(); + var visible = Children + .OfType() // UNO TODO + .Where(item => item.Visibility != Visibility.Collapsed && item is FrameworkElement) + .Select(item => item as FrameworkElement).ToArray(); #pragma warning disable SA1008 // Opening parenthesis must be spaced correctly var (rows, columns) = GetDimensions(visible, Rows, Columns, FirstColumn); diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/StretchChild.cs b/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/StretchChild.cs new file mode 100644 index 00000000000..fba7e723a83 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/StretchChild.cs @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// Options for how to calculate the layout of items. + /// + public enum StretchChild + { + /// + /// Don't apply any additional stretching logic + /// + None, + + /// + /// Make the last child stretch to fill the available space + /// + Last + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/WrapPanel.cs b/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/WrapPanel.cs index 9d3090a2b0f..986c6053775 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/WrapPanel.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls/WrapPanel/WrapPanel.cs @@ -1,208 +1,275 @@ +#if HAS_UNO +#pragma warning disable CS0108 // UNO TODO +#endif + // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; +using System.Linq; using Windows.Foundation; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace Microsoft.Toolkit.Uwp.UI.Controls { - /// - /// WrapPanel is a panel that position child control vertically or horizontally based on the orientation and when max width / max height is reached a new row (in case of horizontal) or column (in case of vertical) is created to fit new controls. - /// - public partial class WrapPanel : Panel - { - /// - /// Gets or sets a uniform Horizontal distance (in pixels) between items when is set to Horizontal, - /// or between columns of items when is set to Vertical. - /// - public double HorizontalSpacing - { - get { return (double)GetValue(HorizontalSpacingProperty); } - set { SetValue(HorizontalSpacingProperty, value); } - } + /// + /// WrapPanel is a panel that position child control vertically or horizontally based on the orientation and when max width / max height is reached a new row (in case of horizontal) or column (in case of vertical) is created to fit new controls. + /// + public partial class WrapPanel : Panel + { + // UNO TODO + public WrapPanel() + { - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty HorizontalSpacingProperty = - DependencyProperty.Register( - nameof(HorizontalSpacing), - typeof(double), - typeof(WrapPanel), - new PropertyMetadata(0d, LayoutPropertyChanged)); + } - /// - /// Gets or sets a uniform Vertical distance (in pixels) between items when is set to Vertical, - /// or between rows of items when is set to Horizontal. - /// - public double VerticalSpacing - { - get { return (double)GetValue(VerticalSpacingProperty); } - set { SetValue(VerticalSpacingProperty, value); } - } + /// + /// Gets or sets a uniform Horizontal distance (in pixels) between items when is set to Horizontal, + /// or between columns of items when is set to Vertical. + /// + public double HorizontalSpacing + { + get { return (double)GetValue(HorizontalSpacingProperty); } + set { SetValue(HorizontalSpacingProperty, value); } + } - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty VerticalSpacingProperty = - DependencyProperty.Register( - nameof(VerticalSpacing), - typeof(double), - typeof(WrapPanel), - new PropertyMetadata(0d, LayoutPropertyChanged)); + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty HorizontalSpacingProperty = + DependencyProperty.Register( + nameof(HorizontalSpacing), + typeof(double), + typeof(WrapPanel), + new PropertyMetadata(0d, LayoutPropertyChanged)); - /// - /// Gets or sets the orientation of the WrapPanel. - /// Horizontal means that child controls will be added horizontally until the width of the panel is reached, then a new row is added to add new child controls. - /// Vertical means that children will be added vertically until the height of the panel is reached, then a new column is added. - /// - public Orientation Orientation - { - get { return (Orientation)GetValue(OrientationProperty); } - set { SetValue(OrientationProperty, value); } - } + /// + /// Gets or sets a uniform Vertical distance (in pixels) between items when is set to Vertical, + /// or between rows of items when is set to Horizontal. + /// + public double VerticalSpacing + { + get { return (double)GetValue(VerticalSpacingProperty); } + set { SetValue(VerticalSpacingProperty, value); } + } - /// - /// Identifies the dependency property. - /// - public static readonly DependencyProperty OrientationProperty = - DependencyProperty.Register( - nameof(Orientation), - typeof(Orientation), - typeof(WrapPanel), - new PropertyMetadata(Orientation.Horizontal, LayoutPropertyChanged)); + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty VerticalSpacingProperty = + DependencyProperty.Register( + nameof(VerticalSpacing), + typeof(double), + typeof(WrapPanel), + new PropertyMetadata(0d, LayoutPropertyChanged)); + + /// + /// Gets or sets the orientation of the WrapPanel. + /// Horizontal means that child controls will be added horizontally until the width of the panel is reached, then a new row is added to add new child controls. + /// Vertical means that children will be added vertically until the height of the panel is reached, then a new column is added. + /// + public Orientation Orientation + { + get { return (Orientation)GetValue(OrientationProperty); } + set { SetValue(OrientationProperty, value); } + } + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty OrientationProperty = + DependencyProperty.Register( + nameof(Orientation), + typeof(Orientation), + typeof(WrapPanel), + new PropertyMetadata(Orientation.Horizontal, LayoutPropertyChanged)); + + /// + /// Gets or sets the distance between the border and its child object. + /// + /// + /// The dimensions of the space between the border and its child as a Thickness value. + /// Thickness is a structure that stores dimension values using pixel measures. + /// + public Thickness Padding + { + get { return (Thickness)GetValue(PaddingProperty); } + set { SetValue(PaddingProperty, value); } + } + + /// + /// Identifies the Padding dependency property. + /// + /// The identifier for the dependency property. + public static readonly DependencyProperty PaddingProperty = + DependencyProperty.Register( + nameof(Padding), + typeof(Thickness), + typeof(WrapPanel), + new PropertyMetadata(default(Thickness), LayoutPropertyChanged)); /// - /// Gets or sets the distance between the border and its child object. + /// Gets or sets a value indicating how to arrange child items /// - /// - /// The dimensions of the space between the border and its child as a Thickness value. - /// Thickness is a structure that stores dimension values using pixel measures. - /// - public Thickness Padding + public StretchChild StretchChild { - get { return (Thickness)GetValue(PaddingProperty); } - set { SetValue(PaddingProperty, value); } + get { return (StretchChild)GetValue(StretchChildProperty); } + set { SetValue(StretchChildProperty, value); } } /// - /// Identifies the Padding dependency property. + /// Identifies the dependency property. /// - /// The identifier for the dependency property. - public static readonly DependencyProperty PaddingProperty = + /// The identifier for the dependency property. + public static readonly DependencyProperty StretchChildProperty = DependencyProperty.Register( - nameof(Padding), - typeof(Thickness), + nameof(StretchChild), + typeof(StretchChild), typeof(WrapPanel), - new PropertyMetadata(default(Thickness), LayoutPropertyChanged)); + new PropertyMetadata(StretchChild.None, LayoutPropertyChanged)); - private static void LayoutPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - if (d is WrapPanel wp) - { - wp.InvalidateMeasure(); - wp.InvalidateArrange(); - } - } + private static void LayoutPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is WrapPanel wp) + { + wp.InvalidateMeasure(); + wp.InvalidateArrange(); + } + } - /// - protected override Size MeasureOverride(Size availableSize) - { - availableSize.Width = availableSize.Width - Padding.Left - Padding.Right; - availableSize.Height = availableSize.Height - Padding.Top - Padding.Bottom; - var totalMeasure = UvMeasure.Zero; - var parentMeasure = new UvMeasure(Orientation, availableSize.Width, availableSize.Height); - var spacingMeasure = new UvMeasure(Orientation, HorizontalSpacing, VerticalSpacing); - var lineMeasure = UvMeasure.Zero; - - foreach (var child in Children) - { - child.Measure(availableSize); + /// + protected override Size MeasureOverride(Size availableSize) + { + availableSize.Width = availableSize.Width - Padding.Left - Padding.Right; + availableSize.Height = availableSize.Height - Padding.Top - Padding.Bottom; + var totalMeasure = UvMeasure.Zero; + var parentMeasure = new UvMeasure(Orientation, availableSize.Width, availableSize.Height); + var spacingMeasure = new UvMeasure(Orientation, HorizontalSpacing, VerticalSpacing); + var lineMeasure = UvMeasure.Zero; - var currentMeasure = new UvMeasure(Orientation, child.DesiredSize.Width, child.DesiredSize.Height); + foreach (var nativeChild in Children) + { + // UNO TODO + if (nativeChild is UIElement child) + { + child.Measure(availableSize); + var currentMeasure = new UvMeasure(Orientation, child.DesiredSize.Width, child.DesiredSize.Height); + if (currentMeasure.U == 0) + { + continue; // ignore collapsed items + } - if (parentMeasure.U >= currentMeasure.U + lineMeasure.U + spacingMeasure.U) - { - lineMeasure.U += currentMeasure.U + spacingMeasure.U; - lineMeasure.V = Math.Max(lineMeasure.V, currentMeasure.V); - } - else - { - // new line should be added - // to get the max U to provide it correctly to ui width ex: ---| or -----| - totalMeasure.U = Math.Max(lineMeasure.U, totalMeasure.U); - totalMeasure.V += lineMeasure.V + spacingMeasure.V; + // if this is the first item, do not add spacing. Spacing is added to the "left" + double uChange = lineMeasure.U == 0 + ? currentMeasure.U + : currentMeasure.U + spacingMeasure.U; + if (parentMeasure.U >= uChange + lineMeasure.U) + { + lineMeasure.U += uChange; + lineMeasure.V = Math.Max(lineMeasure.V, currentMeasure.V); + } + else + { + // new line should be added + // to get the max U to provide it correctly to ui width ex: ---| or -----| + totalMeasure.U = Math.Max(lineMeasure.U, totalMeasure.U); + totalMeasure.V += lineMeasure.V + spacingMeasure.V; - // if the next new row still can handle more controls - if (parentMeasure.U > currentMeasure.U) - { - // set lineMeasure initial values to the currentMeasure to be calculated later on the new loop - lineMeasure = currentMeasure; - } + // if the next new row still can handle more controls + if (parentMeasure.U > currentMeasure.U) + { + // set lineMeasure initial values to the currentMeasure to be calculated later on the new loop + lineMeasure = currentMeasure; + } - // the control will take one row alone - else - { - // validate the new control measures - totalMeasure.U = Math.Max(currentMeasure.U, totalMeasure.U); - totalMeasure.V += currentMeasure.V; + // the control will take one row alone + else + { + // validate the new control measures + totalMeasure.U = Math.Max(currentMeasure.U, totalMeasure.U); + totalMeasure.V += currentMeasure.V; - // add new empty line - lineMeasure = UvMeasure.Zero; - } - } - } + // add new empty line + lineMeasure = UvMeasure.Zero; + } + } + } + } - // update value with the last line - // if the the last loop is(parentMeasure.U > currentMeasure.U + lineMeasure.U) the total isn't calculated then calculate it - // if the last loop is (parentMeasure.U > currentMeasure.U) the currentMeasure isn't added to the total so add it here - // for the last condition it is zeros so adding it will make no difference - // this way is faster than an if condition in every loop for checking the last item - totalMeasure.U = Math.Max(lineMeasure.U, totalMeasure.U); - totalMeasure.V += lineMeasure.V; + // update value with the last line + // if the the last loop is(parentMeasure.U > currentMeasure.U + lineMeasure.U) the total isn't calculated then calculate it + // if the last loop is (parentMeasure.U > currentMeasure.U) the currentMeasure isn't added to the total so add it here + // for the last condition it is zeros so adding it will make no difference + // this way is faster than an if condition in every loop for checking the last item + totalMeasure.U = Math.Max(lineMeasure.U, totalMeasure.U); + totalMeasure.V += lineMeasure.V; - totalMeasure.U = Math.Ceiling(totalMeasure.U); + totalMeasure.U = Math.Ceiling(totalMeasure.U); - return Orientation == Orientation.Horizontal ? new Size(totalMeasure.U, totalMeasure.V) : new Size(totalMeasure.V, totalMeasure.U); - } + return Orientation == Orientation.Horizontal ? new Size(totalMeasure.U, totalMeasure.V) : new Size(totalMeasure.V, totalMeasure.U); + } /// protected override Size ArrangeOverride(Size finalSize) { - var parentMeasure = new UvMeasure(Orientation, finalSize.Width, finalSize.Height); - var spacingMeasure = new UvMeasure(Orientation, HorizontalSpacing, VerticalSpacing); - var paddingStart = new UvMeasure(Orientation, Padding.Left, Padding.Top); - var paddingEnd = new UvMeasure(Orientation, Padding.Right, Padding.Bottom); - var position = new UvMeasure(Orientation, Padding.Left, Padding.Top); - - double currentV = 0; - foreach (var child in Children) + // UNO TODO + var children = Children.Where(e => e is UIElement).Select(ui => ui as UIElement); + + if (children.Any()) { - var desiredMeasure = new UvMeasure(Orientation, child.DesiredSize.Width, child.DesiredSize.Height); - if ((desiredMeasure.U + position.U + paddingEnd.U) > parentMeasure.U) - { - // next row! - position.U = paddingStart.U; - position.V += currentV + spacingMeasure.V; - currentV = 0; - } + var parentMeasure = new UvMeasure(Orientation, finalSize.Width, finalSize.Height); + var spacingMeasure = new UvMeasure(Orientation, HorizontalSpacing, VerticalSpacing); + var paddingStart = new UvMeasure(Orientation, Padding.Left, Padding.Top); + var paddingEnd = new UvMeasure(Orientation, Padding.Right, Padding.Bottom); + var position = new UvMeasure(Orientation, Padding.Left, Padding.Top); - // Place the item - if (Orientation == Orientation.Horizontal) + double currentV = 0; + void arrange(UIElement child, bool isLast = false) { - child.Arrange(new Rect(position.U, position.V, child.DesiredSize.Width, child.DesiredSize.Height)); + var desiredMeasure = new UvMeasure(Orientation, child.DesiredSize.Width, child.DesiredSize.Height); + if (desiredMeasure.U == 0) + { + return; // if an item is collapsed, avoid adding the spacing + } + + if ((desiredMeasure.U + position.U + paddingEnd.U) > parentMeasure.U) + { + // next row! + position.U = paddingStart.U; + position.V += currentV + spacingMeasure.V; + currentV = 0; + } + + // Stretch the last item to fill the available space + if (isLast) + { + desiredMeasure.U = parentMeasure.U - position.U; + } + + // place the item + if (Orientation == Orientation.Horizontal) + { + child.Arrange(new Rect(position.U, position.V, desiredMeasure.U, desiredMeasure.V)); + } + else + { + child.Arrange(new Rect(position.V, position.U, desiredMeasure.V, desiredMeasure.U)); + } + + // adjust the location for the next items + position.U += desiredMeasure.U + spacingMeasure.U; + currentV = Math.Max(desiredMeasure.V, currentV); } - else + + var lastIndex = children.Count() - 1; + for (var i = 0; i < lastIndex; i++) { - child.Arrange(new Rect(position.V, position.U, child.DesiredSize.Width, child.DesiredSize.Height)); + arrange(children.ElementAt(i)); } - // adjust the location for the next items - position.U += desiredMeasure.U + spacingMeasure.U; - currentV = Math.Max(desiredMeasure.V, currentV); + arrange(children.ElementAt(lastIndex), StretchChild == StretchChild.Last); } return finalSize; diff --git a/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView/AdvancedCollectionView.cs b/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView/AdvancedCollectionView.cs index 278ef50d1fe..848db3c9818 100644 --- a/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView/AdvancedCollectionView.cs +++ b/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView/AdvancedCollectionView.cs @@ -368,13 +368,14 @@ public Predicate Filter /// public IEnumerable SourceCollection => _source; - /// - /// IComparer implementation - /// - /// Object A - /// Object B - /// Comparison value - int IComparer.Compare(object x, object y) + + /// + /// IComparer implementation + /// + /// Object A + /// Object B + /// Comparison value + int IComparer.Compare(object x, object y) { if (!_sortProperties.Any()) { @@ -783,5 +784,5 @@ private bool MoveCurrentToIndex(int i) OnCurrentChanged(null); return true; } - } + } } \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Converters/BoolToObjectConverter.cs b/Microsoft.Toolkit.Uwp.UI/Converters/BoolToObjectConverter.cs index 43054525db6..7f35d9e491a 100644 --- a/Microsoft.Toolkit.Uwp.UI/Converters/BoolToObjectConverter.cs +++ b/Microsoft.Toolkit.Uwp.UI/Converters/BoolToObjectConverter.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Converters /// This class converts a boolean value into an other object. /// Can be used to convert true/false to visibility, a couple of colors, couple of images, etc. /// - public class BoolToObjectConverter : DependencyObject, IValueConverter + public partial class BoolToObjectConverter : DependencyObject, IValueConverter { /// /// Identifies the property. diff --git a/Microsoft.Toolkit.Uwp.UI/Converters/DoubleToObjectConverter.cs b/Microsoft.Toolkit.Uwp.UI/Converters/DoubleToObjectConverter.cs index cadeeae4043..b39cd32c372 100644 --- a/Microsoft.Toolkit.Uwp.UI/Converters/DoubleToObjectConverter.cs +++ b/Microsoft.Toolkit.Uwp.UI/Converters/DoubleToObjectConverter.cs @@ -16,7 +16,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Converters /// The ConverterParameter can be used to invert the logic. /// [Bindable] - public class DoubleToObjectConverter : DependencyObject, IValueConverter + public partial class DoubleToObjectConverter : DependencyObject, IValueConverter { /// /// Identifies the property. diff --git a/Microsoft.Toolkit.Uwp.UI/Converters/EmptyObjectToObjectConverter.cs b/Microsoft.Toolkit.Uwp.UI/Converters/EmptyObjectToObjectConverter.cs index 2ae55cab138..fca9fa6a673 100644 --- a/Microsoft.Toolkit.Uwp.UI/Converters/EmptyObjectToObjectConverter.cs +++ b/Microsoft.Toolkit.Uwp.UI/Converters/EmptyObjectToObjectConverter.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Converters /// This class converts an object value into a an object (if the value is null returns the false value). /// Can be used to bind a visibility, a color or an image to the value of an object. /// - public class EmptyObjectToObjectConverter : DependencyObject, IValueConverter + public partial class EmptyObjectToObjectConverter : DependencyObject, IValueConverter { /// /// Identifies the property. diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/DispatcherTimerExtensions.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/DispatcherTimerExtensions.cs new file mode 100644 index 00000000000..d1ecfed07ed --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/DispatcherTimerExtensions.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Concurrent; +using Windows.UI.Xaml; + +namespace Microsoft.Toolkit.Uwp.UI.Extensions +{ + /// + /// Set of extention methods for using . + /// + public static class DispatcherTimerExtensions + { + private static ConcurrentDictionary _debounceInstances = new ConcurrentDictionary(); + + /// + /// Used to debounce (rate-limit) an event. The action will be postponed and executed after the interval has elapsed. At the end of the interval, the function will be called with the arguments that were passed most recently to the debounced function. + /// Use this method to control the timer instead of calling Start/Interval/Stop manually. + /// A scheduled debounce can still be stopped by calling the stop method on the timer instance. + /// Each timer can only have one debounced function limited at a time. + /// + /// Timer instance, only one debounced function can be used per timer. + /// Action to execute at the end of the interval. + /// Interval to wait before executing the action. + /// Determines if the action execute on the leading edge instead of trailing edge. + /// + /// + /// private DispatcherTimer _typeTimer = new DispatcherTimer(); + /// + /// _typeTimer.Debounce(async () => + /// { + /// // Only executes this code after 0.3 seconds have elapsed since last trigger. + /// }, TimeSpan.FromSeconds(0.3)); + /// + /// + public static void Debounce(this DispatcherTimer timer, Action action, TimeSpan interval, bool immediate = false) + { + // Check and stop any existing timer + var timeout = timer.IsEnabled; + if (timeout) + { + timer.Stop(); + } + + // Reset timer parameters + timer.Tick -= Timer_Tick; + timer.Interval = interval; + + if (immediate) + { + // If we're in immediate mode then we only execute if the timer wasn't running beforehand + if (!timeout) + { + action.Invoke(); + } + } + else + { + // If we're not in immediate mode, then we'll execute when the current timer expires. + timer.Tick += Timer_Tick; + + // Store/Update function + _debounceInstances.AddOrUpdate(timer, action, (k, v) => v); + } + + // Start the timer to keep track of the last call here. + timer.Start(); + } + + private static void Timer_Tick(object sender, object e) + { + // This event is only registered/run if we weren't in immediate mode above + if (sender is DispatcherTimer timer) + { + timer.Tick -= Timer_Tick; + timer.Stop(); + + if (_debounceInstances.TryRemove(timer, out Action action)) + { + action?.Invoke(); + } + } + } + } +} diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/StatusBar/StatusBarExtensions.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/StatusBar/StatusBarExtensions.cs index 734577d6606..63711ab97d5 100644 --- a/Microsoft.Toolkit.Uwp.UI/Extensions/StatusBar/StatusBarExtensions.cs +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/StatusBar/StatusBarExtensions.cs @@ -27,7 +27,7 @@ public static class StatusBarExtensions /// Color public static Color GetBackgroundColor(Page page) { - Color color; + Color color = default(Color); ; var statusBar = GetStatusBar(); if (statusBar != null) @@ -59,7 +59,7 @@ public static void SetBackgroundColor(Page page, Color value) /// Color public static Color GetForegroundColor(Page page) { - Color color; + Color color = default(Color); ; var statusBar = GetStatusBar(); if (statusBar != null) diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/TitleBar/TitleBarExtensions.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/TitleBar/TitleBarExtensions.cs index 457614d405e..3a13a95d470 100644 --- a/Microsoft.Toolkit.Uwp.UI/Extensions/TitleBar/TitleBarExtensions.cs +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/TitleBar/TitleBarExtensions.cs @@ -26,7 +26,7 @@ public static class TitleBarExtensions /// Color public static Color GetBackgroundColor(Page page) { - Color color; + Color color = default(Color); var titleBar = GetTitleBar(); if (titleBar != null) @@ -58,9 +58,9 @@ public static void SetBackgroundColor(Page page, Color value) /// Color public static Color GetButtonBackgroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonBackgroundColor.GetValueOrDefault(); @@ -90,9 +90,9 @@ public static void SetButtonBackgroundColor(Page page, Color value) /// Color public static Color GetButtonForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonForegroundColor.GetValueOrDefault(); @@ -122,9 +122,9 @@ public static void SetButtonForegroundColor(Page page, Color value) /// Color public static Color GetButtonHoverBackgroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonHoverBackgroundColor.GetValueOrDefault(); @@ -154,9 +154,9 @@ public static void SetButtonHoverBackgroundColor(Page page, Color value) /// Color public static Color GetButtonHoverForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonHoverForegroundColor.GetValueOrDefault(); @@ -186,9 +186,9 @@ public static void SetButtonHoverForegroundColor(Page page, Color value) /// Color public static Color GetButtonInactiveBackgroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonInactiveBackgroundColor.GetValueOrDefault(); @@ -218,9 +218,9 @@ public static void SetButtonInactiveBackgroundColor(Page page, Color value) /// Color public static Color GetButtonInactiveForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonInactiveForegroundColor.GetValueOrDefault(); @@ -250,9 +250,9 @@ public static void SetButtonInactiveForegroundColor(Page page, Color value) /// Color public static Color GetButtonPressedBackgroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonPressedBackgroundColor.GetValueOrDefault(); @@ -282,9 +282,9 @@ public static void SetButtonPressedBackgroundColor(Page page, Color value) /// Color public static Color GetButtonPressedForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ButtonPressedForegroundColor.GetValueOrDefault(); @@ -314,9 +314,9 @@ public static void SetButtonPressedForegroundColor(Page page, Color value) /// Color public static Color GetForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.ForegroundColor.GetValueOrDefault(); @@ -346,9 +346,9 @@ public static void SetForegroundColor(Page page, Color value) /// Color public static Color GetInactiveBackgroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.InactiveBackgroundColor.GetValueOrDefault(); @@ -378,9 +378,9 @@ public static void SetInactiveBackgroundColor(Page page, Color value) /// Color public static Color GetInactiveForegroundColor(Page page) { - Color color; + Color color = default(Color); - var titleBar = GetTitleBar(); + var titleBar = GetTitleBar(); if (titleBar != null) { color = titleBar.InactiveForegroundColor.GetValueOrDefault(); diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs index b4be056d43f..190f931f295 100644 --- a/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs @@ -257,10 +257,14 @@ public static UIElement GetContentControl(this FrameworkElement element) var contentpropname = ContentPropertySearch(element.GetType()); if (contentpropname != null) { - return element.GetType()?.GetProperty(contentpropname)?.GetValue(element) as UIElement; - } +#if HAS_UNO + return element.GetType()?.GetProperties().FirstOrDefault(p => p.Name == contentpropname)?.GetValue(element) as UIElement; +#else + return element.GetType()?.GetProperty(contentpropname)?.GetValue(element) as UIElement; +#endif + } - return null; + return null; } /// diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/VisualTree.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/VisualTree.cs index 73177af5c27..f53b265738a 100644 --- a/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/VisualTree.cs +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/VisualTree.cs @@ -52,9 +52,13 @@ public static FrameworkElement FindDescendantByName(this DependencyObject elemen /// Parent element. /// Descendant control or null if not found. public static T FindDescendant(this DependencyObject element) - where T : DependencyObject - { - T retValue = null; +#if HAS_UNO + where T : class, DependencyObject +#else + where T : DependencyObject +#endif + { + T retValue = null; var childrenCount = VisualTreeHelper.GetChildrenCount(element); for (var i = 0; i < childrenCount; i++) @@ -116,9 +120,13 @@ public static object FindDescendant(this DependencyObject element, Type type) /// Parent element. /// Descendant controls or empty if not found. public static IEnumerable FindDescendants(this DependencyObject element) - where T : DependencyObject - { - var childrenCount = VisualTreeHelper.GetChildrenCount(element); +#if HAS_UNO + where T : class, DependencyObject +#else + where T : DependencyObject +#endif + { + var childrenCount = VisualTreeHelper.GetChildrenCount(element); for (var i = 0; i < childrenCount; i++) { @@ -171,9 +179,13 @@ public static FrameworkElement FindAscendantByName(this DependencyObject element /// Child element. /// Ascendant control or null if not found. public static T FindAscendant(this DependencyObject element) - where T : DependencyObject - { - var parent = VisualTreeHelper.GetParent(element); +#if HAS_UNO + where T : class, DependencyObject +#else + where T : DependencyObject +#endif + { + var parent = VisualTreeHelper.GetParent(element); if (parent == null) { diff --git a/Microsoft.Toolkit.Uwp.UI/Helpers/BindableValueHolder.cs b/Microsoft.Toolkit.Uwp.UI/Helpers/BindableValueHolder.cs index a63c70a0c90..5b8322214a9 100644 --- a/Microsoft.Toolkit.Uwp.UI/Helpers/BindableValueHolder.cs +++ b/Microsoft.Toolkit.Uwp.UI/Helpers/BindableValueHolder.cs @@ -12,7 +12,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Helpers /// Can be used to change several objects' properties at a time. /// [ContentProperty(Name = nameof(Value))] - public class BindableValueHolder : DependencyObject + public partial class BindableValueHolder : DependencyObject { /// /// Identifies the property. diff --git a/Microsoft.Toolkit.Uwp.UI/Helpers/DependencyPropertyWatcher.cs b/Microsoft.Toolkit.Uwp.UI/Helpers/DependencyPropertyWatcher.cs index f5c72aacf13..26ccfcea7aa 100644 --- a/Microsoft.Toolkit.Uwp.UI/Helpers/DependencyPropertyWatcher.cs +++ b/Microsoft.Toolkit.Uwp.UI/Helpers/DependencyPropertyWatcher.cs @@ -8,12 +8,20 @@ namespace Microsoft.Toolkit.Uwp.UI.Helpers using Windows.UI.Xaml; using Windows.UI.Xaml.Data; - /// - /// Used to Track Changes of a Dependency Property - /// - /// Value of Dependency Property - public class DependencyPropertyWatcher : DependencyObject, IDisposable - { + /// + /// Used to Track Changes of a Dependency Property + /// + public partial class DependencyPropertyWatcher : DependencyObject + { + + } + + /// + /// Used to Track Changes of a Dependency Property + /// + /// Value of Dependency Property + public partial class DependencyPropertyWatcher : DependencyPropertyWatcher, IDisposable + { /// /// Value of Value Property /// diff --git a/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs b/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs index 42e75842550..2cdd2084fd0 100644 --- a/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs +++ b/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs @@ -56,9 +56,14 @@ public string CurrentThemeName public ThemeListener() { CurrentTheme = Application.Current.RequestedTheme; - IsHighContrast = _accessible.HighContrast; - _accessible.HighContrastChanged += Accessible_HighContrastChanged; +#if !HAS_UNO + IsHighContrast = _accessible.HighContrast; +#else + IsHighContrast = false; +#endif + + _accessible.HighContrastChanged += Accessible_HighContrastChanged; _settings.ColorValuesChanged += Settings_ColorValuesChanged; // Fallback in case either of the above fail, we'll check when we get activated next. diff --git a/Microsoft.Toolkit.Uwp.UI/Media/AlphaMode.cs b/Microsoft.Toolkit.Uwp.UI/Media/AlphaMode.cs index 8d248160f3b..0442d4d3340 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/AlphaMode.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/AlphaMode.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -26,3 +27,4 @@ public enum AlphaMode Straight = 1, } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/BackdropBlurBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/BackdropBlurBrush.cs index 0458960dd8d..c1ba4956eff 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/BackdropBlurBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/BackdropBlurBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -35,8 +36,8 @@ public double Amount } private static void OnAmountChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var brush = (BackdropBlurBrush)d; + { + var brush = (BackdropBlurBrush)d; // Unbox and set a new blur amount if the CompositionBrush exists. brush.CompositionBrush?.Properties.InsertScalar("Blur.BlurAmount", (float)(double)e.NewValue); @@ -96,3 +97,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/BackdropGammaTransferBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/BackdropGammaTransferBrush.cs index 17cf761988f..2d2b215231f 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/BackdropGammaTransferBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/BackdropGammaTransferBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -360,3 +361,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/BackdropInvertBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/BackdropInvertBrush.cs index 09377b6b086..8196543517e 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/BackdropInvertBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/BackdropInvertBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -69,3 +70,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/BackdropSaturationBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/BackdropSaturationBrush.cs index f6f1355599c..a4b603801d1 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/BackdropSaturationBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/BackdropSaturationBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -105,3 +106,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/BackdropSepiaBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/BackdropSepiaBrush.cs index 9606cfd73fa..509d502f59a 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/BackdropSepiaBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/BackdropSepiaBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -105,3 +106,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/CanvasBrushBase.cs b/Microsoft.Toolkit.Uwp.UI/Media/CanvasBrushBase.cs index 44c2b488da6..17234d7bc40 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/CanvasBrushBase.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/CanvasBrushBase.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -139,3 +140,4 @@ protected override void OnDisconnected() } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendBrush.cs index 41c746320e7..91229583ee8 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -216,3 +217,4 @@ private static CompositionStretch CompositionStretchFromStretch(Stretch value) } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendMode.cs b/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendMode.cs index 0d93f1f529a..7932c06f95f 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendMode.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/ImageBlendMode.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,7 +13,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Media /// public enum ImageBlendMode { - #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - see http://microsoft.github.io/Win2D/html/T_Microsoft_Graphics_Canvas_Effects_BlendEffectMode.htm. +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - see http://microsoft.github.io/Win2D/html/T_Microsoft_Graphics_Canvas_Effects_BlendEffectMode.htm. Multiply = 0, Screen = 1, Darken = 2, @@ -55,6 +56,7 @@ public enum ImageBlendMode Luminosity = 23, Subtract = 24, Division = 25, - #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.Properties.cs b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.Properties.cs index f0d5863786b..85833e03000 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.Properties.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.Properties.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -134,3 +135,4 @@ public GradientSpreadMethod SpreadMethod DependencyProperty.Register(nameof(SpreadMethod), typeof(GradientSpreadMethod), typeof(RadialGradientBrush), new PropertyMetadata(GradientSpreadMethod.Pad, new PropertyChangedCallback(OnPropertyChanged))); } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.cs b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.cs index 77d37767f4e..d88ed736a9e 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrush.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -105,3 +106,4 @@ protected override bool OnDraw(CanvasDevice device, CanvasDrawingSession session } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrushInterop.cs b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrushInterop.cs index 8a6b23047e2..83391dbf283 100644 --- a/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrushInterop.cs +++ b/Microsoft.Toolkit.Uwp.UI/Media/RadialGradientBrushInterop.cs @@ -1,3 +1,4 @@ +#if NETFX_CORE // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -96,3 +97,4 @@ public static CanvasGradientStop[] ToWin2DGradientStops(this GradientStopCollect } } } +#endif \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI/Microsoft.Toolkit.Uwp.UI.csproj b/Microsoft.Toolkit.Uwp.UI/Microsoft.Toolkit.Uwp.UI.csproj index d9df1ca3a6b..a94a88f8a6a 100644 --- a/Microsoft.Toolkit.Uwp.UI/Microsoft.Toolkit.Uwp.UI.csproj +++ b/Microsoft.Toolkit.Uwp.UI/Microsoft.Toolkit.Uwp.UI.csproj @@ -1,21 +1,32 @@  - uap10.0.16299 + $(TargetFrameworksOverride) Windows Community Toolkit UI This library provides UI components, such as XAML extensions, helpers, brushes, converters and more. It is part of the Windows Community Toolkit. UWP Toolkit Windows UI Converters XAML extensions helpers brushes blur - true - true - + true + true + $(NoWarn);Uno0001;NU1701 + Uno.Microsoft.Toolkit.Uwp.UI + + + + $(DefineConstants);__WASM__ + - - + + - - - + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs b/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs index 2df16f0c836..ce63336e368 100644 --- a/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs +++ b/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs @@ -132,7 +132,8 @@ public async Task InitializeAndStartCaptureAsync() if (_previewFrameSource != null) { - _frameReader = await _mediaCapture.CreateFrameReaderAsync(_previewFrameSource); +#if NETFX_CORE + _frameReader = await _mediaCapture.CreateFrameReaderAsync(_previewFrameSource); if (Windows.Foundation.Metadata.ApiInformation.IsPropertyPresent("Windows.Media.Capture.Frames.MediaFrameReader", "AcquisitionMode")) { _frameReader.AcquisitionMode = MediaFrameReaderAcquisitionMode.Realtime; @@ -152,6 +153,7 @@ public async Task InitializeAndStartCaptureAsync() result = CameraHelperResult.StartFrameReaderFailed; } } +#endif } _initialized = result == CameraHelperResult.Success; diff --git a/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/FrameEventArgs.cs b/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/FrameEventArgs.cs index ce860bffa1e..698465ca41a 100644 --- a/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/FrameEventArgs.cs +++ b/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/FrameEventArgs.cs @@ -26,7 +26,8 @@ public VideoFrame VideoFrame { get { - _semaphore.Wait(); +#if NETFX_CORE + _semaphore.Wait(); // The VideoFrame could be disposed at any time so we need to create a copy we can use. // This API is only available on 17134 so we return the original VideoFrame on older versions. @@ -45,6 +46,9 @@ public VideoFrame VideoFrame } _semaphore.Release(); +#else + _videoFrameCopy = null; +#endif return _videoFrameCopy ?? _videoFrame; } diff --git a/Microsoft.Toolkit.Uwp/Helpers/StreamHelper.cs b/Microsoft.Toolkit.Uwp/Helpers/StreamHelper.cs index 7c9f4937803..d444dfa8587 100644 --- a/Microsoft.Toolkit.Uwp/Helpers/StreamHelper.cs +++ b/Microsoft.Toolkit.Uwp/Helpers/StreamHelper.cs @@ -4,7 +4,9 @@ using System; using System.IO; +using System.Linq; using System.Net.Http; +using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -19,7 +21,9 @@ namespace Microsoft.Toolkit.Uwp.Helpers /// public static class StreamHelper { - private static HttpClient client = new HttpClient(); + + public static Stream AsStream(this Stream s) => s; + private static HttpClient client = new HttpClient(); /// /// Gets the response stream returned by a HTTP get request. @@ -71,6 +75,7 @@ public static async Task GetHttpStreamToStorageFileAsync( } } +#if NETFX_CORE /// /// Gets a stream to a specified file from the installation folder. /// @@ -82,16 +87,75 @@ public static Task GetPackagedFileStreamAsync( FileAccessMode accessMode = FileAccessMode.Read) { StorageFolder workingFolder = Package.Current.InstalledLocation; - return GetFileStreamAsync(fileName, accessMode, workingFolder); + return GetFileRandomAccessStreamAsync(fileName, accessMode, workingFolder); } + + /// + /// Return a stream to a specified file from the application local folder. + /// + /// Relative name of the file to open. Can contains subfolders. + /// File access mode. Default is read. + /// File stream + public static Task GetLocalFileStreamAsync( + string fileName, + FileAccessMode accessMode = FileAccessMode.Read) + { + StorageFolder workingFolder = ApplicationData.Current.LocalFolder; + return GetFileRandomAccessStreamAsync(fileName, accessMode, workingFolder); + } + + /// + /// Return a stream to a specified file from the application local cache folder. + /// + /// Relative name of the file to open. Can contains subfolders. + /// File access mode. Default is read. + /// File stream + public static Task GetLocalCacheFileStreamAsync( + string fileName, + FileAccessMode accessMode = FileAccessMode.Read) + { + StorageFolder workingFolder = ApplicationData.Current.LocalCacheFolder; + return GetFileRandomAccessStreamAsync(fileName, accessMode, workingFolder); + } + + /// + /// Return a stream to a specified file from the application local cache folder. + /// + /// The well known folder ID to use + /// Relative name of the file to open. Can contains subfolders. + /// File access mode. Default is read. + /// File stream + public static Task GetKnowFoldersFileStreamAsync( + KnownFolderId knownFolderId, + string fileName, + FileAccessMode accessMode = FileAccessMode.Read) + { + StorageFolder workingFolder = StorageFileHelper.GetFolderFromKnownFolderId(knownFolderId); + return GetFileRandomAccessStreamAsync(fileName, accessMode, workingFolder); + } +#else + /// + /// Return a stream to a specified file from the installation folder. + /// + /// Relative name of the file to open. Can contains subfolders. + /// File access mode. Default is read. + /// File stream + public static Task GetPackagedFileStreamAsync( + string fileName, + FileAccessMode accessMode = FileAccessMode.Read) + { + StorageFolder workingFolder = Package.Current.InstalledLocation; + return GetFileStreamAsync(fileName, accessMode, workingFolder); + } + /// /// Gets a stream to a specified file from the application local folder. /// /// Relative name of the file to open. Can contains subfolders. /// File access mode. Default is read. /// The file stream - public static Task GetLocalFileStreamAsync( + public static Task GetLocalFileStreamAsync( string fileName, FileAccessMode accessMode = FileAccessMode.Read) { @@ -105,7 +169,7 @@ public static Task GetLocalFileStreamAsync( /// Relative name of the file to open. Can contain subfolders. /// File access mode. Default is read. /// The file stream - public static Task GetLocalCacheFileStreamAsync( + public static Task GetLocalCacheFileStreamAsync( string fileName, FileAccessMode accessMode = FileAccessMode.Read) { @@ -120,7 +184,7 @@ public static Task GetLocalCacheFileStreamAsync( /// Relative name of the file to open. Can contains subfolders. /// File access mode. Default is read. /// The file stream - public static Task GetKnowFoldersFileStreamAsync( + public static Task GetKnowFoldersFileStreamAsync( KnownFolderId knownFolderId, string fileName, FileAccessMode accessMode = FileAccessMode.Read) @@ -129,13 +193,37 @@ public static Task GetKnowFoldersFileStreamAsync( return GetFileStreamAsync(fileName, accessMode, workingFolder); } - /// - /// Reads stream content as a string. - /// - /// Stream to read from. - /// Encoding to use. If set to null, ASCII will be used. - /// The stream content - public static async Task ReadTextAsync( +#endif + + /// + /// Return a stream to a specified file from the installation folder. + /// + /// The owner type for the embedded file + /// Relative name of the file to open. Can contains subfolders. + /// File stream + public static async Task GetEmbeddedFileStreamAsync(Type assemblyType, string fileName) + { + await Task.Yield(); + + var manifestName = assemblyType.GetTypeInfo().Assembly + .GetManifestResourceNames() + .FirstOrDefault(n => n.EndsWith(fileName.Replace(" ", "_"), StringComparison.OrdinalIgnoreCase)); + + if (manifestName == null) + { + throw new InvalidOperationException($"Failed to find resource [{fileName}]"); + } + + return assemblyType.GetTypeInfo().Assembly.GetManifestResourceStream(manifestName); + } + + /// + /// Read stream content as a string. + /// + /// Stream to read from. + /// Encoding to use. Can be set to null (ASCII will be used in this case). + /// Stream content. + public static async Task ReadTextAsync( this IRandomAccessStream stream, Encoding encoding = null) { @@ -154,7 +242,7 @@ public static async Task ReadTextAsync( return encoding.GetString(bytes); } - private static async Task GetFileStreamAsync( + private static async Task GetFileRandomAccessStreamAsync( string fullFileName, FileAccessMode accessMode, StorageFolder workingFolder) @@ -167,6 +255,35 @@ private static async Task GetFileStreamAsync( return await file.OpenAsync(accessMode); } + /// + /// Read stream content as a string. + /// + /// Stream to read from. + /// Encoding to use. Can be set to null (ASCII will be used in this case). + /// Stream content. + public static async Task ReadTextAsync( + this Stream stream, + Encoding encoding = null) + { + using (var reader = new StreamReader(stream)) + { + return await reader.ReadToEndAsync(); + } + } + + private static async Task GetFileStreamAsync( + string fullFileName, + FileAccessMode accessMode, + StorageFolder workingFolder) + { + var fileName = Path.GetFileName(fullFileName); + workingFolder = await GetSubFolderAsync(fullFileName, workingFolder); + + var file = await workingFolder.GetFileAsync(fileName); + + return File.OpenRead(file.Path); + } + private static async Task GetSubFolderAsync( string fullFileName, StorageFolder workingFolder) diff --git a/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs b/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs index 68444250c10..f7ce0b773bd 100644 --- a/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs +++ b/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs @@ -200,6 +200,7 @@ public static void TrackAppUse(LaunchActivatedEventArgs args) : DateTime.MinValue; } +#if !HAS_UNO void App_VisibilityChanged(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.VisibilityChangedEventArgs e) { if (e.Visible) @@ -216,8 +217,11 @@ void App_VisibilityChanged(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.Vi } } - Windows.UI.Core.CoreWindow.GetForCurrentThread().VisibilityChanged -= App_VisibilityChanged; + Windows.UI.Core.CoreWindow.GetForCurrentThread().VisibilityChanged -= App_VisibilityChanged; Windows.UI.Core.CoreWindow.GetForCurrentThread().VisibilityChanged += App_VisibilityChanged; +#else + _sessionStart = DateTime.UtcNow; +#endif } /// @@ -257,7 +261,8 @@ public static void ResetLaunchCount() /// static SystemInformation() { - ApplicationName = Package.Current.DisplayName; +#if !HAS_UNO + ApplicationName = Package.Current.DisplayName; ApplicationVersion = Package.Current.Id.Version; try { @@ -287,9 +292,12 @@ static SystemInformation() FirstUseTime = DetectFirstUseTime(); FirstVersionInstalled = DetectFirstVersionInstalled(); InitializeValuesSetWithTrackAppUse(); - } +#else + ApplicationName = "Unknown"; +#endif + } - private static bool DetectIfFirstUse() + private static bool DetectIfFirstUse() { if (_localObjectStorageHelper.KeyExists(nameof(IsFirstRun))) { diff --git a/Microsoft.Toolkit.Uwp/Microsoft.Toolkit.Uwp.csproj b/Microsoft.Toolkit.Uwp/Microsoft.Toolkit.Uwp.csproj index 04ac84121fe..b66e660d03f 100644 --- a/Microsoft.Toolkit.Uwp/Microsoft.Toolkit.Uwp.csproj +++ b/Microsoft.Toolkit.Uwp/Microsoft.Toolkit.Uwp.csproj @@ -1,20 +1,26 @@  - uap10.0.16299 - Windows Community Toolkit + $(TargetFrameworksOverride) + Windows Community Toolkit This package includes code only helpers such as Colors conversion tool, Storage file handling, a Stream helper class, etc. UWP Toolkit Windows true - + Uno.Microsoft.Toolkit.Uwp + $(NoWarn);Uno0001;NU1701 + - - - - - + + - + + + + + + + + diff --git a/Microsoft.Toolkit/Helpers/Singleton.cs b/Microsoft.Toolkit/Helpers/Singleton.cs new file mode 100644 index 00000000000..9886c7a4bd6 --- /dev/null +++ b/Microsoft.Toolkit/Helpers/Singleton.cs @@ -0,0 +1,46 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Concurrent; + +namespace Microsoft.Toolkit.Helpers +{ + /// + /// Provides an easy-to-use thread-safe Singleton Pattern via ConcurrentDictionary. + /// + /// The type to be used for creating the Singleton instance. + /// + /// Use by adding a static property to your class for a traditional access pattern: + /// + /// // Setup Singleton + /// public static class MyClass { + /// public static MyClass Instance => Singleton<MyClass>.Instance; + /// + /// public void MyMethod() { } + /// } + /// + /// // Use Singleton Instance + /// MyClass.Instance.MyMethod(); + /// + /// + public static class Singleton + where T : new() + { + // Use ConcurrentDictionary for thread safety. + private static ConcurrentDictionary _instances = new ConcurrentDictionary(); + + /// + /// Gets the instance of the Singleton class. + /// + public static T Instance + { + get + { + // Safely creates the first instance or retrieves the existing instance across threads. + return _instances.GetOrAdd(typeof(T), (t) => new T()); + } + } + } +} diff --git a/Microsoft.Toolkit/Microsoft.Toolkit.csproj b/Microsoft.Toolkit/Microsoft.Toolkit.csproj index 2f4ffda374a..fd4d7baf227 100644 --- a/Microsoft.Toolkit/Microsoft.Toolkit.csproj +++ b/Microsoft.Toolkit/Microsoft.Toolkit.csproj @@ -1,13 +1,15 @@ - + - netstandard2.0 + $(TargetFrameworksOverride) Windows Community Toolkit .NET Standard This package includes .NET Standard code only helpers, such as IncrementalLoadingCollection, string extensions and array extensions. It is part of the Windows Community Toolkit. UWP Toolkit Windows IncrementalLoadingCollection String Array extensions Full - - + $(NoWarn);Uno0001;NU1701 + Uno.Microsoft.Toolkit + + \ No newline at end of file diff --git a/Toolkit.ruleset b/Toolkit.ruleset index 5f70b95957e..7b4b012684c 100644 --- a/Toolkit.ruleset +++ b/Toolkit.ruleset @@ -70,6 +70,7 @@ + diff --git a/UnitTests/UnitTests.Notifications.NetCore/UnitTests.Notifications.NetCore.csproj b/UnitTests/UnitTests.Notifications.NetCore/UnitTests.Notifications.NetCore.csproj index dffe5b66a4f..3bdb4d6efba 100644 --- a/UnitTests/UnitTests.Notifications.NetCore/UnitTests.Notifications.NetCore.csproj +++ b/UnitTests/UnitTests.Notifications.NetCore/UnitTests.Notifications.NetCore.csproj @@ -17,8 +17,4 @@ - - - - diff --git a/UnitTests/UnitTests.Notifications.UWP/UnitTests.Notifications.UWP.csproj b/UnitTests/UnitTests.Notifications.UWP/UnitTests.Notifications.UWP.csproj index 34c948a29d4..75d97c161d5 100644 --- a/UnitTests/UnitTests.Notifications.UWP/UnitTests.Notifications.UWP.csproj +++ b/UnitTests/UnitTests.Notifications.UWP/UnitTests.Notifications.UWP.csproj @@ -103,7 +103,7 @@ - 6.1.5 + 6.2.9 1.2.0 @@ -144,12 +144,6 @@ - - - {97ee849b-403c-490e-80ed-d19d7cc153fd} - Microsoft.Toolkit.Uwp.Notifications - - 14.0 diff --git a/UnitTests/UnitTests.Notifications.WinRT/UnitTests.Notifications.WinRT.csproj b/UnitTests/UnitTests.Notifications.WinRT/UnitTests.Notifications.WinRT.csproj index cf8a864c82c..7d86c61f73a 100644 --- a/UnitTests/UnitTests.Notifications.WinRT/UnitTests.Notifications.WinRT.csproj +++ b/UnitTests/UnitTests.Notifications.WinRT/UnitTests.Notifications.WinRT.csproj @@ -103,7 +103,7 @@ - 6.1.5 + 6.2.9 1.2.0 diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj index bedbb2bb25c..6e038be2c86 100644 --- a/UnitTests/UnitTests.csproj +++ b/UnitTests/UnitTests.csproj @@ -115,7 +115,7 @@ - 6.1.5 + 6.2.9 1.2.0 diff --git a/Windows Community Toolkit.Uno.sln b/Windows Community Toolkit.Uno.sln new file mode 100644 index 00000000000..6edd0f2bfe3 --- /dev/null +++ b/Windows Community Toolkit.Uno.sln @@ -0,0 +1,809 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2002 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{9AD30620-667D-433C-9961-8D885EE7B762}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp", "Microsoft.Toolkit.Uwp\Microsoft.Toolkit.Uwp.csproj", "{805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI", "Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj", "{3DD8AA7C-3569-4E51-992F-0C2257E8878E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Animations", "Microsoft.Toolkit.Uwp.UI.Animations\Microsoft.Toolkit.Uwp.UI.Animations.csproj", "{B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UI", "UI", "{F1AFFFA7-28FE-4770-BA48-10D76F3E59BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.Services", "Microsoft.Toolkit.Uwp.Services\Microsoft.Toolkit.Uwp.Services.csproj", "{7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls", "Microsoft.Toolkit.Uwp.UI.Controls\Microsoft.Toolkit.Uwp.UI.Controls.csproj", "{E9FAABFB-D726-42C1-83C1-CB46A29FEA81}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.DeveloperTools", "Microsoft.Toolkit.Uwp.DeveloperTools\Microsoft.Toolkit.Uwp.DeveloperTools.csproj", "{E7697922-9555-4CFB-AEE0-C5F4D657E559}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Services", "Microsoft.Toolkit.Services\Microsoft.Toolkit.Services.csproj", "{34398053-FC70-4243-84F9-F355DEFFF66D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit", "Microsoft.Toolkit\Microsoft.Toolkit.csproj", "{6FE128A8-CEFA-4A61-A987-EC92DE6B538E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CFA75BE0-5A44-45DE-8114-426A605B062B}" + ProjectSection(SolutionItems) = preProject + build\build.cake = build\build.cake + build\build.ps1 = build\build.ps1 + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + global.json = global.json + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Parsers", "Microsoft.Toolkit.Parsers\Microsoft.Toolkit.Parsers.csproj", "{42CA4935-54BE-42EA-AC19-992378C08DE6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls.Graph", "Microsoft.Toolkit.Uwp.UI.Controls.Graph\Microsoft.Toolkit.Uwp.UI.Controls.Graph.csproj", "{D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}" + ProjectSection(ProjectDependencies) = postProject + {34398053-FC70-4243-84F9-F355DEFFF66D} = {34398053-FC70-4243-84F9-F355DEFFF66D} + {3DD8AA7C-3569-4E51-992F-0C2257E8878E} = {3DD8AA7C-3569-4E51-992F-0C2257E8878E} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Toolkit.Uwp.SampleApp.iOS", "Microsoft.Toolkit.Uwp.SampleApp.iOS\Microsoft.Toolkit.Uwp.SampleApp.iOS.csproj", "{484385EA-7766-49DC-BD09-F9B5DD035847}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.Toolkit.Uwp.SampleApp.Shared", "Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.shproj", "{30CB6CF1-80F7-43D5-B619-C737503724B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.SampleApp.Wasm", "Microsoft.Toolkit.Uwp.SampleApp.Wasm\Microsoft.Toolkit.Uwp.SampleApp.Wasm.csproj", "{EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid", "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid\Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.csproj", "{AE9086C5-6AAD-4F37-B93D-1EB491AA8356}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{30cb6cf1-80f7-43d5-b619-c737503724b0}*SharedItemsImports = 13 + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{484385ea-7766-49dc-bd09-f9b5dd035847}*SharedItemsImports = 4 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|ARM = Ad-Hoc|ARM + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Ad-Hoc|x64 = Ad-Hoc|x64 + Ad-Hoc|x86 = Ad-Hoc|x86 + AppStore|Any CPU = AppStore|Any CPU + AppStore|ARM = AppStore|ARM + AppStore|iPhone = AppStore|iPhone + AppStore|iPhoneSimulator = AppStore|iPhoneSimulator + AppStore|x64 = AppStore|x64 + AppStore|x86 = AppStore|x86 + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Native|Any CPU = Native|Any CPU + Native|ARM = Native|ARM + Native|iPhone = Native|iPhone + Native|iPhoneSimulator = Native|iPhoneSimulator + Native|x64 = Native|x64 + Native|x86 = Native|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|Any CPU.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x64.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x86.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|ARM.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhone.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x64.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x64.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x86.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x86.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|Any CPU.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x64.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x86.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|Any CPU.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x64.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x86.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|ARM.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhone.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x64.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x64.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x86.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x86.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|Any CPU.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x64.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x86.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|x86.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|ARM.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhone.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x64.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x64.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x86.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x86.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|x86.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|Any CPU.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|ARM.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x64.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x86.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x86.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|Any CPU.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x64.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x86.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|ARM.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhone.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x64.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x64.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x86.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x86.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|Any CPU.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x64.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x86.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x64.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x86.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|ARM.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhone.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x64.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x64.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x86.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x86.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|Any CPU.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x64.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x86.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x64.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x86.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|ARM.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhone.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x64.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x64.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x86.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x86.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|Any CPU.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x64.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x86.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|Any CPU.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x64.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x86.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|ARM.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhone.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x64.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x64.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x86.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x86.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|Any CPU.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x64.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x86.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|Any CPU.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x64.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x86.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|ARM.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhone.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x64.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x64.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x86.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x86.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|Any CPU.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x64.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x86.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|Any CPU.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x64.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x86.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|ARM.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhone.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x64.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x64.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x86.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x86.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|Any CPU.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x64.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|Any CPU.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|ARM.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x64.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x64.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x86.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x86.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|ARM.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhone.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x64.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x64.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x86.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|Any CPU.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|ARM.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|x64.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|x86.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|Any CPU.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|ARM.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x64.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x64.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x86.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x86.Build.0 = Release|Any CPU + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|ARM.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhone.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|x64.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|x86.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|Any CPU.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|ARM.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhone.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhone.Build.0 = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|x64.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|x86.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|Any CPU.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|Any CPU.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|ARM.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhone.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhone.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|x64.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|x86.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|Any CPU.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|Any CPU.Build.0 = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|ARM.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhone.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhone.Build.0 = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|x64.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|x86.ActiveCfg = Release|iPhone + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|ARM.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|ARM.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhone.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhone.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x64.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x64.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x86.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x86.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|Any CPU.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|ARM.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|ARM.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhone.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhone.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x64.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x64.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x86.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {3DD8AA7C-3569-4E51-992F-0C2257E8878E} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {484385EA-7766-49DC-BD09-F9B5DD035847} = {9AD30620-667D-433C-9961-8D885EE7B762} + {30CB6CF1-80F7-43D5-B619-C737503724B0} = {9AD30620-667D-433C-9961-8D885EE7B762} + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A} = {9AD30620-667D-433C-9961-8D885EE7B762} + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5403B0C4-F244-4F73-A35C-FE664D0F4345} + EndGlobalSection +EndGlobal diff --git a/Windows Community Toolkit.sln b/Windows Community Toolkit.sln index afe96a143b7..b82928add89 100644 --- a/Windows Community Toolkit.sln +++ b/Windows Community Toolkit.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2002 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28705.295 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{9AD30620-667D-433C-9961-8D885EE7B762}" EndProject @@ -23,8 +23,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.Servi EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls", "Microsoft.Toolkit.Uwp.UI.Controls\Microsoft.Toolkit.Uwp.UI.Controls.csproj", "{E9FAABFB-D726-42C1-83C1-CB46A29FEA81}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid", "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid\Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.csproj", "{DAEB9CEC-C817-33B2-74B2-BC379380DB72}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notifications", "Notifications", "{9333C63A-F64F-4797-82B3-017422668A5D}" EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "UnitTests.Notifications.Shared", "UnitTests\UnitTests.Notifications.Shared\UnitTests.Notifications.Shared.shproj", "{982CC826-AACD-4855-9075-430BB6CE40A9}" @@ -65,16 +63,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.Notif {97EE849B-403C-490E-80ED-D19D7CC153FD} = {97EE849B-403C-490E-80ED-D19D7CC153FD} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Toolkit.Uwp.UI.Controls.Design", "Microsoft.Toolkit.Uwp.UI.Controls.Design\Microsoft.Toolkit.Uwp.UI.Controls.Design.csproj", "{7AEFC959-ED7C-4D96-9E92-72609B40FBE0}" - ProjectSection(ProjectDependencies) = postProject - {E9FAABFB-D726-42C1-83C1-CB46A29FEA81} = {E9FAABFB-D726-42C1-83C1-CB46A29FEA81} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.Design", "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.Design\Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.Design.csproj", "{6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}" - ProjectSection(ProjectDependencies) = postProject - {DAEB9CEC-C817-33B2-74B2-BC379380DB72} = {DAEB9CEC-C817-33B2-74B2-BC379380DB72} - EndProjectSection -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Parsers", "Microsoft.Toolkit.Parsers\Microsoft.Toolkit.Parsers.csproj", "{42CA4935-54BE-42EA-AC19-992378C08DE6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlatformSpecific", "PlatformSpecific", "{096ECFD7-7035-4487-9C87-81DCE9389620}" @@ -83,8 +71,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DifferencesGen", "Microsoft EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer", "Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer\Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer.csproj", "{262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Toolkit.Uwp.Input.GazeInteraction", "Microsoft.Toolkit.UWP.Input.GazeInteraction\Microsoft.Toolkit.Uwp.Input.GazeInteraction.vcxproj", "{A5E98964-45B1-442D-A07A-298A3221D81E}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GazeInputTest", "GazeInputTest\GazeInputTest.csproj", "{A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls.Graph", "Microsoft.Toolkit.Uwp.UI.Controls.Graph\Microsoft.Toolkit.Uwp.UI.Controls.Graph.csproj", "{D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}" @@ -93,33 +79,103 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Co {3DD8AA7C-3569-4E51-992F-0C2257E8878E} = {3DD8AA7C-3569-4E51-992F-0C2257E8878E} EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Toolkit.Uwp.SampleApp.iOS", "Microsoft.Toolkit.Uwp.SampleApp.iOS\Microsoft.Toolkit.Uwp.SampleApp.iOS.csproj", "{484385EA-7766-49DC-BD09-F9B5DD035847}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.Toolkit.Uwp.SampleApp.Shared", "Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.shproj", "{30CB6CF1-80F7-43D5-B619-C737503724B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.SampleApp.Wasm", "Microsoft.Toolkit.Uwp.SampleApp.Wasm\Microsoft.Toolkit.Uwp.SampleApp.Wasm.csproj", "{EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid", "Microsoft.Toolkit.Uwp.UI.Controls.DataGrid\Microsoft.Toolkit.Uwp.UI.Controls.DataGrid.csproj", "{AE9086C5-6AAD-4F37-B93D-1EB491AA8356}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Toolkit.Uwp.SampleApp.Droid", "Microsoft.Toolkit.Uwp.SampleApp.Droid\Microsoft.Toolkit.Uwp.SampleApp.Droid.csproj", "{AF2B0725-7859-4D38-A340-4474C5040C3F}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{30cb6cf1-80f7-43d5-b619-c737503724b0}*SharedItemsImports = 13 + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{484385ea-7766-49dc-bd09-f9b5dd035847}*SharedItemsImports = 4 + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{719c43c6-8753-4395-adaa-2fcc70f76bf3}*SharedItemsImports = 4 UnitTests\UnitTests.Notifications.Shared\UnitTests.Notifications.Shared.projitems*{982cc826-aacd-4855-9075-430bb6ce40a9}*SharedItemsImports = 13 + Microsoft.Toolkit.Uwp.SampleApp.Shared\Microsoft.Toolkit.Uwp.SampleApp.Shared.projitems*{af2b0725-7859-4d38-a340-4474c5040c3f}*SharedItemsImports = 4 UnitTests\UnitTests.Notifications.Shared\UnitTests.Notifications.Shared.projitems*{bab1caf4-c400-4a7f-a987-c576de63cffd}*SharedItemsImports = 4 UnitTests\UnitTests.Notifications.Shared\UnitTests.Notifications.Shared.projitems*{efa96b3c-857e-4659-b942-6bef7719f4ca}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|ARM = Ad-Hoc|ARM + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Ad-Hoc|x64 = Ad-Hoc|x64 + Ad-Hoc|x86 = Ad-Hoc|x86 + AppStore|Any CPU = AppStore|Any CPU + AppStore|ARM = AppStore|ARM + AppStore|iPhone = AppStore|iPhone + AppStore|iPhoneSimulator = AppStore|iPhoneSimulator + AppStore|x64 = AppStore|x64 + AppStore|x86 = AppStore|x86 Debug|Any CPU = Debug|Any CPU Debug|ARM = Debug|ARM + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Native|Any CPU = Native|Any CPU Native|ARM = Native|ARM + Native|iPhone = Native|iPhone + Native|iPhoneSimulator = Native|iPhoneSimulator Native|x64 = Native|x64 Native|x86 = Native|x86 Release|Any CPU = Release|Any CPU Release|ARM = Release|ARM + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|Any CPU.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|ARM.Build.0 = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|ARM.Deploy.0 = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhone.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x64.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x64.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x86.Build.0 = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Ad-Hoc|x86.Deploy.0 = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|Any CPU.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|Any CPU.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|Any CPU.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|ARM.ActiveCfg = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|ARM.Build.0 = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|ARM.Deploy.0 = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhone.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhone.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhone.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhoneSimulator.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x64.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x64.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x64.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x86.ActiveCfg = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x86.Build.0 = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.AppStore|x86.Deploy.0 = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|Any CPU.ActiveCfg = Debug|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|Any CPU.Build.0 = Debug|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|Any CPU.Deploy.0 = Debug|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|ARM.ActiveCfg = Debug|ARM {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|ARM.Build.0 = Debug|ARM {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|ARM.Deploy.0 = Debug|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|iPhone.ActiveCfg = Debug|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|x64.ActiveCfg = Debug|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|x64.Build.0 = Debug|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|x64.Deploy.0 = Debug|x64 @@ -128,43 +184,126 @@ Global {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Debug|x86.Deploy.0 = Debug|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|Any CPU.ActiveCfg = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|ARM.ActiveCfg = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhone.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhone.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhone.Deploy.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhoneSimulator.ActiveCfg = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhoneSimulator.Build.0 = Release|x64 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|iPhoneSimulator.Deploy.0 = Release|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|x64.ActiveCfg = Release|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Native|x86.ActiveCfg = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|Any CPU.ActiveCfg = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|Any CPU.Build.0 = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|ARM.ActiveCfg = Release|ARM {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|ARM.Build.0 = Release|ARM {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|ARM.Deploy.0 = Release|ARM + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|iPhone.ActiveCfg = Release|x86 + {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x64.ActiveCfg = Release|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x64.Build.0 = Release|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x64.Deploy.0 = Release|x64 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x86.ActiveCfg = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x86.Build.0 = Release|x86 {719C43C6-8753-4395-ADAA-2FCC70F76BF3}.Release|x86.Deploy.0 = Release|x86 + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|Any CPU.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x64.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x64.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x86.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.AppStore|x86.Build.0 = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|ARM.ActiveCfg = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|ARM.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhone.Build.0 = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x64.ActiveCfg = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x64.Build.0 = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x86.ActiveCfg = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Debug|x86.Build.0 = Debug|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|Any CPU.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|ARM.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|x64.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Native|x86.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|Any CPU.Build.0 = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|ARM.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|ARM.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhone.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhone.Build.0 = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x64.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x64.Build.0 = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x86.ActiveCfg = Release|Any CPU {805F80DF-75C6-4C2F-8FD9-B47F6D0DF5A3}.Release|x86.Build.0 = Release|Any CPU + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|Any CPU.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|Any CPU.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|Any CPU.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|ARM.ActiveCfg = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|ARM.Build.0 = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|ARM.Deploy.0 = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhone.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhone.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhone.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhoneSimulator.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x64.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x64.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x64.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x86.ActiveCfg = Release (Anniversary Update)|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x86.Build.0 = Release (Anniversary Update)|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Ad-Hoc|x86.Deploy.0 = Release (Anniversary Update)|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|Any CPU.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|Any CPU.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|Any CPU.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|ARM.ActiveCfg = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|ARM.Build.0 = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|ARM.Deploy.0 = Release (Anniversary Update)|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhone.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhone.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhone.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhoneSimulator.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhoneSimulator.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|iPhoneSimulator.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x64.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x64.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x64.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x86.ActiveCfg = Release (Anniversary Update)|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x86.Build.0 = Release (Anniversary Update)|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.AppStore|x86.Deploy.0 = Release (Anniversary Update)|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|Any CPU.ActiveCfg = Debug|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|Any CPU.Build.0 = Debug|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|ARM.ActiveCfg = Debug|ARM {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|ARM.Build.0 = Debug|ARM {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|ARM.Deploy.0 = Debug|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|iPhone.ActiveCfg = Debug|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|x64.ActiveCfg = Debug|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|x64.Build.0 = Debug|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|x64.Deploy.0 = Debug|x64 @@ -173,123 +312,277 @@ Global {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Debug|x86.Deploy.0 = Debug|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|Any CPU.ActiveCfg = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|ARM.ActiveCfg = Release|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhone.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhone.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhone.Deploy.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhoneSimulator.ActiveCfg = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhoneSimulator.Build.0 = Release (Anniversary Update)|x64 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|iPhoneSimulator.Deploy.0 = Release (Anniversary Update)|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|x64.ActiveCfg = Release|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Native|x86.ActiveCfg = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|Any CPU.ActiveCfg = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|ARM.ActiveCfg = Release|ARM {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|ARM.Build.0 = Release|ARM {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|ARM.Deploy.0 = Release|ARM + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|iPhone.ActiveCfg = Release|x86 + {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x64.ActiveCfg = Release|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x64.Build.0 = Release|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x64.Deploy.0 = Release|x64 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x86.ActiveCfg = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x86.Build.0 = Release|x86 {A139968E-AD78-4E8C-93B8-9A5523BCAC89}.Release|x86.Deploy.0 = Release|x86 + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|Any CPU.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x64.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x64.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x86.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.AppStore|x86.Build.0 = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|ARM.ActiveCfg = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|ARM.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhone.Build.0 = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x64.ActiveCfg = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x64.Build.0 = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x86.ActiveCfg = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Debug|x86.Build.0 = Debug|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|Any CPU.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|ARM.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|x64.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Native|x86.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|Any CPU.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|Any CPU.Build.0 = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|ARM.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|ARM.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhone.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhone.Build.0 = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x64.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x64.Build.0 = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x86.ActiveCfg = Release|Any CPU {3DD8AA7C-3569-4E51-992F-0C2257E8878E}.Release|x86.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|x64.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.AppStore|x86.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|Any CPU.Build.0 = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|ARM.ActiveCfg = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|ARM.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhone.Build.0 = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x64.ActiveCfg = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x64.Build.0 = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x86.ActiveCfg = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Debug|x86.Build.0 = Debug|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|Any CPU.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|ARM.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|x64.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Native|x86.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|Any CPU.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|Any CPU.Build.0 = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|ARM.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|ARM.Build.0 = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|iPhone.ActiveCfg = Release|Any CPU + {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x64.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x64.Build.0 = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x86.ActiveCfg = Release|Any CPU {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91}.Release|x86.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|Any CPU.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x64.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x64.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x86.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.AppStore|x86.Build.0 = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|Any CPU.Build.0 = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|ARM.ActiveCfg = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|ARM.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhone.Build.0 = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x64.ActiveCfg = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x64.Build.0 = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x86.ActiveCfg = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Debug|x86.Build.0 = Debug|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|Any CPU.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|ARM.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|x64.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Native|x86.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|Any CPU.Build.0 = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|ARM.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|ARM.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhone.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhone.Build.0 = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x64.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x64.Build.0 = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x86.ActiveCfg = Release|Any CPU {7189A42D-6F1A-4FA3-8E00-E2C14FDF167A}.Release|x86.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x64.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x64.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x86.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.AppStore|x86.Build.0 = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|Any CPU.Build.0 = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|ARM.ActiveCfg = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|ARM.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhone.Build.0 = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x64.ActiveCfg = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x64.Build.0 = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x86.ActiveCfg = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Debug|x86.Build.0 = Debug|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|Any CPU.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|ARM.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|x64.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Native|x86.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|Any CPU.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|Any CPU.Build.0 = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|ARM.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|ARM.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhone.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhone.Build.0 = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x64.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x64.Build.0 = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x86.ActiveCfg = Release|Any CPU {E9FAABFB-D726-42C1-83C1-CB46A29FEA81}.Release|x86.Build.0 = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|ARM.ActiveCfg = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|ARM.Build.0 = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|x64.ActiveCfg = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|x64.Build.0 = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|x86.ActiveCfg = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Debug|x86.Build.0 = Debug|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Native|Any CPU.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Native|ARM.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Native|x64.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Native|x86.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|Any CPU.Build.0 = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|ARM.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|ARM.Build.0 = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|x64.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|x64.Build.0 = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|x86.ActiveCfg = Release|Any CPU - {DAEB9CEC-C817-33B2-74B2-BC379380DB72}.Release|x86.Build.0 = Release|Any CPU + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|Any CPU.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|ARM.Build.0 = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|ARM.Deploy.0 = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhone.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x64.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x64.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x86.Build.0 = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Ad-Hoc|x86.Deploy.0 = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|Any CPU.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|Any CPU.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|Any CPU.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|ARM.ActiveCfg = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|ARM.Build.0 = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|ARM.Deploy.0 = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhone.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhone.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhone.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhoneSimulator.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x64.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x64.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x64.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x86.ActiveCfg = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x86.Build.0 = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.AppStore|x86.Deploy.0 = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|Any CPU.ActiveCfg = Debug|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|Any CPU.Build.0 = Debug|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|ARM.ActiveCfg = Debug|ARM {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|ARM.Build.0 = Debug|ARM {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|ARM.Deploy.0 = Debug|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|iPhone.ActiveCfg = Debug|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|x64.ActiveCfg = Debug|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|x64.Build.0 = Debug|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|x64.Deploy.0 = Debug|x64 @@ -298,161 +591,459 @@ Global {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Debug|x86.Deploy.0 = Debug|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|Any CPU.ActiveCfg = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|ARM.ActiveCfg = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhone.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhone.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhone.Deploy.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhoneSimulator.ActiveCfg = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhoneSimulator.Build.0 = Release|x64 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|iPhoneSimulator.Deploy.0 = Release|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|x64.ActiveCfg = Release|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Native|x86.ActiveCfg = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|Any CPU.ActiveCfg = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|ARM.ActiveCfg = Release|ARM {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|ARM.Build.0 = Release|ARM {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|ARM.Deploy.0 = Release|ARM + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|iPhone.ActiveCfg = Release|x86 + {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x64.ActiveCfg = Release|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x64.Build.0 = Release|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x64.Deploy.0 = Release|x64 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x86.ActiveCfg = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x86.Build.0 = Release|x86 {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD}.Release|x86.Deploy.0 = Release|x86 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|ARM.Build.0 = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|x64.Build.0 = Release|x64 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Ad-Hoc|x86.Build.0 = Release|x86 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|Any CPU.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|ARM.ActiveCfg = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|ARM.Build.0 = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|iPhone.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|x64.ActiveCfg = Release|x64 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|x64.Build.0 = Release|x64 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|x86.ActiveCfg = Release|x86 + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.AppStore|x86.Build.0 = Release|x86 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|Any CPU.Build.0 = Debug|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|ARM.ActiveCfg = Debug|ARM {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|ARM.Build.0 = Debug|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|iPhone.Build.0 = Debug|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|x64.ActiveCfg = Debug|x64 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|x64.Build.0 = Debug|x64 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|x86.ActiveCfg = Debug|x86 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Debug|x86.Build.0 = Debug|x86 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|Any CPU.ActiveCfg = Release|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|ARM.ActiveCfg = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|iPhone.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|iPhone.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|x64.ActiveCfg = Release|x64 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Native|x86.ActiveCfg = Release|x86 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|ARM.ActiveCfg = Release|ARM {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|ARM.Build.0 = Release|ARM + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|iPhone.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|iPhone.Build.0 = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|x64.ActiveCfg = Release|x64 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|x64.Build.0 = Release|x64 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|x86.ActiveCfg = Release|x86 {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C}.Release|x86.Build.0 = Release|x86 + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x64.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x64.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x86.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.AppStore|x86.Build.0 = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|Any CPU.Build.0 = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|ARM.ActiveCfg = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|ARM.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhone.Build.0 = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x64.ActiveCfg = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x64.Build.0 = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x86.ActiveCfg = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Debug|x86.Build.0 = Debug|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|Any CPU.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|ARM.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|x64.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Native|x86.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|Any CPU.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|Any CPU.Build.0 = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|ARM.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|ARM.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhone.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhone.Build.0 = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x64.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x64.Build.0 = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x86.ActiveCfg = Release|Any CPU {E7697922-9555-4CFB-AEE0-C5F4D657E559}.Release|x86.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|Any CPU.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|ARM.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|ARM.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|iPhone.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|x64.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|x64.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|x86.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.AppStore|x86.Build.0 = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|ARM.ActiveCfg = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|ARM.Build.0 = Debug|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|iPhone.Build.0 = Debug|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|x64.ActiveCfg = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|x64.Build.0 = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|x86.ActiveCfg = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Debug|x86.Build.0 = Debug|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|Any CPU.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|ARM.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|iPhone.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|iPhone.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|x64.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Native|x86.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|Any CPU.Build.0 = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|ARM.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|ARM.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|iPhone.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|iPhone.Build.0 = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|x64.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|x64.Build.0 = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|x86.ActiveCfg = Release|Any CPU {B1E850FF-DDE6-44D5-A830-34250E97A687}.Release|x86.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|Any CPU.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x64.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x64.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x86.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.AppStore|x86.Build.0 = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|Any CPU.Build.0 = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|ARM.ActiveCfg = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|ARM.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhone.Build.0 = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x64.ActiveCfg = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x64.Build.0 = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x86.ActiveCfg = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Debug|x86.Build.0 = Debug|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|Any CPU.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|ARM.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|x64.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Native|x86.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|Any CPU.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|Any CPU.Build.0 = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|ARM.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|ARM.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhone.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhone.Build.0 = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x64.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x64.Build.0 = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x86.ActiveCfg = Release|Any CPU {34398053-FC70-4243-84F9-F355DEFFF66D}.Release|x86.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|Any CPU.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x64.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x64.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x86.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.AppStore|x86.Build.0 = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|Any CPU.Build.0 = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|ARM.ActiveCfg = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|ARM.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhone.Build.0 = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x64.ActiveCfg = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x64.Build.0 = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x86.ActiveCfg = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Debug|x86.Build.0 = Debug|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|Any CPU.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|ARM.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|x64.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Native|x86.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|Any CPU.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|Any CPU.Build.0 = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|ARM.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|ARM.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhone.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhone.Build.0 = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x64.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x64.Build.0 = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x86.ActiveCfg = Release|Any CPU {6FE128A8-CEFA-4A61-A987-EC92DE6B538E}.Release|x86.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|Any CPU.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|ARM.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|ARM.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|iPhone.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|x64.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|x64.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|x86.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.AppStore|x86.Build.0 = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|ARM.ActiveCfg = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|ARM.Build.0 = Debug|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|iPhone.Build.0 = Debug|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|x64.ActiveCfg = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|x64.Build.0 = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|x86.ActiveCfg = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Debug|x86.Build.0 = Debug|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|Any CPU.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|ARM.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|iPhone.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|iPhone.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|x64.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Native|x86.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|Any CPU.Build.0 = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|ARM.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|ARM.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|iPhone.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|iPhone.Build.0 = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|x64.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|x64.Build.0 = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|x86.ActiveCfg = Release|Any CPU {97EE849B-403C-490E-80ED-D19D7CC153FD}.Release|x86.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|Any CPU.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|ARM.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|ARM.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|iPhone.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|x64.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|x64.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|x86.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.AppStore|x86.Build.0 = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|Any CPU.Build.0 = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|ARM.ActiveCfg = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|ARM.Build.0 = Debug|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Debug|iPhone.Build.0 = Debug|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|x64.ActiveCfg = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|x64.Build.0 = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|x86.ActiveCfg = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Debug|x86.Build.0 = Debug|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Native|Any CPU.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Native|ARM.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Native|iPhone.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Native|iPhone.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Native|x64.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Native|x86.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|Any CPU.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|ARM.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|ARM.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Release|iPhone.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Release|iPhone.Build.0 = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94994424-5F60-4CD8-ABA2-101779066208}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|x64.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|x64.Build.0 = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|x86.ActiveCfg = Release|Any CPU {94994424-5F60-4CD8-ABA2-101779066208}.Release|x86.Build.0 = Release|Any CPU + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|Any CPU.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|ARM.Build.0 = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|ARM.Deploy.0 = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhone.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x64.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x64.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x86.Build.0 = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Ad-Hoc|x86.Deploy.0 = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|Any CPU.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|Any CPU.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|Any CPU.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|ARM.ActiveCfg = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|ARM.Build.0 = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|ARM.Deploy.0 = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhone.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhone.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhone.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhoneSimulator.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x64.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x64.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x64.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x86.ActiveCfg = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x86.Build.0 = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.AppStore|x86.Deploy.0 = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|Any CPU.ActiveCfg = Debug|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|Any CPU.Build.0 = Debug|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|ARM.ActiveCfg = Debug|ARM {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|ARM.Build.0 = Debug|ARM {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|ARM.Deploy.0 = Debug|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|iPhone.ActiveCfg = Debug|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|x64.ActiveCfg = Debug|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|x64.Build.0 = Debug|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|x64.Deploy.0 = Debug|x64 @@ -461,164 +1052,291 @@ Global {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Debug|x86.Deploy.0 = Debug|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|Any CPU.ActiveCfg = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|ARM.ActiveCfg = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhone.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhone.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhone.Deploy.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhoneSimulator.ActiveCfg = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhoneSimulator.Build.0 = Release|x64 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|iPhoneSimulator.Deploy.0 = Release|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|x64.ActiveCfg = Release|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Native|x86.ActiveCfg = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|Any CPU.ActiveCfg = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|ARM.ActiveCfg = Release|ARM {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|ARM.Build.0 = Release|ARM {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|ARM.Deploy.0 = Release|ARM + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|iPhone.ActiveCfg = Release|x86 + {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x64.ActiveCfg = Release|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x64.Build.0 = Release|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x64.Deploy.0 = Release|x64 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x86.ActiveCfg = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x86.Build.0 = Release|x86 {EFA96B3C-857E-4659-B942-6BEF7719F4CA}.Release|x86.Deploy.0 = Release|x86 + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|Any CPU.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|ARM.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|ARM.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|iPhone.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|x64.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|x64.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|x86.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.AppStore|x86.Build.0 = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|Any CPU.Build.0 = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|ARM.ActiveCfg = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|ARM.Build.0 = Debug|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|iPhone.Build.0 = Debug|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|x64.ActiveCfg = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|x64.Build.0 = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|x86.ActiveCfg = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Debug|x86.Build.0 = Debug|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|Any CPU.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|ARM.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|iPhone.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|iPhone.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|x64.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Native|x86.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|Any CPU.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|Any CPU.Build.0 = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|ARM.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|ARM.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|iPhone.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|iPhone.Build.0 = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|x64.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|x64.Build.0 = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|x86.ActiveCfg = Release|Any CPU {94F8D702-3A9D-4CFB-85C9-79FC5DBD8B22}.Release|x86.Build.0 = Release|Any CPU - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|Any CPU.ActiveCfg = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|Any CPU.Build.0 = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|ARM.ActiveCfg = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|ARM.Build.0 = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|x64.ActiveCfg = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|x64.Build.0 = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|x86.ActiveCfg = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Debug|x86.Build.0 = Debug|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Native|Any CPU.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Native|ARM.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Native|x64.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Native|x86.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|Any CPU.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|Any CPU.Build.0 = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|ARM.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|ARM.Build.0 = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|x64.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|x64.Build.0 = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|x86.ActiveCfg = Release|x86 - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0}.Release|x86.Build.0 = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|Any CPU.ActiveCfg = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|Any CPU.Build.0 = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|ARM.ActiveCfg = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|ARM.Build.0 = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|x64.ActiveCfg = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|x64.Build.0 = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|x86.ActiveCfg = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Debug|x86.Build.0 = Debug|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Native|Any CPU.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Native|ARM.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Native|x64.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Native|x86.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|Any CPU.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|Any CPU.Build.0 = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|ARM.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|ARM.Build.0 = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|x64.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|x64.Build.0 = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|x86.ActiveCfg = Release|x86 - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1}.Release|x86.Build.0 = Release|x86 + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|Any CPU.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x64.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x64.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x86.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.AppStore|x86.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|Any CPU.Build.0 = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|ARM.ActiveCfg = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|ARM.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhone.Build.0 = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x64.ActiveCfg = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x64.Build.0 = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x86.ActiveCfg = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Debug|x86.Build.0 = Debug|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|Any CPU.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|ARM.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|x64.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Native|x86.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|Any CPU.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|Any CPU.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|ARM.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|ARM.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhone.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhone.Build.0 = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x64.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x64.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|Any CPU.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|ARM.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|ARM.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|iPhone.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|x64.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|x64.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|x86.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.AppStore|x86.Build.0 = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|Any CPU.Build.0 = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|ARM.ActiveCfg = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|ARM.Build.0 = Debug|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|iPhone.Build.0 = Debug|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|x64.ActiveCfg = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|x64.Build.0 = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|x86.ActiveCfg = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Debug|x86.Build.0 = Debug|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|Any CPU.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|ARM.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|iPhone.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|iPhone.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|x64.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Native|x86.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|Any CPU.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|ARM.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|ARM.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|iPhone.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|iPhone.Build.0 = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|x64.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|x64.Build.0 = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|x86.ActiveCfg = Release|Any CPU {292D34E8-0F01-4FA8-951D-8232F75A88D5}.Release|x86.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|Any CPU.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|ARM.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|ARM.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|iPhone.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|x64.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|x64.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|x86.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.AppStore|x86.Build.0 = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|ARM.ActiveCfg = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|ARM.Build.0 = Debug|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|iPhone.Build.0 = Debug|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|x64.ActiveCfg = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|x64.Build.0 = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|x86.ActiveCfg = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Debug|x86.Build.0 = Debug|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|Any CPU.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|ARM.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|iPhone.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|iPhone.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|x64.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Native|x86.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|Any CPU.Build.0 = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|ARM.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|ARM.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|iPhone.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|iPhone.Build.0 = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|x64.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|x64.Build.0 = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|x86.ActiveCfg = Release|Any CPU {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF}.Release|x86.Build.0 = Release|Any CPU - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|Any CPU.Build.0 = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM.ActiveCfg = Debug|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM.Build.0 = Debug|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x64.ActiveCfg = Debug|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x64.Build.0 = Debug|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x86.ActiveCfg = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x86.Build.0 = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|Any CPU.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|Any CPU.Build.0 = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM.ActiveCfg = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM.Build.0 = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x64.ActiveCfg = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x64.Build.0 = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x86.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x86.Build.0 = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|Any CPU.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM.ActiveCfg = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM.Build.0 = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x64.ActiveCfg = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x64.Build.0 = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x86.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x86.Build.0 = Release|Win32 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|Any CPU.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|ARM.Build.0 = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|ARM.Deploy.0 = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhone.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x64.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x64.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x86.Build.0 = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Ad-Hoc|x86.Deploy.0 = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|Any CPU.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|Any CPU.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|Any CPU.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|ARM.ActiveCfg = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|ARM.Build.0 = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|ARM.Deploy.0 = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhone.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhone.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhone.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhoneSimulator.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x64.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x64.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x64.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x86.ActiveCfg = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x86.Build.0 = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.AppStore|x86.Deploy.0 = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|Any CPU.ActiveCfg = Debug|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|ARM.ActiveCfg = Debug|ARM {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|ARM.Build.0 = Debug|ARM {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|ARM.Deploy.0 = Debug|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|iPhone.ActiveCfg = Debug|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|x64.ActiveCfg = Debug|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|x64.Build.0 = Debug|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|x64.Deploy.0 = Debug|x64 @@ -627,38 +1345,331 @@ Global {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Debug|x86.Deploy.0 = Debug|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|Any CPU.ActiveCfg = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|ARM.ActiveCfg = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhone.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhone.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhone.Deploy.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhoneSimulator.ActiveCfg = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhoneSimulator.Build.0 = Release|x64 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|iPhoneSimulator.Deploy.0 = Release|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|x64.ActiveCfg = Release|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Native|x86.ActiveCfg = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|Any CPU.ActiveCfg = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|ARM.ActiveCfg = Release|ARM {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|ARM.Build.0 = Release|ARM {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|ARM.Deploy.0 = Release|ARM + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|iPhone.ActiveCfg = Release|x86 + {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x64.ActiveCfg = Release|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x64.Build.0 = Release|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x64.Deploy.0 = Release|x64 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x86.ActiveCfg = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x86.Build.0 = Release|x86 {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6}.Release|x86.Deploy.0 = Release|x86 + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|Any CPU.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|ARM.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x64.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x64.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x86.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.AppStore|x86.Build.0 = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|Any CPU.Build.0 = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|ARM.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|ARM.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhone.Build.0 = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x64.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x64.Build.0 = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x86.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Debug|x86.Build.0 = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|Any CPU.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|ARM.ActiveCfg = Debug|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|iPhoneSimulator.Build.0 = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|x64.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Native|x86.ActiveCfg = Debug|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|Any CPU.ActiveCfg = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|Any CPU.Build.0 = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|ARM.ActiveCfg = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|ARM.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhone.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhone.Build.0 = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x64.ActiveCfg = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x64.Build.0 = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x86.ActiveCfg = Release|Any CPU {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97}.Release|x86.Build.0 = Release|Any CPU + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|ARM.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhone.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|x64.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.AppStore|x86.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|Any CPU.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|ARM.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhone.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhone.Build.0 = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|x64.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Debug|x86.ActiveCfg = Debug|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|Any CPU.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|Any CPU.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|ARM.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhone.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhone.Build.0 = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|x64.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Native|x86.ActiveCfg = AppStore|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|Any CPU.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|Any CPU.Build.0 = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|ARM.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhone.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhone.Build.0 = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|x64.ActiveCfg = Release|iPhone + {484385EA-7766-49DC-BD09-F9B5DD035847}.Release|x86.ActiveCfg = Release|iPhone + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.AppStore|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|ARM.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x64.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Debug|x86.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|Any CPU.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|Any CPU.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|ARM.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhone.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhone.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|iPhoneSimulator.Build.0 = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|x64.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Native|x86.ActiveCfg = Debug|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|ARM.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|ARM.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhone.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhone.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x64.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x64.Build.0 = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x86.ActiveCfg = Release|Any CPU + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A}.Release|x86.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.AppStore|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Debug|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|Any CPU.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|Any CPU.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|ARM.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|ARM.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhone.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhone.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|iPhoneSimulator.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x64.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x64.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x86.ActiveCfg = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Native|x86.Build.0 = Debug|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|Any CPU.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|ARM.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|ARM.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhone.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhone.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x64.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x64.Build.0 = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x86.ActiveCfg = Release|Any CPU + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356}.Release|x86.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|Any CPU.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|Any CPU.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|ARM.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|ARM.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|ARM.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhone.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhone.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x64.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x64.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x64.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x86.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x86.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.AppStore|x86.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|ARM.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|ARM.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhone.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x64.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x64.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x86.ActiveCfg = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x86.Build.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Debug|x86.Deploy.0 = Debug|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|Any CPU.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|Any CPU.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|Any CPU.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|ARM.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|ARM.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|ARM.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhone.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhone.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhone.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhoneSimulator.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|iPhoneSimulator.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x64.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x64.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x64.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x86.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x86.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Native|x86.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|Any CPU.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|Any CPU.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|ARM.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|ARM.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|ARM.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhone.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhone.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhone.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x64.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x64.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x64.Deploy.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x86.ActiveCfg = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x86.Build.0 = Release|Any CPU + {AF2B0725-7859-4D38-A340-4474C5040C3F}.Release|x86.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -669,19 +1680,21 @@ Global {3DD8AA7C-3569-4E51-992F-0C2257E8878E} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} {B24A296C-B3EB-4E06-A64E-74AC2D1ACC91} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} {E9FAABFB-D726-42C1-83C1-CB46A29FEA81} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} - {DAEB9CEC-C817-33B2-74B2-BC379380DB72} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} {9333C63A-F64F-4797-82B3-017422668A5D} = {B30036C4-D514-4E5B-A323-587A061772CE} {982CC826-AACD-4855-9075-430BB6CE40A9} = {9333C63A-F64F-4797-82B3-017422668A5D} {BAB1CAF4-C400-4A7F-A987-C576DE63CFFD} = {9333C63A-F64F-4797-82B3-017422668A5D} {1AE2CB5C-58A0-4F12-8E6F-2CD4AAADB34C} = {9AD30620-667D-433C-9961-8D885EE7B762} {94994424-5F60-4CD8-ABA2-101779066208} = {9333C63A-F64F-4797-82B3-017422668A5D} {EFA96B3C-857E-4659-B942-6BEF7719F4CA} = {9333C63A-F64F-4797-82B3-017422668A5D} - {7AEFC959-ED7C-4D96-9E92-72609B40FBE0} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} - {6BD0BA4A-DE6D-3E87-8F83-63518C31ECD1} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} {292D34E8-0F01-4FA8-951D-8232F75A88D5} = {096ECFD7-7035-4487-9C87-81DCE9389620} {262BB7CE-EF42-4BF7-B90C-107E6CBB57FF} = {096ECFD7-7035-4487-9C87-81DCE9389620} {A122EA02-4DE7-413D-BFBF-AF7DFC668DD6} = {B30036C4-D514-4E5B-A323-587A061772CE} {D4D78CBA-B238-4794-89A0-4F1A2D8FEA97} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {484385EA-7766-49DC-BD09-F9B5DD035847} = {9AD30620-667D-433C-9961-8D885EE7B762} + {30CB6CF1-80F7-43D5-B619-C737503724B0} = {9AD30620-667D-433C-9961-8D885EE7B762} + {EC5E3CE8-4ABA-4DEC-A1C4-68B2F7DFAD0A} = {9AD30620-667D-433C-9961-8D885EE7B762} + {AE9086C5-6AAD-4F37-B93D-1EB491AA8356} = {F1AFFFA7-28FE-4770-BA48-10D76F3E59BC} + {AF2B0725-7859-4D38-A340-4474C5040C3F} = {9AD30620-667D-433C-9961-8D885EE7B762} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5403B0C4-F244-4F73-A35C-FE664D0F4345} diff --git a/build/Microsoft.Toolkit.Uwp.Input.GazeInteraction.nuspec b/build/Microsoft.Toolkit.Uwp.Input.GazeInteraction.nuspec index 4a0d9600f14..83b1f43c4db 100644 --- a/build/Microsoft.Toolkit.Uwp.Input.GazeInteraction.nuspec +++ b/build/Microsoft.Toolkit.Uwp.Input.GazeInteraction.nuspec @@ -11,7 +11,7 @@ https://github.com/windows-toolkit/WindowsCommunityToolkit true A library to integrate gaze interactions using eye trackers into UWP applications - v5.0 release https://github.com/windows-toolkit/WindowsCommunityToolkit/releases + v5.0.0 release https://github.com/windows-toolkit/WindowsCommunityToolkit/releases (c) .NET Foundation and Contributors. All rights reserved. UWP Toolkit Windows Eye Gaze EyeTracker diff --git a/build/build.cake b/build/build.cake index 9a948ce69e8..328a12ddcfc 100644 --- a/build/build.cake +++ b/build/build.cake @@ -1,4 +1,4 @@ -#module "Cake.Longpath.Module" +#module nuget:?package=Cake.LongPath.Module&version=0.5.0 #addin "Cake.FileHelpers" #addin "Cake.Powershell" @@ -26,7 +26,7 @@ var inheritDocVersion = "1.1.1.1"; var baseDir = MakeAbsolute(Directory("../")).ToString(); var buildDir = baseDir + "/build"; -var Solution = baseDir + "/Windows Community Toolkit.sln"; +var Solution = baseDir + "/Windows Community Toolkit.Uno.sln"; var toolsDir = buildDir + "/tools"; var binDir = baseDir + "/bin"; @@ -115,7 +115,7 @@ Task("Verify") .IsDependentOn("Clean") .Does(() => { - VerifyHeaders(false); + // VerifyHeaders(false); StartPowershellFile("./Find-WindowsSDKVersions.ps1"); }); @@ -148,7 +148,8 @@ Task("Build") Information("\nBuilding Solution"); var buildSettings = new MSBuildSettings { - MaxCpuCount = 0 + MaxCpuCount = 0, + MSBuildPlatform = MSBuildPlatform.x86 } .SetConfiguration("Release") .WithTarget("Restore"); @@ -160,7 +161,8 @@ Task("Build") // Build once with normal dependency ordering buildSettings = new MSBuildSettings { - MaxCpuCount = 0 + MaxCpuCount = 0, + MSBuildPlatform = MSBuildPlatform.x86 } .SetConfiguration("Release") .WithTarget("Build") @@ -205,7 +207,8 @@ Task("Package") { // Invoke the pack target in the end var buildSettings = new MSBuildSettings { - MaxCpuCount = 0 + MaxCpuCount = 0, + MSBuildPlatform = MSBuildPlatform.x86 } .SetConfiguration("Release") .WithTarget("Pack") @@ -217,7 +220,8 @@ Task("Package") // Build and pack C++ packages buildSettings = new MSBuildSettings { - MaxCpuCount = 0 + MaxCpuCount = 0, + MSBuildPlatform = MSBuildPlatform.x86 } .SetConfiguration("Native"); @@ -236,11 +240,11 @@ Task("Package") Version = Version }; - var nuspecs = GetFiles("./*.nuspec"); - foreach (var nuspec in nuspecs) - { - NuGetPack(nuspec, nuGetPackSettings); - } + //var nuspecs = GetFiles("./*.nuspec"); + //foreach (var nuspec in nuspecs) + // { + // NuGetPack(nuspec, nuGetPackSettings); + // } }); diff --git a/build/tools/nuget/NuGet.exe b/build/tools/nuget/NuGet.exe deleted file mode 100644 index 13a263778b2..00000000000 Binary files a/build/tools/nuget/NuGet.exe and /dev/null differ diff --git a/build/tools/packages.config b/build/tools/packages.config deleted file mode 100644 index e52a2c7e98e..00000000000 --- a/build/tools/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/githubresources/images/NugetPackages.png b/githubresources/images/NugetPackages.png index 57c58494d07..0136abaf3c0 100644 Binary files a/githubresources/images/NugetPackages.png and b/githubresources/images/NugetPackages.png differ diff --git a/gitversion.yml b/gitversion.yml new file mode 100644 index 00000000000..9a7cf0f942f --- /dev/null +++ b/gitversion.yml @@ -0,0 +1,15 @@ +assembly-versioning-scheme: MajorMinorPatch +mode: ContinuousDeployment +next-version: 2.22.0 +continuous-delivery-fallback-tag: "" +branches: + master: + tag: dev + (stable): + tag: + dev/.*?/(.*?): + tag: dev.{BranchName} + projects/(.*?): + tag: proj-{BranchName} +ignore: + sha: [] \ No newline at end of file diff --git a/global.json b/global.json index eca09e09aa2..e6e7cdba060 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "msbuild-sdks": { - "MSBuild.Sdk.Extras": "1.6.55" + "MSBuild.Sdk.Extras": "2.0.43" } } \ No newline at end of file diff --git a/readme.md b/readme.md index d16a3858fbd..066ed3dec42 100644 --- a/readme.md +++ b/readme.md @@ -6,15 +6,37 @@ products: - windows --- +# Uno Platform port of Windows Community Toolkit + +This port allows for [Uno-based](https://github.com/nventive/Uno) apps to use [Windows Community Toolkit](https://github.com/Microsoft/WindowsCommunityToolkit) +on Windows, iOS, Android and WebAssembly. + +The following packages are available: +- [Uno.Microsoft.Toolkit](https://www.nuget.org/packages/Uno.Microsoft.Toolkit ) +- [Uno.Microsoft.Toolkit.Parsers](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Parsers) +- [Uno.Microsoft.Toolkit.Services](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Services) +- [Uno.Microsoft.Toolkit.Notifications](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Notifications) +- [Uno.Microsoft.Toolkit.UWP](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.UWP) +- [Uno.Microsoft.Toolkit.Uwp.Services](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Uwp.Services) +- [Uno.Microsoft.Toolkit.Uwp.UI](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.UWP.UI) +- [Uno.Microsoft.Toolkit.Uwp.UI.Animations](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Uwp.UI.Animations) +- [Uno.Microsoft.Toolkit.Uwp.UI.Controls](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Uwp.UI.Controls) +- [Uno.Microsoft.Toolkit.Uwp.UI.Controls.Graph](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.UWP.UI.Controls.Graph) +- [Uno.Microsoft.Toolkit.Uwp.Connectivity](https://www.nuget.org/packages/Uno.Microsoft.Toolkit.Uwp.Connectivity) + # Windows Community Toolkit The Windows Community Toolkit is a collection of helper functions, custom controls, and app services. It simplifies and demonstrates common developer patterns when building experiences for Windows 10. ## Build Status +| Target | Branch | Status | +| ------ | ------ | ------ | +| Pre-release beta testing | uno | [![Build Status](https://uno-platform.visualstudio.com/Uno%20Platform/_apis/build/status/Uno%20Platform/Uno.WindowsCommunityToolkit%20-%20CI?branchName=uno)](https://uno-platform.visualstudio.com/Uno%20Platform/_build/latest?definitionId=14&branchName=uno) | + +| Pre-release beta testing | master | [![Build Status](https://uno-platform.visualstudio.com/Uno%20Platform/_apis/build/status/Uno%20Platform/Uno.WindowsCommunityToolkit%20-%20CI?branchName=uno)](https://uno-platform.visualstudio.com/Uno%20Platform/_build/latest?definitionId=14&branchName=uno) | [![MyGet](https://img.shields.io/dotnet.myget/uwpcommunitytoolkit/vpre/Microsoft.Toolkit.Uwp.svg)](https://dotnet.myget.org/gallery/uwpcommunitytoolkit) | +| Production | rel/3.0.0 | [![Build status](https://ci.appveyor.com/api/projects/status/o60lv2tt1nbtklw8/branch/rel/3.0.0?svg=true)](https://ci.appveyor.com/project/dotnetfoundation/uwpcommunitytoolkit/branch/rel/3.0.0) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Toolkit.Uwp.svg)](https://www.nuget.org/packages/Microsoft.Toolkit.Uwp/) | +--> ## Getting Started Please read the [getting Started with the Windows Community Toolkit](https://docs.microsoft.com/windows/communitytoolkit/getting-started) page for more detailed information about using the toolkit. @@ -22,8 +44,10 @@ Please read the [getting Started with the Windows Community Toolkit](https://doc ## Documentation All documentation for the toolkit is hosted on [Microsoft Docs](https://docs.microsoft.com/windows/communitytoolkit/). All API documentation can be found at the [.NET API Browser](https://docs.microsoft.com/en-us/dotnet/api/?term=microsoft.toolkit). + ## NuGet Packages NuGet is a standard package manager for .NET applications which is built into Visual Studio. To open the UI, from your open solution, choose the *Tools* menu > *NuGet Package Manager* > *Manage NuGet packages for solution...* . Enter one of the package names below to search for it online. @@ -34,19 +58,19 @@ Once you do a search, you should see a list similar to the one below (versions m | NuGet Package Name | Description | | --- | --- | -| Microsoft.Toolkit | .NET Standard NuGet package containing common code | -| Microsoft.Toolkit.Parsers | .NET Standard NuGet package containing cross-platform parsers, such as Markdown and RSS | -| Microsoft.Toolkit.Services | .NET Standard NuGet package containing cross-platform services | -| Microsoft.Toolkit.Uwp | Main NuGet package includes code only helpers such as Colors conversion tool, Storage file handling, a Stream helper class, etc. | -| Microsoft.Toolkit.Uwp.Notifications | Notifications Package - Generate tile, toast, and badge notifications for Windows 10 via code. Includes intellisense support to avoid having to use the XML syntax. | -| Microsoft.Toolkit.Uwp.Notifications.Javascript | Notification Packages for JavaScript | -| Microsoft.Toolkit.Uwp.Services | Services Package - This NuGet package includes the service helpers for Facebook, LinkedIn, Microsoft Graph, Twitter and more | -| Microsoft.Toolkit.Uwp.UI | UI Packages - Brushes, XAML converters, Visual tree extensions, and other extensions and helpers for your XAML UI. | -| Microsoft.Toolkit.Uwp.UI.Animations | Animations and Composition behaviors such as Blur, Fade, Rotate, etc. | -| Microsoft.Toolkit.Uwp.UI.Controls | XAML Controls such as RadialGauge, RangeSelector, etc. | -| Microsoft.Toolkit.Uwp.UI.Controls.DataGrid | XAML DataGrid control | -| Microsoft.Toolkit.Uwp.Connectivity | API helpers such as BluetoothLEHelper and Networking | -| Microsoft.Toolkit.Uwp.DeveloperTools | XAML user controls and services to help developer building their app | +| Uno.Microsoft.Toolkit | .NET Standard NuGet package containing common code | +| Uno.Microsoft.Toolkit.Parsers | .NET Standard NuGet package containing cross-platform parsers, such as Markdown and RSS | +| Uno.Microsoft.Toolkit.Services | .NET Standard NuGet package containing cross-platform services | +| Uno.Microsoft.Toolkit.Uwp | Main NuGet package includes code only helpers such as Colors conversion tool, Storage file handling, a Stream helper class, etc. | +| Uno.Microsoft.Toolkit.Uwp.Notifications | Notifications Package - Generate tile, toast, and badge notifications for Windows 10 via code. Includes intellisense support to avoid having to use the XML syntax. | +| Uno.Microsoft.Toolkit.Uwp.Notifications.Javascript | Notification Packages for JavaScript | +| Uno.Microsoft.Toolkit.Uwp.Services | Services Package - This NuGet package includes the service helpers for Facebook, LinkedIn, Microsoft Graph, Twitter and more | +| Uno.Microsoft.Toolkit.Uwp.UI | UI Packages - Brushes, XAML converters, Visual tree extensions, and other extensions and helpers for your XAML UI. | +| Uno.Microsoft.Toolkit.Uwp.UI.Animations | Animations and Composition behaviors such as Blur, Fade, Rotate, etc. | +| Uno.Microsoft.Toolkit.Uwp.UI.Controls | XAML Controls such as RadialGauge, RangeSelector, etc. | +| Uno.Microsoft.Toolkit.Uwp.UI.Controls.DataGrid | XAML DataGrid control | +| Uno.Microsoft.Toolkit.Uwp.Connectivity | API helpers such as BluetoothLEHelper and Networking | +| Uno.Microsoft.Toolkit.Uwp.DeveloperTools | XAML user controls and services to help developer building their app | ## Supported SDKs * Fall Creators Update (16299) @@ -168,12 +192,11 @@ Once you do a search, you should see a list similar to the one below (versions m * [Toasts](https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/07/02/adaptive-and-interactive-toast-notifications-for-windows-10/) ## Feedback and Requests -Please use [GitHub Issues](https://github.com/windows-toolkit/WindowsCommunityToolkit/issues) for bug reports and feature requests. -For feature requests, please also create an entry in our [UserVoice](https://wpdev.uservoice.com/forums/110705-universal-windows-platform/category/193402-uwp-community-toolkit). -For general questions and support, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/windows-community-toolkit) where questions should be tagged with the tag `windows-community-toolkit`. +Please use [GitHub Issues](https://github.com/unoplatform/Uno.WindowsCommunityToolkit/issues) for bug reports and feature requests. +For general questions and support, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/uno-platform+windows-community-toolkit) where questions should be tagged with the tag `uno-platform` and `windows-community-toolkit`. ## Contributing -Do you want to contribute? Here are our [contribution guidelines](https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/contributing.md). +Do you want to contribute? Here are our [contribution guidelines](https://github.com/unoplatform/Uno.WindowsCommunityToolkit/blob/uno/contributing.md). ## Principles * Principle **#1**: The toolkit will be kept simple. @@ -184,10 +207,5 @@ This project has adopted the code of conduct defined by the [Contributor Covenan to clarify expected behavior in our community. For more information see the [.NET Foundation Code of Conduct](http://dotnetfoundation.org/code-of-conduct). -## Roadmap -Read what we [plan for next iterations](https://github.com/windows-toolkit/WindowsCommunityToolkit/milestones), and feel free to ask questions. - -By adding this ([NuGet repo](https://dotnet.myget.org/F/uwpcommunitytoolkit/api/v3/index.json) | [Gallery](https://dotnet.myget.org/gallery/uwpcommunitytoolkit)) to your NuGet sources in Visual Studio, you can also get pre-release packages of upcoming versions. - -## .NET Foundation -This project is supported by the [.NET Foundation](http://dotnetfoundation.org). +## Uno Platform +This project is supported by the [Uno Platform](https://platform.uno). diff --git a/uno.ui.include.props b/uno.ui.include.props new file mode 100644 index 00000000000..ec987779cc7 --- /dev/null +++ b/uno.ui.include.props @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/version.json b/version.json index 70a6737316b..ee65fed240d 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "version": "5.1.0-build.{height}", + "version": "6.0.0-build.{height}", "publicReleaseRefSpec": [ "^refs/heads/master$", // we release out of master "^refs/heads/dev$", // we release out of dev