Platform specific settings code removed.pull/565/head
@ -1,13 +0,0 @@ | |||
namespace eShopOnContainers.Core.Services.Settings | |||
{ | |||
public interface ISettingsServiceImplementation | |||
{ | |||
bool GetValueOrDefault(string key, bool defaultValue); | |||
string GetValueOrDefault(string key, string defaultValue); | |||
bool AddOrUpdateValue(string key, bool value); | |||
bool AddOrUpdateValue(string key, string value); | |||
void Remove(string key); | |||
} | |||
} |
@ -1,149 +0,0 @@ | |||
using Android.App; | |||
using Android.Content; | |||
using Android.Preferences; | |||
using eShopOnContainers.Core.Services.Settings; | |||
using eShopOnContainers.Droid.Services; | |||
using System; | |||
[assembly: Xamarin.Forms.Dependency(typeof(SettingsServiceImplementation))] | |||
namespace eShopOnContainers.Droid.Services | |||
{ | |||
public class SettingsServiceImplementation : ISettingsServiceImplementation | |||
{ | |||
#region Internal Implementation | |||
readonly object _locker = new object(); | |||
ISharedPreferences GetSharedPreference() | |||
{ | |||
return PreferenceManager.GetDefaultSharedPreferences(Application.Context); | |||
} | |||
bool AddOrUpdateValueInternal<T>(string key, T value) | |||
{ | |||
if (Application.Context == null) | |||
return false; | |||
if (value == null) | |||
{ | |||
Remove(key); | |||
return true; | |||
} | |||
var type = typeof(T); | |||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||
{ | |||
type = Nullable.GetUnderlyingType(type); | |||
} | |||
var typeCode = Type.GetTypeCode(type); | |||
lock (_locker) | |||
{ | |||
using (var sharedPrefs = GetSharedPreference()) | |||
{ | |||
using (var editor = sharedPrefs.Edit()) | |||
{ | |||
switch (typeCode) | |||
{ | |||
case TypeCode.Boolean: | |||
editor.PutBoolean(key, Convert.ToBoolean(value)); | |||
break; | |||
case TypeCode.String: | |||
editor.PutString(key, Convert.ToString(value)); | |||
break; | |||
default: | |||
throw new ArgumentException($"Value of type {typeCode} is not supported."); | |||
} | |||
editor.Commit(); | |||
} | |||
} | |||
} | |||
return true; | |||
} | |||
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T)) | |||
{ | |||
if (Application.Context == null) | |||
return defaultValue; | |||
if (!Contains(key)) | |||
return defaultValue; | |||
lock (_locker) | |||
{ | |||
using (var sharedPrefs = GetSharedPreference()) | |||
{ | |||
var type = typeof(T); | |||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||
{ | |||
type = Nullable.GetUnderlyingType(type); | |||
} | |||
object value = null; | |||
var typeCode = Type.GetTypeCode(type); | |||
switch (typeCode) | |||
{ | |||
case TypeCode.Boolean: | |||
value = sharedPrefs.GetBoolean(key, Convert.ToBoolean(defaultValue)); | |||
break; | |||
case TypeCode.String: | |||
value = sharedPrefs.GetString(key, Convert.ToString(defaultValue)); | |||
break; | |||
default: | |||
throw new ArgumentException($"Value of type {typeCode} is not supported."); | |||
} | |||
return null != value ? (T)value : defaultValue; | |||
} | |||
} | |||
} | |||
bool Contains(string key) | |||
{ | |||
if (Application.Context == null) | |||
return false; | |||
lock (_locker) | |||
{ | |||
using (var sharedPrefs = GetSharedPreference()) | |||
{ | |||
if (sharedPrefs == null) | |||
return false; | |||
return sharedPrefs.Contains(key); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region ISettingsServiceImplementation | |||
public bool AddOrUpdateValue(string key, bool value) => AddOrUpdateValueInternal(key, value); | |||
public bool AddOrUpdateValue(string key, string value) => AddOrUpdateValueInternal(key, value); | |||
public bool GetValueOrDefault(string key, bool defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
public string GetValueOrDefault(string key, string defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
public void Remove(string key) | |||
{ | |||
if (Application.Context == null) | |||
return; | |||
lock (_locker) | |||
{ | |||
using (var sharedPrefs = GetSharedPreference()) | |||
{ | |||
using (var editor = sharedPrefs.Edit()) | |||
{ | |||
editor.Remove(key); | |||
editor.Commit(); | |||
} | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |
@ -1,232 +1,232 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" /> | |||
<Import Project="..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.props')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> | |||
<ProjectGuid>{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}</ProjectGuid> | |||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<OutputType>Exe</OutputType> | |||
<RootNamespace>eShopOnContainers.TestRunner.iOS</RootNamespace> | |||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> | |||
<AssemblyName>eShopOnContainersTestRunneriOS</AssemblyName> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>x86_64</MtouchArch> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchDebug>True</MtouchDebug> | |||
<MtouchProfiling>False</MtouchProfiling> | |||
<MtouchFastDev>False</MtouchFastDev> | |||
<MtouchUseLlvm>False</MtouchUseLlvm> | |||
<MtouchUseThumb>False</MtouchUseThumb> | |||
<MtouchEnableBitcode>False</MtouchEnableBitcode> | |||
<OptimizePNGs>True</OptimizePNGs> | |||
<MtouchTlsProvider>Default</MtouchTlsProvider> | |||
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler> | |||
<MtouchFloat32>False</MtouchFloat32> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> | |||
<DebugSymbols>false</DebugSymbols> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchArch>x86_64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhone\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<MtouchDebug>true</MtouchDebug> | |||
<MtouchLink>None</MtouchLink> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> | |||
<DebugSymbols>false</DebugSymbols> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhone\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<BuildIpa>True</BuildIpa> | |||
<CodesignProvision>Automatic:AdHoc</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\AppStore</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<CodesignProvision>Automatic:AppStore</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Main.cs" /> | |||
<Compile Include="AppDelegate.cs" /> | |||
<None Include="app.config" /> | |||
<None Include="Info.plist" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<InterfaceDefinition Include="Resources\LaunchScreen.xib" /> | |||
<None Include="packages.config" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Xml" /> | |||
<Reference Include="System.Core" /> | |||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.iOS" /> | |||
<Reference Include="System.IO.Compression" /> | |||
<Reference Include="System.Net.Http" /> | |||
<Reference Include="xunit.runner.devices"> | |||
<HintPath>..\..\..\..\packages\xunit.runner.devices.2.3.3\lib\xamarinios10\xunit.runner.devices.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.runner.utility.netstandard15"> | |||
<HintPath>..\..\..\..\packages\xunit.runner.devices.2.3.3\lib\xamarinios10\xunit.runner.utility.netstandard15.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.abstractions"> | |||
<HintPath>..\..\..\..\packages\xunit.abstractions.2.0.1\lib\netstandard1.0\xunit.abstractions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.assert"> | |||
<HintPath>..\..\..\..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.core"> | |||
<HintPath>..\..\..\..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.execution.dotnet"> | |||
<HintPath>..\..\..\..\packages\xunit.extensibility.execution.2.3.1\lib\netstandard1.1\xunit.execution.dotnet.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.CSharp" /> | |||
<Reference Include="Newtonsoft.Json"> | |||
<HintPath>..\..\..\..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit.iOS"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="IdentityModel"> | |||
<HintPath>..\..\..\..\packages\IdentityModel.3.0.0\lib\netstandard2.0\IdentityModel.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.Support.iOS"> | |||
<HintPath>..\..\..\..\packages\Acr.Support.2.1.0\lib\Xamarin.iOS10\Acr.Support.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="BTProgressHUD"> | |||
<HintPath>..\..\..\..\packages\BTProgressHUD.1.2.0.5\lib\Xamarin.iOS10\BTProgressHUD.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Splat"> | |||
<HintPath>..\..\..\..\packages\Splat.2.0.0\lib\Xamarin.iOS10\Splat.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs.Interface"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.Interface.dll</HintPath> | |||
</Reference> | |||
<Reference Include="WebP.Touch"> | |||
<HintPath>..\..\..\..\packages\WebP.Touch.1.0.7\lib\Xamarin.iOS10\WebP.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms.Touch"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Windows.Core"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Windows.Core.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Kernel32"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Kernel32.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Kernel32.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.BCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.BCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.BCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.NCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.NCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.NCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Validation"> | |||
<HintPath>..\..\..\..\packages\Validation.2.2.8\lib\dotnet\Validation.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PCLCrypto"> | |||
<HintPath>..\..\..\..\packages\PCLCrypto.2.0.147\lib\xamarinios10\PCLCrypto.dll</HintPath> | |||
</Reference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="Entitlements.plist" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj"> | |||
<Project>{FDD910BC-DF0F-483D-B7D5-C7D831855172}</Project> | |||
<Name>eShopOnContainers.UnitTests</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> | |||
<Import Project="..\..\..\..\packages\xunit.runner.devices.2.3.3\build\xamarinios10\xunit.runner.devices.targets" Condition="Exists('..\..\..\..\packages\xunit.runner.devices.2.3.3\build\xamarinios10\xunit.runner.devices.targets')" /> | |||
<Import Project="..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.targets" Condition="Exists('..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" /> | |||
<Import Project="..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.props')" /> | |||
<PropertyGroup> | |||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> | |||
<ProjectGuid>{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}</ProjectGuid> | |||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<OutputType>Exe</OutputType> | |||
<RootNamespace>eShopOnContainers.TestRunner.iOS</RootNamespace> | |||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> | |||
<AssemblyName>eShopOnContainersTestRunneriOS</AssemblyName> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props'))" /> | |||
<Error Condition="!Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets'))" /> | |||
<Error Condition="!Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets'))" /> | |||
</Target> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" /> | |||
<Import Project="..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" /> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>x86_64</MtouchArch> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchDebug>True</MtouchDebug> | |||
<MtouchProfiling>False</MtouchProfiling> | |||
<MtouchFastDev>False</MtouchFastDev> | |||
<MtouchUseLlvm>False</MtouchUseLlvm> | |||
<MtouchUseThumb>False</MtouchUseThumb> | |||
<MtouchEnableBitcode>False</MtouchEnableBitcode> | |||
<OptimizePNGs>True</OptimizePNGs> | |||
<MtouchTlsProvider>Default</MtouchTlsProvider> | |||
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler> | |||
<MtouchFloat32>False</MtouchFloat32> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> | |||
<DebugSymbols>false</DebugSymbols> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchArch>x86_64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhone\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<MtouchDebug>true</MtouchDebug> | |||
<MtouchLink>None</MtouchLink> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> | |||
<DebugSymbols>false</DebugSymbols> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhone\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<BuildIpa>True</BuildIpa> | |||
<CodesignProvision>Automatic:AdHoc</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\AppStore</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<CodesignProvision>Automatic:AppStore</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Main.cs" /> | |||
<Compile Include="AppDelegate.cs" /> | |||
<None Include="app.config" /> | |||
<None Include="Info.plist" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<InterfaceDefinition Include="Resources\LaunchScreen.xib" /> | |||
<None Include="packages.config" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Xml" /> | |||
<Reference Include="System.Core" /> | |||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.iOS" /> | |||
<Reference Include="System.IO.Compression" /> | |||
<Reference Include="System.Net.Http" /> | |||
<Reference Include="xunit.runner.devices"> | |||
<HintPath>..\..\..\..\packages\xunit.runner.devices.2.3.3\lib\xamarinios10\xunit.runner.devices.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.runner.utility.netstandard15"> | |||
<HintPath>..\..\..\..\packages\xunit.runner.devices.2.3.3\lib\xamarinios10\xunit.runner.utility.netstandard15.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.abstractions"> | |||
<HintPath>..\..\..\..\packages\xunit.abstractions.2.0.1\lib\netstandard1.0\xunit.abstractions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.assert"> | |||
<HintPath>..\..\..\..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.core"> | |||
<HintPath>..\..\..\..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="xunit.execution.dotnet"> | |||
<HintPath>..\..\..\..\packages\xunit.extensibility.execution.2.3.1\lib\netstandard1.1\xunit.execution.dotnet.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Newtonsoft.Json"> | |||
<HintPath>..\..\..\..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit.iOS"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="IdentityModel"> | |||
<HintPath>..\..\..\..\packages\IdentityModel.3.0.0\lib\netstandard2.0\IdentityModel.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.Support.iOS"> | |||
<HintPath>..\..\..\..\packages\Acr.Support.2.1.0\lib\Xamarin.iOS10\Acr.Support.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="BTProgressHUD"> | |||
<HintPath>..\..\..\..\packages\BTProgressHUD.1.2.0.5\lib\Xamarin.iOS10\BTProgressHUD.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Splat"> | |||
<HintPath>..\..\..\..\packages\Splat.2.0.0\lib\Xamarin.iOS10\Splat.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs.Interface"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.Interface.dll</HintPath> | |||
</Reference> | |||
<Reference Include="WebP.Touch"> | |||
<HintPath>..\..\..\..\packages\WebP.Touch.1.0.7\lib\Xamarin.iOS10\WebP.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms.Touch"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Windows.Core"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Windows.Core.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Kernel32"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Kernel32.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Kernel32.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.BCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.BCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.BCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.NCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.NCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.NCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Validation"> | |||
<HintPath>..\..\..\..\packages\Validation.2.2.8\lib\dotnet\Validation.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PCLCrypto"> | |||
<HintPath>..\..\..\..\packages\PCLCrypto.2.0.147\lib\xamarinios10\PCLCrypto.dll</HintPath> | |||
</Reference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="Entitlements.plist" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj"> | |||
<Project>{FDD910BC-DF0F-483D-B7D5-C7D831855172}</Project> | |||
<Name>eShopOnContainers.UnitTests</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> | |||
<Import Project="..\..\..\..\packages\xunit.runner.devices.2.3.3\build\xamarinios10\xunit.runner.devices.targets" Condition="Exists('..\..\..\..\packages\xunit.runner.devices.2.3.3\build\xamarinios10\xunit.runner.devices.targets')" /> | |||
<Import Project="..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.targets" Condition="Exists('..\..\..\..\packages\xunit.core.2.3.1\build\xunit.core.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<PropertyGroup> | |||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props'))" /> | |||
<Error Condition="!Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets'))" /> | |||
<Error Condition="!Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets'))" /> | |||
</Target> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" /> | |||
<Import Project="..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" /> | |||
</Project> |
@ -1,65 +1,110 @@ | |||
using eShopOnContainers.Core.Services.Settings; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Threading.Tasks; | |||
namespace eShopOnContainers.UnitTests.Mocks | |||
{ | |||
public class MockSettingsService : ISettingsService | |||
{ | |||
string _accessTokenDefault = string.Empty; | |||
string _idTokenDefault = string.Empty; | |||
bool _useMocksDefault = true; | |||
string _urlBaseDefault = "https://13.88.8.119"; | |||
bool _useFakeLocationDefault = false; | |||
bool _allowGpsLocationDefault = false; | |||
double _fakeLatitudeDefault = 47.604610d; | |||
double _fakeLongitudeDefault = -122.315752d; | |||
IDictionary<string, object> _settings = new Dictionary<string, object>(); | |||
const string AccessToken = "access_token"; | |||
const string IdToken = "id_token"; | |||
const string IdUseMocks = "use_mocks"; | |||
const string IdUrlBase = "url_base"; | |||
const string IdUseFakeLocation = "use_fake_location"; | |||
const string IdLatitude = "latitude"; | |||
const string IdLongitude = "longitude"; | |||
const string IdAllowGpsLocation = "allow_gps_location"; | |||
readonly string AccessTokenDefault = string.Empty; | |||
readonly string IdTokenDefault = string.Empty; | |||
readonly bool UseMocksDefault = true; | |||
readonly bool UseFakeLocationDefault = false; | |||
readonly bool AllowGpsLocationDefault = false; | |||
readonly double FakeLatitudeDefault = 47.604610d; | |||
readonly double FakeLongitudeDefault = -122.315752d; | |||
readonly string UrlBaseDefault = "https://13.88.8.119"; | |||
public string AuthAccessToken | |||
{ | |||
get { return _accessTokenDefault; } | |||
set { _accessTokenDefault = value; } | |||
get => GetValueOrDefault(AccessToken, AccessTokenDefault); | |||
set => AddOrUpdateValue(AccessToken, value); | |||
} | |||
public string AuthIdToken | |||
{ | |||
get { return _idTokenDefault; } | |||
set { _idTokenDefault = value; } | |||
get => GetValueOrDefault(IdToken, IdTokenDefault); | |||
set => AddOrUpdateValue(IdToken, value); | |||
} | |||
public bool UseMocks | |||
{ | |||
get { return _useMocksDefault; } | |||
set { _useMocksDefault = value; } | |||
get => GetValueOrDefault(IdUseMocks, UseMocksDefault); | |||
set => AddOrUpdateValue(IdUseMocks, value); | |||
} | |||
public string UrlBase | |||
{ | |||
get { return _urlBaseDefault; } | |||
set { _urlBaseDefault = value; } | |||
get => GetValueOrDefault(IdUrlBase, UrlBaseDefault); | |||
set => AddOrUpdateValue(IdUrlBase, value); | |||
} | |||
public bool UseFakeLocation | |||
{ | |||
get { return _useFakeLocationDefault; } | |||
set { _useFakeLocationDefault = value; } | |||
get => GetValueOrDefault(IdUseFakeLocation, UseFakeLocationDefault); | |||
set => AddOrUpdateValue(IdUseFakeLocation, value); | |||
} | |||
public string Latitude | |||
{ | |||
get { return _fakeLatitudeDefault.ToString(); } | |||
set { _fakeLatitudeDefault = Convert.ToDouble(value); } | |||
get => GetValueOrDefault(IdLatitude, FakeLatitudeDefault.ToString()); | |||
set => AddOrUpdateValue(IdLatitude, value); | |||
} | |||
public string Longitude | |||
{ | |||
get { return _fakeLongitudeDefault.ToString(); } | |||
set { _fakeLongitudeDefault = Convert.ToDouble(value); } | |||
get => GetValueOrDefault(IdLongitude, FakeLongitudeDefault.ToString()); | |||
set => AddOrUpdateValue(IdLongitude, value); | |||
} | |||
public bool AllowGpsLocation | |||
{ | |||
get { return _allowGpsLocationDefault; } | |||
set { _allowGpsLocationDefault = value; } | |||
get => GetValueOrDefault(IdAllowGpsLocation, AllowGpsLocationDefault); | |||
set => AddOrUpdateValue(IdAllowGpsLocation, value); | |||
} | |||
public Task AddOrUpdateValue(string key, bool value) => AddOrUpdateValueInternal(key, value); | |||
public Task AddOrUpdateValue(string key, string value) => AddOrUpdateValueInternal(key, value); | |||
public bool GetValueOrDefault(string key, bool defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
public string GetValueOrDefault(string key, string defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
Task AddOrUpdateValueInternal<T>(string key, T value) | |||
{ | |||
if (value == null) | |||
{ | |||
Remove(key); | |||
} | |||
_settings[key] = value; | |||
return Task.Delay(10); | |||
} | |||
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T)) | |||
{ | |||
object value = null; | |||
if (_settings.ContainsKey(key)) | |||
{ | |||
value = _settings[key]; | |||
} | |||
return null != value ? (T)value : defaultValue; | |||
} | |||
void Remove(string key) | |||
{ | |||
if (_settings[key] != null) | |||
{ | |||
_settings.Remove(key); | |||
} | |||
} | |||
} | |||
} |
@ -1,128 +0,0 @@ | |||
using eShopOnContainers.Core.Services.Settings; | |||
using eShopOnContainers.iOS.Services; | |||
using Foundation; | |||
using System; | |||
[assembly: Xamarin.Forms.Dependency(typeof(SettingsServiceImplementation))] | |||
namespace eShopOnContainers.iOS.Services | |||
{ | |||
public class SettingsServiceImplementation : ISettingsServiceImplementation | |||
{ | |||
#region Internal Implementation | |||
readonly object _locker = new object(); | |||
NSUserDefaults GetUserDefaults() => NSUserDefaults.StandardUserDefaults; | |||
bool AddOrUpdateValueInternal<T>(string key, T value) | |||
{ | |||
if (value == null) | |||
{ | |||
Remove(key); | |||
return true; | |||
} | |||
var type = typeof(T); | |||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||
{ | |||
type = Nullable.GetUnderlyingType(type); | |||
} | |||
var typeCode = Type.GetTypeCode(type); | |||
lock (_locker) | |||
{ | |||
var defaults = GetUserDefaults(); | |||
switch (typeCode) | |||
{ | |||
case TypeCode.Boolean: | |||
defaults.SetBool(Convert.ToBoolean(value), key); | |||
break; | |||
case TypeCode.String: | |||
defaults.SetString(Convert.ToString(value), key); | |||
break; | |||
default: | |||
throw new ArgumentException($"Value of type {typeCode} is unsupported."); | |||
} | |||
try | |||
{ | |||
defaults.Synchronize(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
Console.WriteLine("Unable to save: " + key, " Message: " + ex.Message); | |||
} | |||
} | |||
return true; | |||
} | |||
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T)) | |||
{ | |||
lock (_locker) | |||
{ | |||
var defaults = GetUserDefaults(); | |||
if (defaults[key] == null) | |||
{ | |||
return defaultValue; | |||
} | |||
var type = typeof(T); | |||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||
{ | |||
type = Nullable.GetUnderlyingType(type); | |||
} | |||
object value = null; | |||
var typeCode = Type.GetTypeCode(type); | |||
switch (typeCode) | |||
{ | |||
case TypeCode.Boolean: | |||
value = defaults.BoolForKey(key); | |||
break; | |||
case TypeCode.String: | |||
value = defaults.StringForKey(key); | |||
break; | |||
default: | |||
throw new ArgumentException($"Value of type {typeCode} is unsupported."); | |||
} | |||
return null != value ? (T)value : defaultValue; | |||
} | |||
} | |||
#endregion | |||
#region ISettingsServiceImplementation | |||
public bool AddOrUpdateValue(string key, bool value) => AddOrUpdateValueInternal(key, value); | |||
public bool AddOrUpdateValue(string key, string value) => AddOrUpdateValueInternal(key, value); | |||
public bool GetValueOrDefault(string key, bool defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
public string GetValueOrDefault(string key, string defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||
public void Remove(string key) | |||
{ | |||
lock (_locker) | |||
{ | |||
var defaults = GetUserDefaults(); | |||
try | |||
{ | |||
if (defaults[key] != null) | |||
{ | |||
defaults.RemoveObject(key); | |||
defaults.Synchronize(); | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
Console.WriteLine("Unable to remove: " + key, " Message: " + ex.Message); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |
@ -1,429 +1,428 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> | |||
<ProductVersion>8.0.30703</ProductVersion> | |||
<SchemaVersion>2.0</SchemaVersion> | |||
<ProjectGuid>{6EEB23DC-7063-4444-9AF8-90DF24F549C0}</ProjectGuid> | |||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<OutputType>Exe</OutputType> | |||
<RootNamespace>eShopOnContainers.iOS</RootNamespace> | |||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> | |||
<AssemblyName>eShopOnContainersiOS</AssemblyName> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
<SkipValidatePackageReferences>true</SkipValidatePackageReferences> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>i386, x86_64</MtouchArch> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchDebug>True</MtouchDebug> | |||
<MtouchProfiling>False</MtouchProfiling> | |||
<MtouchFastDev>False</MtouchFastDev> | |||
<MtouchUseLlvm>False</MtouchUseLlvm> | |||
<MtouchUseThumb>False</MtouchUseThumb> | |||
<MtouchEnableBitcode>False</MtouchEnableBitcode> | |||
<OptimizePNGs>True</OptimizePNGs> | |||
<MtouchTlsProvider>Default</MtouchTlsProvider> | |||
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler> | |||
<MtouchFloat32>False</MtouchFloat32> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchArch>i386, x86_64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhone\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<MtouchDebug>true</MtouchDebug> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<MtouchLink>None</MtouchLink> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhone\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<BuildIpa>True</BuildIpa> | |||
<CodesignProvision>Automatic:AdHoc</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\AppStore</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignProvision>Automatic:AppStore</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Effects\EntryLineColorEffect.cs" /> | |||
<Compile Include="Main.cs" /> | |||
<Compile Include="AppDelegate.cs" /> | |||
<BundleResource Include="..\CommonResources\Fonts\Montserrat-Bold.ttf"> | |||
<Link>Resources\fonts\Montserrat-Bold.ttf</Link> | |||
</BundleResource> | |||
<BundleResource Include="..\CommonResources\Fonts\Montserrat-Regular.ttf"> | |||
<Link>Resources\fonts\Montserrat-Regular.ttf</Link> | |||
</BundleResource> | |||
<BundleResource Include="..\CommonResources\Fonts\SourceSansPro-Regular.ttf"> | |||
<Link>Resources\fonts\SourceSansPro-Regular.ttf</Link> | |||
</BundleResource> | |||
<Compile Include="Renderers\CustomTabbedPageRenderer.cs" /> | |||
<Compile Include="Renderers\SlideDownMenuPageRenderer.cs" /> | |||
<None Include="app.config" /> | |||
<None Include="Entitlements.plist" /> | |||
<None Include="Info.plist" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<ITunesArtwork Include="iTunesArtwork" /> | |||
<ITunesArtwork Include="iTunesArtwork@2x" /> | |||
<Compile Include="Effects\CircleEffect.cs" /> | |||
<BundleResource Include="Resources\menu_campaigns.png" /> | |||
<BundleResource Include="Resources\menu_campaigns%402x.png" /> | |||
<BundleResource Include="Resources\menu_campaigns%403x.png" /> | |||
<None Include="packages.config" /> | |||
<Compile Include="Services\SettingsServiceImplementation.cs" /> | |||
<Compile Include="Services\LocationServiceImplementation.cs" /> | |||
<Compile Include="Services\PermissionsService.cs" /> | |||
<Compile Include="Services\GeolocationSingleUpdateDelegate.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-60%403x.png" /> | |||
<BundleResource Include="Resources\Icon-Small-40%403x.png" /> | |||
<BundleResource Include="Resources\Icon-Small%403x.png" /> | |||
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Xml" /> | |||
<Reference Include="System.Core" /> | |||
<Reference Include="Xamarin.iOS" /> | |||
<Reference Include="System.IO.Compression" /> | |||
<Reference Include="System.Net.Http" /> | |||
<Reference Include="Xamarin.Forms.Core"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform.iOS"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Xaml"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> | |||
</Reference> | |||
<Reference Include="WebP.Touch"> | |||
<HintPath>..\..\..\..\packages\WebP.Touch.1.0.7\lib\Xamarin.iOS10\WebP.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms.Touch"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit.iOS"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Plugin.Settings.Abstractions"> | |||
<HintPath>..\..\..\..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.Abstractions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Plugin.Settings"> | |||
<HintPath>..\..\..\..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.CSharp" /> | |||
<Reference Include="Newtonsoft.Json"> | |||
<HintPath>..\..\..\..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.Support.iOS"> | |||
<HintPath>..\..\..\..\packages\Acr.Support.2.1.0\lib\Xamarin.iOS10\Acr.Support.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="BTProgressHUD"> | |||
<HintPath>..\..\..\..\packages\BTProgressHUD.1.2.0.5\lib\Xamarin.iOS10\BTProgressHUD.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Splat"> | |||
<HintPath>..\..\..\..\packages\Splat.2.0.0\lib\Xamarin.iOS10\Splat.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs.Interface"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.Interface.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Windows.Core"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Windows.Core.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Kernel32"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Kernel32.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Kernel32.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.BCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.BCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.BCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.NCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.NCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.NCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Validation"> | |||
<HintPath>..\..\..\..\packages\Validation.2.2.8\lib\dotnet\Validation.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PCLCrypto"> | |||
<HintPath>..\..\..\..\packages\PCLCrypto.2.0.147\lib\xamarinios10\PCLCrypto.dll</HintPath> | |||
</Reference> | |||
<Reference Include="IdentityModel"> | |||
<HintPath>..\..\..\..\packages\IdentityModel.3.0.0\lib\netstandard2.0\IdentityModel.dll</HintPath> | |||
</Reference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_01.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_03.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_02.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_04.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_05.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-568h%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-Portrait.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-Portrait%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-750%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-1242%403x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Logo.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\noimage.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\default_product.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\banner.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-568h%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-Portrait.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-Portrait%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-60%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-76.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-76%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small-40.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small-40%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_campaign_01.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_campaign_02.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<AndroidResource Include="Resources\default_campaign.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\eShopOnContainers.Core\eShopOnContainers.Core.csproj"> | |||
<Project>{76C5F2A7-6CD5-49EA-9F33-EC44DE6539C7}</Project> | |||
<Name>eShopOnContainers.Core</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Services\" /> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" /> | |||
<Import Project="..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.props')" /> | |||
<PropertyGroup> | |||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> | |||
<ProductVersion>8.0.30703</ProductVersion> | |||
<SchemaVersion>2.0</SchemaVersion> | |||
<ProjectGuid>{6EEB23DC-7063-4444-9AF8-90DF24F549C0}</ProjectGuid> | |||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<OutputType>Exe</OutputType> | |||
<RootNamespace>eShopOnContainers.iOS</RootNamespace> | |||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> | |||
<AssemblyName>eShopOnContainersiOS</AssemblyName> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
<SkipValidatePackageReferences>true</SkipValidatePackageReferences> | |||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets'))" /> | |||
</Target> | |||
</Project> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>i386, x86_64</MtouchArch> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchDebug>True</MtouchDebug> | |||
<MtouchProfiling>False</MtouchProfiling> | |||
<MtouchFastDev>False</MtouchFastDev> | |||
<MtouchUseLlvm>False</MtouchUseLlvm> | |||
<MtouchUseThumb>False</MtouchUseThumb> | |||
<MtouchEnableBitcode>False</MtouchEnableBitcode> | |||
<OptimizePNGs>True</OptimizePNGs> | |||
<MtouchTlsProvider>Default</MtouchTlsProvider> | |||
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler> | |||
<MtouchFloat32>False</MtouchFloat32> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchLink>None</MtouchLink> | |||
<MtouchArch>i386, x86_64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\iPhone\Debug</OutputPath> | |||
<DefineConstants>DEBUG</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>false</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<MtouchDebug>true</MtouchDebug> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
<MtouchLink>None</MtouchLink> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\iPhone\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<ConsolePause>false</ConsolePause> | |||
<CodesignKey>iPhone Developer</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<BuildIpa>True</BuildIpa> | |||
<CodesignProvision>Automatic:AdHoc</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' "> | |||
<DebugType>none</DebugType> | |||
<Optimize>True</Optimize> | |||
<OutputPath>bin\iPhone\AppStore</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
<ConsolePause>False</ConsolePause> | |||
<MtouchArch>ARMv7, ARM64</MtouchArch> | |||
<CodesignProvision>Automatic:AppStore</CodesignProvision> | |||
<CodesignKey>iPhone Distribution</CodesignKey> | |||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Effects\EntryLineColorEffect.cs" /> | |||
<Compile Include="Main.cs" /> | |||
<Compile Include="AppDelegate.cs" /> | |||
<BundleResource Include="..\CommonResources\Fonts\Montserrat-Bold.ttf"> | |||
<Link>Resources\fonts\Montserrat-Bold.ttf</Link> | |||
</BundleResource> | |||
<BundleResource Include="..\CommonResources\Fonts\Montserrat-Regular.ttf"> | |||
<Link>Resources\fonts\Montserrat-Regular.ttf</Link> | |||
</BundleResource> | |||
<BundleResource Include="..\CommonResources\Fonts\SourceSansPro-Regular.ttf"> | |||
<Link>Resources\fonts\SourceSansPro-Regular.ttf</Link> | |||
</BundleResource> | |||
<Compile Include="Renderers\CustomTabbedPageRenderer.cs" /> | |||
<Compile Include="Renderers\SlideDownMenuPageRenderer.cs" /> | |||
<None Include="app.config" /> | |||
<None Include="Entitlements.plist" /> | |||
<None Include="Info.plist" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<ITunesArtwork Include="iTunesArtwork" /> | |||
<ITunesArtwork Include="iTunesArtwork@2x" /> | |||
<Compile Include="Effects\CircleEffect.cs" /> | |||
<BundleResource Include="Resources\menu_campaigns.png" /> | |||
<BundleResource Include="Resources\menu_campaigns%402x.png" /> | |||
<BundleResource Include="Resources\menu_campaigns%403x.png" /> | |||
<None Include="packages.config" /> | |||
<Compile Include="Services\LocationServiceImplementation.cs" /> | |||
<Compile Include="Services\PermissionsService.cs" /> | |||
<Compile Include="Services\GeolocationSingleUpdateDelegate.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-60%403x.png" /> | |||
<BundleResource Include="Resources\Icon-Small-40%403x.png" /> | |||
<BundleResource Include="Resources\Icon-Small%403x.png" /> | |||
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Xml" /> | |||
<Reference Include="System.Core" /> | |||
<Reference Include="Xamarin.iOS" /> | |||
<Reference Include="System.IO.Compression" /> | |||
<Reference Include="System.Net.Http" /> | |||
<Reference Include="Xamarin.Forms.Core"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Platform.iOS"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Xamarin.Forms.Xaml"> | |||
<HintPath>..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> | |||
</Reference> | |||
<Reference Include="WebP.Touch"> | |||
<HintPath>..\..\..\..\packages\WebP.Touch.1.0.7\lib\Xamarin.iOS10\WebP.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Platform"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Platform.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FFImageLoading.Forms.Touch"> | |||
<HintPath>..\..\..\..\packages\Xamarin.FFImageLoading.Forms.2.3.4\lib\Xamarin.iOS10\FFImageLoading.Forms.Touch.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.dll</HintPath> | |||
</Reference> | |||
<Reference Include="SlideOverKit.iOS"> | |||
<HintPath>..\..\..\..\packages\SlideOverKit.2.1.5\lib\Xamarin.iOS10\SlideOverKit.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Plugin.Settings.Abstractions"> | |||
<HintPath>..\..\..\..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.Abstractions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Plugin.Settings"> | |||
<HintPath>..\..\..\..\packages\Xam.Plugins.Settings.3.1.1\lib\Xamarin.iOS10\Plugin.Settings.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Newtonsoft.Json"> | |||
<HintPath>..\..\..\..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.Support.iOS"> | |||
<HintPath>..\..\..\..\packages\Acr.Support.2.1.0\lib\Xamarin.iOS10\Acr.Support.iOS.dll</HintPath> | |||
</Reference> | |||
<Reference Include="BTProgressHUD"> | |||
<HintPath>..\..\..\..\packages\BTProgressHUD.1.2.0.5\lib\Xamarin.iOS10\BTProgressHUD.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Splat"> | |||
<HintPath>..\..\..\..\packages\Splat.2.0.0\lib\Xamarin.iOS10\Splat.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Acr.UserDialogs.Interface"> | |||
<HintPath>..\..\..\..\packages\Acr.UserDialogs.6.5.1\lib\Xamarin.iOS10\Acr.UserDialogs.Interface.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Windows.Core"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Windows.Core.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.Kernel32"> | |||
<HintPath>..\..\..\..\packages\PInvoke.Kernel32.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Kernel32.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.BCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.BCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.BCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PInvoke.NCrypt"> | |||
<HintPath>..\..\..\..\packages\PInvoke.NCrypt.0.3.2\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.NCrypt.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Validation"> | |||
<HintPath>..\..\..\..\packages\Validation.2.2.8\lib\dotnet\Validation.dll</HintPath> | |||
</Reference> | |||
<Reference Include="PCLCrypto"> | |||
<HintPath>..\..\..\..\packages\PCLCrypto.2.0.147\lib\xamarinios10\PCLCrypto.dll</HintPath> | |||
</Reference> | |||
<Reference Include="IdentityModel"> | |||
<HintPath>..\..\..\..\packages\IdentityModel.3.0.0\lib\netstandard2.0\IdentityModel.dll</HintPath> | |||
</Reference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_01.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_03.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_02.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_04.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_product_05.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_cart%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_filter%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\menu_profile%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\product_add%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\app_settings%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOff%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\switchOn%403x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-60%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-76%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-40%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-568h%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-Portrait.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-Portrait%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-750%402x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Default-1242%403x.png"> | |||
<Visible>false</Visible> | |||
</ImageAsset> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Logo.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\noimage.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\default_product.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\banner.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-568h%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-Portrait.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Default-Portrait%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-60%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-76.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-76%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small-40.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\Icon-Small-40%402x.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_campaign_01.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<BundleResource Include="Resources\fake_campaign_02.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<AndroidResource Include="Resources\default_campaign.png" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\eShopOnContainers.Core\eShopOnContainers.Core.csproj"> | |||
<Project>{76C5F2A7-6CD5-49EA-9F33-EC44DE6539C7}</Project> | |||
<Name>eShopOnContainers.Core</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Services\" /> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.5.0.122203\build\netstandard1.0\Xamarin.Forms.targets')" /> | |||
<Import Project="..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<PropertyGroup> | |||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets'))" /> | |||
</Target> | |||
</Project> |