From 6e5d7c308c0276e8d02cfd7a45666b4a2838f5d7 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 18 Nov 2013 13:06:59 +0100 Subject: [PATCH] add accuracy paramter and save command --- CampusAppWP8/CampusAppWP8/App.xaml.cs | 9 +++++- .../CampusAppWP8/Pages/StartPage.xaml.cs | 9 +++++- .../Utility/MealIdToPriceConverter.cs | 8 +++-- .../CampusAppWP8/Utility/Utilities.cs | 29 ++++++++++++------- 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/App.xaml.cs b/CampusAppWP8/CampusAppWP8/App.xaml.cs index 81f3a560..65acbc71 100644 --- a/CampusAppWP8/CampusAppWP8/App.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/App.xaml.cs @@ -171,11 +171,18 @@ namespace CampusAppWP8 if (Settings.AppSetting.GeoWatchEnable) { - Thread thread = new Thread(new ThreadStart(Utilities.DetermineAndStoreCurrentPositionForce)); + Thread thread = new Thread(new ThreadStart(this.PositionThread)); thread.Start(); } } + /// Position thread. + /// Stubbfel, 18.11.2013. + private void PositionThread() + { + Utilities.DetermineAndStoreCurrentPositionForce(); + } + /// /// Load the usersettings from the store /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index e6daa710..27858c92 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -307,7 +307,7 @@ namespace CampusAppWP8.Pages if (result == MessageBoxResult.OK) { Settings.AppSetting.GeoWatchEnable = true; - Thread thread = new Thread(new ThreadStart(Utilities.DetermineAndStoreCurrentPosition)); + Thread thread = new Thread(new ThreadStart(this.PositionThread)); thread.Start(); } else @@ -316,6 +316,13 @@ namespace CampusAppWP8.Pages } } + /// Position thread. + /// Stubbfel, 18.11.2013. + private void PositionThread() + { + Utilities.DetermineAndStoreCurrentPosition(); + } + /// Event handler. Called by PintoStart for click events. /// Stubbfel, 15.10.2013. /// Caller of the function. diff --git a/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs b/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs index dad09bf1..73caa561 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs @@ -63,8 +63,11 @@ namespace CampusAppWP8.Utility if ((intVal >= 0) && (intParam >= 0)) { - PriceMealModel model = this.priceFeed.Model.GetCanteen(intParam).GetPriceMealModel(intVal); - retValue = AppResources.Students + ": " + model.PriceStudentStr + " € " + AppResources.Employees + ": " + model.PriceEmployeeStr + " € " + AppResources.Guests + ": " + model.PriceGuestStr + " €"; + if (this.priceFeed != null && this.priceFeed.Model != null) + { + PriceMealModel model = this.priceFeed.Model.GetCanteen(intParam).GetPriceMealModel(intVal); + retValue = AppResources.Students + ": " + model.PriceStudentStr + " € " + AppResources.Employees + ": " + model.PriceEmployeeStr + " € " + AppResources.Guests + ": " + model.PriceGuestStr + " €"; + } } return retValue; @@ -85,6 +88,7 @@ namespace CampusAppWP8.Utility /// Fiedler, 14.11.2013. private void PriceFeedIsReady() { + this.priceFeed.SaveData(); } /// Price feed is failed. diff --git a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs index 6a38a13a..f1df31c3 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs @@ -228,14 +228,14 @@ namespace CampusAppWP8.Utility /// Method determine the current position of the phone. /// Stubbfel, 14.10.2013. /// the position of the phone. - public static GeoPosition DetermineCurrentPosition() + public static GeoPosition DetermineCurrentPosition(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High) { if (!Settings.AppSetting.GeoWatchEnable) { return null; } - GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); + GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(accuracy); bool success = watcher.TryStart(false, TimeSpan.FromMilliseconds(10000)); GeoPosition geoposition = null; if (success) @@ -263,9 +263,9 @@ namespace CampusAppWP8.Utility /// Method determine and store the current position of the phone. /// Stubbfel, 14.10.2013. - public static void DetermineAndStoreCurrentPositionForce() + public static void DetermineAndStoreCurrentPositionForce(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High) { - GeoPosition geoposition = Utilities.DetermineCurrentPosition(); + GeoPosition geoposition = Utilities.DetermineCurrentPosition(accuracy); if (geoposition != null) { @@ -285,19 +285,19 @@ namespace CampusAppWP8.Utility /// Method determine and store the current position of the phone, in 15 min interval. /// /// Stubbfel, 14.10.2013. - public static void DetermineAndStoreCurrentPosition() + public static void DetermineAndStoreCurrentPosition(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High) { GeoMapPoint currentPoint = App.LoadFromAppState(Constants.GeoWatch_CurrentPositionPoint); if (currentPoint == null) { - Utilities.DetermineAndStoreCurrentPositionForce(); + Utilities.DetermineAndStoreCurrentPositionForce(accuracy); } else { DateTime expired = new DateTime(currentPoint.Timestamp).AddMinutes(15); if (DateTime.Now.Ticks > expired.Ticks) { - Utilities.DetermineAndStoreCurrentPositionForce(); + Utilities.DetermineAndStoreCurrentPositionForce(accuracy); } } } @@ -378,16 +378,25 @@ namespace CampusAppWP8.Utility /// Gets the determined campus. /// Stubbfel, 14.10.2013. /// The Campus. - public static Campus DetermineCampus() + public static Campus DetermineCampus(GeoPositionAccuracy accuracy = GeoPositionAccuracy.Default) { Campus result = Campus.UserSettingCampus; - Utilities.DetermineAndStoreCurrentPosition(); + + Utilities.DetermineAndStoreCurrentPosition(accuracy); MapPoint currentPoint = App.LoadFromAppState("CurrentGeoPoint"); if (currentPoint == null) { - return result; + if (accuracy.Equals(GeoPositionAccuracy.High)) + { + + return result; + } + else + { + return Utilities.DetermineCampus(GeoPositionAccuracy.High); + } } MapPoint tmpCampus = CampusMapPoints.NorthCB;