using System; using System.Threading; using System.Threading.Tasks; using TINK.Model.Device; using Xamarin.Essentials; namespace TINK.Model.Services.Geolocation { public class SimulatedGeolocationService : IGeolocation { private IGeolodationDependent Dependent { get; } public SimulatedGeolocationService(IGeolodationDependent dependent) { Dependent = dependent; } /// Gets the current location. /// Token to cancel request for geolocation. /// Time when geolocation is of interest. Is used to determine whether cached geoloation can be used or not. public async Task GetAsync(CancellationToken? cancelToken = null, DateTime? timeStamp = null) { return await Task.FromResult(new Location(47.976634, 7.825490) { Accuracy = 0, Timestamp = timeStamp ?? DateTime.Now }); ; } /// If true location data returned is simulated. public bool IsSimulation { get => true; } public bool IsGeolcationEnabled => Dependent.IsGeolcationEnabled; } }