diff --git a/CampusAppWP8/CampusAppWP8/App.xaml.cs b/CampusAppWP8/CampusAppWP8/App.xaml.cs
index 9d7a8955..891f1230 100644
--- a/CampusAppWP8/CampusAppWP8/App.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/App.xaml.cs
@@ -1,15 +1,18 @@
-using System;
+using CampusAppWP8.File.Setting;
+using CampusAppWP8.Model.Setting;
+using CampusAppWP8.Resources;
+using CampusAppWP8.Utility;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+using System;
using System.Diagnostics;
-using System.Resources;
+using System.Globalization;
+using System.IO.IsolatedStorage;
+using System.Threading;
using System.Windows;
using System.Windows.Markup;
using System.Windows.Navigation;
-using Microsoft.Phone.Controls;
-using Microsoft.Phone.Shell;
-using CampusAppWP8.Resources;
-using System.IO.IsolatedStorage;
-using CampusAppWP8.File.Setting;
-using CampusAppWP8.Model.Setting;
+using Windows.Devices.Geolocation;
namespace CampusAppWP8
@@ -134,6 +137,9 @@ namespace CampusAppWP8
this.LoadSettings();
}
+ ///
+ /// Load the appsettings from the store
+ ///
private void LoadSettings()
{
UserProfilFile userFile;
@@ -147,7 +153,14 @@ namespace CampusAppWP8
{
this.UserSettingsLoaded();
}
+
+ Thread thread = new Thread(new ThreadStart(Utilities.DetermineAndStoreCurrentPosition));
+ thread.Start();
}
+
+ ///
+ /// Load the usersettings from the store
+ ///
private void UserSettingsLoaded()
{
if (Settings.UserProfil.Model == null)
@@ -161,6 +174,7 @@ namespace CampusAppWP8
private void Application_Activated(object sender, ActivatedEventArgs e)
{
this.LoadSettings();
+
}
// Code, der ausgeführt werden soll, wenn die Anwendung deaktiviert wird (in den Hintergrund gebracht wird)
diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
index fae411f5..c2bee0e0 100644
--- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
+++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
@@ -424,10 +424,25 @@
+
+ ..\packages\BuiltToRoam.Core.Agent.1.0.1.5\lib\sl4-wp71\AsyncCtpLibrary_Phone.dll
+
+
+ ..\packages\BuiltToRoam.Core.Agent.1.0.1.5\lib\sl4-wp71\BuiltToRoam.Core.Agent.dll
+
+
+ ..\packages\BuiltToRoam.GeoWatcher.1.0.1.5\lib\sl4-wp71\BuiltToRoam.GeoWatcher.dll
+
..\packages\WPtoolkit.4.2012.10.30\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll
+
+ ..\packages\Newtonsoft.Json.4.5.11\lib\sl4-windowsphone71\Newtonsoft.Json.dll
+
+
+ ..\packages\SharpZipLib-WP7.0.86.0.518\lib\sl4-windowsphone71\SharpZipLib.WindowsPhone7.dll
+
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
index 6100b8ae..a28f78f2 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
@@ -17,6 +17,7 @@ namespace CampusAppWP8.Pages.Mensa
using Windows.Devices.Geolocation;
using System.Threading.Tasks;
using System.Globalization;
+ using CampusAppWP8.Utility;
///
/// Class for the MensaPage
@@ -79,34 +80,16 @@ namespace CampusAppWP8.Pages.Mensa
}
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
- //this.feed.LoadData();
+ this.feed.LoadData();
this.determinCurrentPosition();
}
- private async void determinCurrentPosition()
+ private void determinCurrentPosition()
{
- Geolocator geolocator = new Geolocator();
- geolocator.DesiredAccuracyInMeters = 50;
- string lat = string.Empty;
- string log = string.Empty;
- try
- {
- Geoposition geoposition = await geolocator.GetGeopositionAsync(
- maximumAge: TimeSpan.FromMinutes(15),
- timeout: TimeSpan.FromSeconds(10)
- );
+ Utilities.DetermineAndStoreCurrentPosition();
+ string lat = App.LoadFromAppState("CurrentPosition.Lat");
+ string log = App.LoadFromAppState("CurrentPosition.Long");
- lat = geoposition.Coordinate.Latitude.ToString(CultureInfo.InvariantCulture);
- log = geoposition.Coordinate.Longitude.ToString(CultureInfo.InvariantCulture);
- }
- catch (Exception ex)
- {
- if ((uint)ex.HResult == 0x80004004)
- {
-
- }
-
- }
this.spsApi = new SpsApi();
this.spsApi.onLoaded += new SpsApi.OnLoaded(this.ApiIsReady);
List parameterList = new List();
diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
index c6f84e3c..79325c14 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
@@ -14,6 +14,11 @@ namespace CampusAppWP8.Pages
using CampusAppWP8.Resources;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
+ using Windows.Devices.Geolocation;
+ using CampusAppWP8.Utility;
+ using System.Globalization;
+ using System.Threading.Tasks;
+ using System.Device.Location;
///
/// Class for the StartPage
@@ -25,14 +30,14 @@ namespace CampusAppWP8.Pages
///
public StartPage()
{
- this.InitializeComponent();
+ this.InitializeComponent();
ApplicationBarMenuItem menuItem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem;
if (menuItem1 != null)
{
menuItem1.Text = AppResources.Setting_UserProfilAppBarTitle;
}
}
-
+
///
/// Method handle OrientationPage
///
@@ -78,12 +83,14 @@ namespace CampusAppWP8.Pages
ContentPanel.RowDefinitions[3].Height = new GridLength(1,GridUnitType.Star);
ContentPanel.ColumnDefinitions[3].Width = GridLength.Auto;
}
+
}
private void ApplicationBarMenuItem_Click(object sender, EventArgs e)
{
- Uri url = new Uri(Constants.PathSetting_User, UriKind.Relative);
- NavigationService.Navigate(url);
+ //Uri url = new Uri(Constants.PathSetting_User, UriKind.Relative);
+ //NavigationService.Navigate(url);
+ Utilities.DetermineAndStoreCurrentPosition();
}
private void ApplicationBar_StateChanged(object sender, ApplicationBarStateChangedEventArgs e)
diff --git a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
index 243929ed..afb542e1 100644
--- a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
+++ b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
@@ -9,6 +9,8 @@ namespace CampusAppWP8.Utility
{
using System;
using System.Collections.Generic;
+ using System.Device.Location;
+ using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
@@ -191,5 +193,71 @@ namespace CampusAppWP8.Utility
return retValue;
}
+
+ ///
+ /// Method determine the current position of the phone
+ ///
+ /// accuracy of the position in meters
+ /// the position of the phone
+ public static GeoPosition DetermineCurrentPosition(uint accuracy = 50)
+ {
+ //Utilities.DetermineAndStoreCurrentPosition();
+ GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
+ bool success = watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
+ GeoPosition geoposition = null;
+ if (success)
+ {
+ geoposition = watcher.Position;
+ }
+ watcher.Stop();
+ return geoposition;
+ }
+
+ ///
+ /// Method determine and store the current position of the phone
+ ///
+ public static void DetermineAndStoreCurrentPositionForce()
+ {
+ GeoPosition geoposition = Utilities.DetermineCurrentPosition();
+ if (geoposition != null)
+ {
+ string lat = geoposition.Location.Latitude.ToString(CultureInfo.InvariantCulture);
+ string log = geoposition.Location.Longitude.ToString(CultureInfo.InvariantCulture);
+ string time = geoposition.Timestamp.Ticks.ToString();
+ App.SaveToAppState("CurrentPosition.Lat", lat);
+ App.SaveToAppState("CurrentPosition.Long", log);
+ App.SaveToAppState("CurrentPosition.Time", time);
+ }
+ }
+
+ ///
+ /// Method determine and store the current position of the phone, in 15 min intcavv
+ ///
+ public static void DetermineAndStoreCurrentPosition()
+ {
+ string lat = App.LoadFromAppState("CurrentPosition.Lat");
+ string log = App.LoadFromAppState("CurrentPosition.Long");
+ string time = App.LoadFromAppState("CurrentPosition.Time");
+ if (lat == null || log == null || time == null || lat.Equals(string.Empty) || log.Equals(string.Empty) || time.Equals(string.Empty))
+ {
+ Utilities.DetermineAndStoreCurrentPositionForce();
+ }
+ else
+ {
+ long longTime = 0;
+ if(!long.TryParse(time, out longTime))
+ {
+ return;
+ }
+
+ DateTime expired = new DateTime(longTime).AddMinutes(15);
+ if (DateTime.Now.Ticks > expired.Ticks)
+ {
+
+ Utilities.DetermineAndStoreCurrentPositionForce();
+
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/CampusAppWP8/CampusAppWP8/packages.config b/CampusAppWP8/CampusAppWP8/packages.config
index a6c4d07d..dbbe5283 100644
--- a/CampusAppWP8/CampusAppWP8/packages.config
+++ b/CampusAppWP8/CampusAppWP8/packages.config
@@ -1,4 +1,8 @@
+
+
+
+
\ No newline at end of file