/// <summary>
        /// Initializes a new instance of the <see cref="TrackingPageViewModel"/> class.
        /// </summary>
        /// <param name="gpxHandler">The Gpx handler implementation it depends on.</param>
        /// <param name="locationTracker">The location tracker implementation it depends on.</param>
        /// <param name="settingOperator">The setting operator implementation it depends on.</param>
        public TrackingPageViewModel(IGpxHandler gpxHandler, ILocationTracker locationTracker, ISettingOperator settingOperator)
        {
            this.gpxHandler      = gpxHandler ?? throw new ArgumentNullException(nameof(gpxHandler));
            this.locationTracker = locationTracker ?? throw new ArgumentNullException(nameof(locationTracker));
            this.settingOperator = settingOperator ?? throw new ArgumentNullException(nameof(settingOperator));

            this.status = TrackingStatus.Stopped;
            this.StartPauseClickedCommand = new DelegateCommand <ItemClickEventArgs>(this.OnStartPauseClicked, this.CanStartPauseClick);
            this.StopClickedCommand       = new DelegateCommand <ItemClickEventArgs>(this.OnStopClicked, this.CanStopClick);
            this.SelectedActivity         = ActivityType.Unknown;
            this.CoordinateInformation    = "Your location information";

            this.settingOperator.ResetSettings();

            this.refreshTimer = new DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 30)
            };

            this.refreshTimer.Tick += async(object sender, object e) => { await this.DisplayMostRecentLocationData(string.Empty); };

            Debug.WriteLine($"{DateTime.Now} - Attached LocationTracker_OnTrackingProgressChangedEvent event handler.");
            this.locationTracker.OnTrackingProgressChangedEvent += this.LocationTracker_OnTrackingProgressChangedEvent;

            this.trackingMechanism = TrackingMechanismDisplay.GetSavedTrackingMechanism(this.settingOperator);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingPageViewModel"/> class.
        /// </summary>
        /// <param name="sessionService">The session state service it depends on.</param>
        /// <param name="gpxHandler">The Gpx handler implementation it depends on.</param>
        /// <param name="settingOperator">The setting operator implementation it depends on.</param>
        public SettingPageViewModel(ISessionStateService sessionService, IGpxHandler gpxHandler, ISettingOperator settingOperator)
        {
            this.gpxHandler      = gpxHandler ?? throw new ArgumentNullException(nameof(gpxHandler));
            this.settingOperator = settingOperator ?? throw new ArgumentNullException(nameof(settingOperator));
            this.sessionService  = sessionService;

            this.ClearTempFileButtonClickedCommand = new DelegateCommand <ItemClickEventArgs>(this.OnClearTempFileButtonClicked, this.CanClearTempFileButtonClick);
            this.isTempFileDeleteButtonEnabled     = true;
        }
예제 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GpsTrackingTask"/> class.
 /// </summary>
 public GpsTrackingTask()
 {
     this.setting    = new SettingOperator();
     this.gpxHandler = new GpxHandler();
 }