SettingsService works on iOS.
This commit is contained in:
parent
1a8215a822
commit
a86a11694a
@ -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()
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
@ -57,34 +56,37 @@ namespace eShopOnContainers.iOS.Services
|
||||
|
||||
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T))
|
||||
{
|
||||
var defaults = GetUserDefaults();
|
||||
|
||||
if (defaults[key] == null)
|
||||
lock (locker)
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
var defaults = GetUserDefaults();
|
||||
|
||||
var type = typeof(T);
|
||||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
|
||||
{
|
||||
type = Nullable.GetUnderlyingType(type);
|
||||
}
|
||||
if (defaults[key] == null)
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
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.");
|
||||
}
|
||||
var type = typeof(T);
|
||||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
|
||||
{
|
||||
type = Nullable.GetUnderlyingType(type);
|
||||
}
|
||||
|
||||
return null != value ? (T)value : defaultValue;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
#region ISettingsService Implementation
|
||||
|
Loading…
x
Reference in New Issue
Block a user