public MovementSource() { Position = GeoCoordinate.Unknown; compass = Compass.GetDefault(); if (compass != null) { compass.ReadingChanged += Compass_ReadingChanged; } if (!DesignerProperties.IsInDesignTool) // Cider hates GeoCoordinateWatcher { #if DEBUG watcher = new FakeGeoPositionWatcher(0.0, 0.0); #else watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); #endif watcher.PositionChanged += Watcher_PositionChanged; watcher.StatusChanged += Watcher_StatusChanged; watcher.Start(); } }
public TrackingViewModel(ILog log, IAccount account, ILocalize localize, IApplication application, IGeoPositionWatcher<GeoCoordinate> coordinateProvider, IHistory history, IRepository repository, ISettings settings) { _log = log; _localize = localize; _application = application; _coordinateProvider = coordinateProvider; _history = history; _repository = repository; _settings = settings; Account = account; _started = false; _startTime = System.Environment.TickCount; _coordinateProvider.PositionChanged += _coordinateProvider_PositionChanged; _coordinateProvider.Start(); UICoordinates = new GeoCoordinateCollection(); _timer.Interval = TimeSpan.FromSeconds(1); _timer.Tick += Timer_Tick; MapCenter = new GeoCoordinate(0, 0); Heading = 0; ZoomLevel = 15; Pitch = 55; PedestrianFeaturesEnabled = true; LandmarksEnabled = true; DistanceDisplay = "0 km"; if (!_settings.IsMetric) DistanceDisplay = "0 mi"; PaceDisplay = "00:00"; CaloriesDisplay = "0"; TimeDisplay = "00:00"; StrokeColor = System.Windows.Media.Colors.Red; StrokeThickness = 5; Coordinates.Clear(); StartVisibility = (!_started ? Visibility.Visible : Visibility.Collapsed); StopVisibility = (_started ? Visibility.Visible : Visibility.Collapsed); PauseVisibility = (!_paused ? Visibility.Visible : Visibility.Collapsed); ResumeVisibility = (_paused ? Visibility.Visible : Visibility.Collapsed); }
public void Start() { forceStop = false; watcher.Start(); }