SettingsService works on iOS.

This commit is contained in:
David Britch 2018-01-16 16:00:25 +00:00
parent 1a8215a822
commit a86a11694a
4 changed files with 34 additions and 30 deletions

View File

@ -15,7 +15,6 @@ namespace eShopOnContainers
public partial class App : Application
{
ISettingsService _settingsService;
bool _useMockServices;
public App()
{
@ -30,9 +29,9 @@ namespace eShopOnContainers
private void InitApp()
{
_useMockServices = true;//_settingsService.UseMocks;
ViewModelLocator.RegisterDependencies(_useMockServices);
_settingsService = ViewModelLocator.Resolve<ISettingsService>();
if (!_settingsService.UseMocks)
ViewModelLocator.UpdateDependencies(_settingsService.UseMocks);
}
private Task InitNavigation()

View File

@ -60,6 +60,9 @@ namespace eShopOnContainers.Core.ViewModels.Base
_container.Register<IOpenUrlService, OpenUrlService>();
_container.Register<IIdentityService, IdentityService>();
_container.Register<IRequestProvider, RequestProvider>();
_container.Register<IDependencyService, Services.Dependency.DependencyService>();
_container.Register<ISettingsService, SettingsService>().AsSingleton();
_container.Register<IFixUriService, FixUriService>().AsSingleton();
_container.Register<ILocationService, LocationService>().AsSingleton();
_container.Register<ICatalogService, CatalogMockService>().AsSingleton();
_container.Register<IBasketService, BasketMockService>().AsSingleton();

View File

@ -35,7 +35,7 @@ namespace eShopOnContainers.Core.ViewModels
_settingsService = settingsService;
_locationService = locationService;
_useAzureServices = _settingsService.UseMocks;
_useAzureServices = !_settingsService.UseMocks;
_endpoint = _settingsService.UrlBase;
_latitude = double.Parse(_settingsService.Latitude, CultureInfo.CurrentCulture);
_longitude = double.Parse(_settingsService.Longitude, CultureInfo.CurrentCulture);

View File

@ -2,7 +2,6 @@
using Foundation;
using eShopOnContainers.Core.Services.Settings;
using eShopOnContainers.iOS.Services;
using System.Globalization;
[assembly: Xamarin.Forms.Dependency(typeof(SettingsServiceImplementation))]
namespace eShopOnContainers.iOS.Services
@ -34,7 +33,7 @@ namespace eShopOnContainers.iOS.Services
switch (typeCode)
{
case TypeCode.Boolean:
defaults.SetString(Convert.ToString(value, CultureInfo.InvariantCulture), key);
defaults.SetBool(Convert.ToBoolean(value), key);
break;
case TypeCode.String:
defaults.SetString(Convert.ToString(value), key);
@ -56,6 +55,8 @@ namespace eShopOnContainers.iOS.Services
}
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T))
{
lock (locker)
{
var defaults = GetUserDefaults();
@ -86,6 +87,7 @@ namespace eShopOnContainers.iOS.Services
return null != value ? (T)value : defaultValue;
}
}
#region ISettingsService Implementation