diff --git a/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursModel.cs b/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursModel.cs
index 530d9220..59b7caa7 100644
--- a/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursModel.cs
+++ b/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursModel.cs
@@ -59,7 +59,7 @@ namespace CampusAppWP8.Model.Openinghours
}
///
- /// Gets the Institutions.
+ /// Gets or sets the Institutions.
///
[XmlArray("data")]
[XmlArrayItem("institution")]
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs
index 2647fdf7..533a6f04 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs
@@ -11,6 +11,7 @@ namespace CampusAppWP8.Pages.Departments
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
+ using CampusAppWP8.Model.Departments;
using CampusAppWP8.Resources;
using Microsoft.Phone.Controls;
@@ -24,12 +25,24 @@ namespace CampusAppWP8.Pages.Departments
///
private FrameworkElement lastClickedBtn = null;
+ ///
+ /// For checking if instance is back from tombstone.
+ ///
+ private bool isNewInstance = false;
+
+ ///
+ /// For checking if the source of the list is set.
+ ///
+ private bool isSourceSet = false;
+
///
/// Initializes a new instance of the class.
///
public DepartmentFavoritePage()
{
this.InitializeComponent();
+
+ this.isNewInstance = true;
}
///
@@ -39,7 +52,48 @@ namespace CampusAppWP8.Pages.Departments
/// event args
protected override void OnNavigatedTo(NavigationEventArgs e)
{
- this.ContentPanel.ItemsSource = DepartmentIndexPage.GetFavoriteFeed().GetModel().Faculties[0].Chairs;
+ base.OnNavigatedTo(e);
+
+ if (this.isNewInstance)
+ {
+ if ((DepartmentIndexPage.FavoriteFeed == null) || (DepartmentIndexPage.FavoriteFeed.GetModel() == null))
+ {
+ DepartmentModel tempModel = null;
+
+ if ((tempModel = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_DepartmentFavoriteModel)) != null)
+ {
+ if (DepartmentIndexPage.FavoriteFeed == null)
+ {
+ DepartmentIndexPage.FavoriteFeed = new Feed.Departments.DepartmentFavoriteFeed(false);
+ }
+
+ DepartmentIndexPage.FavoriteFeed.Model = tempModel;
+ this.isSourceSet = false;
+ }
+ }
+
+ this.isNewInstance = false;
+ }
+
+ if (this.isSourceSet == false)
+ {
+ this.ContentPanel.ItemsSource = DepartmentIndexPage.GetFavoriteFeed().GetModel().Faculties[0].Chairs;
+ this.isSourceSet = true;
+ }
+ }
+
+ ///
+ /// Override the OnNavigatedFrom function.
+ ///
+ /// event args
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ base.OnNavigatedFrom(e);
+
+ if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
+ {
+ App.SaveToIsolatedStorage(Constants.IsolatedStorage_DepartmentFavoriteModel, DepartmentIndexPage.FavoriteFeed.GetModel());
+ }
}
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs
index eab525bb..13d1848c 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs
@@ -55,6 +55,44 @@ namespace CampusAppWP8.Pages.Departments
DepartmentIndexPage.favorite.LoadData();
}
+ ///
+ /// Gets or sets the feed object.
+ ///
+ public static DepartmentFeed Feed
+ {
+ get
+ {
+ return DepartmentIndexPage.feed;
+ }
+
+ set
+ {
+ if (value != DepartmentIndexPage.feed)
+ {
+ DepartmentIndexPage.feed = value;
+ }
+ }
+ }
+
+ ///
+ /// Gets or sets the favorite feed object.
+ ///
+ public static DepartmentFavoriteFeed FavoriteFeed
+ {
+ get
+ {
+ return DepartmentIndexPage.favorite;
+ }
+
+ set
+ {
+ if (DepartmentIndexPage.favorite != value)
+ {
+ DepartmentIndexPage.favorite = value;
+ }
+ }
+ }
+
///
/// Return the feed object of the departments.
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs
index 17af2974..d0517b3a 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs
@@ -12,6 +12,7 @@ namespace CampusAppWP8.Pages.Departments
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
+ using CampusAppWP8.Model.Departments;
using CampusAppWP8.Resources;
using Microsoft.Phone.Controls;
@@ -30,12 +31,19 @@ namespace CampusAppWP8.Pages.Departments
///
private FrameworkElement lastClickedBtn = null;
+ ///
+ /// For checking of the instance is back from tombstone.
+ ///
+ private bool isNewInstance = false;
+
///
/// Initializes a new instance of the class.
///
public DepartmentPage()
{
this.InitializeComponent();
+
+ this.isNewInstance = true;
}
///
@@ -47,6 +55,27 @@ namespace CampusAppWP8.Pages.Departments
{
base.OnNavigatedTo(e);
+ if (this.isNewInstance)
+ {
+ if ((DepartmentIndexPage.Feed == null) || (DepartmentIndexPage.Feed.GetModel() == null))
+ {
+ DepartmentModel tempModel = null;
+
+ if ((tempModel = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_DepartmentModel)) != null)
+ {
+ if (DepartmentIndexPage.Feed == null)
+ {
+ DepartmentIndexPage.Feed = new Feed.Departments.DepartmentFeed(false);
+ }
+
+ DepartmentIndexPage.Feed.Model = tempModel;
+ this.isSourceSet = false;
+ }
+ }
+
+ this.isNewInstance = false;
+ }
+
if (this.isSourceSet == false)
{
this.DepartmentPivot.ItemsSource = DepartmentIndexPage.GetFeed().GetModel().Faculties;
@@ -72,6 +101,20 @@ namespace CampusAppWP8.Pages.Departments
}
}
+ ///
+ /// Override the OnNavigatedFrom function.
+ ///
+ /// event args
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ base.OnNavigatedFrom(e);
+
+ if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
+ {
+ App.SaveToIsolatedStorage(Constants.IsolatedStorage_DepartmentModel, DepartmentIndexPage.Feed.GetModel());
+ }
+ }
+
///
/// On orientation changed.
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
index ea0fe842..c215d227 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
@@ -8,11 +8,9 @@
namespace CampusAppWP8.Pages.Events
{
using System;
- using System.Linq;
using System.Windows.Navigation;
using CampusAppWP8.Feed.Events;
using CampusAppWP8.Resources;
- using CampusAppWP8.Utility;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
@@ -48,6 +46,25 @@ namespace CampusAppWP8.Pages.Events
EventIndexPage.eventFeed.LoadData();
}
+ ///
+ /// Gets or sets the feed object.
+ ///
+ public static EventFeed Feed
+ {
+ get
+ {
+ return EventIndexPage.eventFeed;
+ }
+
+ set
+ {
+ if (EventIndexPage.eventFeed != value)
+ {
+ EventIndexPage.eventFeed = value;
+ }
+ }
+ }
+
///
/// Return the eventFeed object.
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs
index 983da532..78a5493e 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs
@@ -13,11 +13,12 @@ namespace CampusAppWP8.Pages.Events
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
+ using CampusAppWP8.Model.RSS;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
-
+
///
/// EventPage, where every event fees has his own PivotItem.
///
@@ -33,6 +34,11 @@ namespace CampusAppWP8.Pages.Events
///
private int lastSelectedIndex = -1;
+ ///
+ /// For checking if the instance is back from tombstone.
+ ///
+ private bool isNewInstance = false;
+
///
/// Initializes a new instance of the class.
///
@@ -45,6 +51,8 @@ namespace CampusAppWP8.Pages.Events
linkBtn.Text = AppResources.NewsLinkBtn;
linkBtn.Click += new EventHandler(this.EventLink_Click);
ApplicationBar.Buttons.Add(linkBtn);
+
+ this.isNewInstance = true;
}
///
@@ -57,6 +65,27 @@ namespace CampusAppWP8.Pages.Events
{
base.OnNavigatedTo(e);
+ if (this.isNewInstance)
+ {
+ if ((EventIndexPage.GetEventFeed() == null) || (EventIndexPage.GetEventFeed().GetModel() == null))
+ {
+ RSSViewModel tempModel = null;
+
+ if ((tempModel = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_EventRSSModel)) != null)
+ {
+ if (EventIndexPage.GetEventFeed() == null)
+ {
+ EventIndexPage.Feed = new Feed.Events.EventFeed(false);
+ }
+
+ EventIndexPage.Feed.Model = tempModel;
+ this.isSourceSet = false;
+ }
+ }
+
+ this.isNewInstance = false;
+ }
+
// Set pivotitem Source
if (this.isSourceSet == false)
{
@@ -90,6 +119,20 @@ namespace CampusAppWP8.Pages.Events
}
}
+ ///
+ /// Override the OnNavigatedFrom function.
+ ///
+ /// event args
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ base.OnNavigatedFrom(e);
+
+ if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
+ {
+ App.SaveToIsolatedStorage(Constants.IsolatedStorage_EventRSSModel, EventIndexPage.GetEventFeed().GetModel());
+ }
+ }
+
///
/// Called when the index of the selected PivotItem is changed.
/// Set the text Grid to visible and the WebBrowser to collapsed.
diff --git a/CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
index 36f6b63c..12232368 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
@@ -46,6 +46,25 @@ namespace CampusAppWP8.Pages.News
NewsIndexPage.newsFeed.LoadData();
}
+ ///
+ /// Gets or sets the feed object.
+ ///
+ public static NewsFeed Feed
+ {
+ get
+ {
+ return NewsIndexPage.newsFeed;
+ }
+
+ set
+ {
+ if (NewsIndexPage.newsFeed != value)
+ {
+ NewsIndexPage.newsFeed = value;
+ }
+ }
+ }
+
///
/// Return the newsFeed object.
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/News/NewsPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/News/NewsPage.xaml.cs
index 7bcd863e..089a71c6 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/News/NewsPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/News/NewsPage.xaml.cs
@@ -13,6 +13,7 @@ namespace CampusAppWP8.Pages.News
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
+ using CampusAppWP8.Model.RSS;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using Microsoft.Phone.Controls;
@@ -33,6 +34,11 @@ namespace CampusAppWP8.Pages.News
///
private int lastSelectedIndex = -1;
+ ///
+ /// For checking if the instance is back from tombstone.
+ ///
+ private bool isNewInstance = false;
+
///
/// Initializes a new instance of the class.
///
@@ -45,6 +51,8 @@ namespace CampusAppWP8.Pages.News
linkBtn.Text = AppResources.NewsLinkBtn;
linkBtn.Click += new EventHandler(this.NewsLink_Click);
ApplicationBar.Buttons.Add(linkBtn);
+
+ this.isNewInstance = true;
}
///
@@ -56,7 +64,28 @@ namespace CampusAppWP8.Pages.News
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
-
+
+ if (this.isNewInstance)
+ {
+ if ((NewsIndexPage.Feed == null) || (NewsIndexPage.Feed.GetModel() == null))
+ {
+ RSSViewModel tempModel = null;
+
+ if ((tempModel = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_NewsRSSModel)) != null)
+ {
+ if (NewsIndexPage.Feed == null)
+ {
+ NewsIndexPage.Feed = new Feed.News.NewsFeed(false);
+ }
+
+ NewsIndexPage.Feed.Model = tempModel;
+ this.isSourceSet = false;
+ }
+ }
+
+ this.isNewInstance = false;
+ }
+
// Set pivotitem Source
if (this.isSourceSet == false)
{
@@ -83,6 +112,20 @@ namespace CampusAppWP8.Pages.News
}
}
+ ///
+ /// Overrides the OnNavigatedFrom function.
+ ///
+ /// event args
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ base.OnNavigatedFrom(e);
+
+ if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
+ {
+ App.SaveToIsolatedStorage(Constants.IsolatedStorage_NewsRSSModel, NewsIndexPage.GetNewsFeed().GetModel());
+ }
+ }
+
///
/// Called when the index of the selected PivotItem is changed.
/// Set the text Grid to visible and the WebBrowser to collapsed.
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs
index b16206ed..975de1f7 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs
@@ -7,11 +7,13 @@
//----------------------------------------------------------------------
namespace CampusAppWP8.Pages.Openinghours
{
+ using System;
using System.Windows.Navigation;
using CampusAppWP8.Feed.Openinghours;
+ using CampusAppWP8.Model.Openinghours;
+ using CampusAppWP8.Resources;
using Microsoft.Phone.Controls;
- using System;
-
+
///
/// Opening hours page.
///
@@ -24,6 +26,11 @@ namespace CampusAppWP8.Pages.Openinghours
///
private OpeninghoursFeed feed = null;
+ ///
+ /// for checking if the instance is new or a tombstone.
+ ///
+ private bool isNewInstance = false;
+
#endregion
#region Constructor
@@ -41,6 +48,8 @@ namespace CampusAppWP8.Pages.Openinghours
this.feed.onLoaded += new OpeninghoursFeed.OnLoaded(this.FeedIsReady);
this.feed.LoadData();
}
+
+ this.isNewInstance = true;
}
#endregion
@@ -62,6 +71,21 @@ namespace CampusAppWP8.Pages.Openinghours
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
}
*/
+ if (this.isNewInstance)
+ {
+ if ((this.feed == null) || (this.feed.GetModel() == null))
+ {
+ OpeninghoursModel tempModel = null;
+
+ if ((tempModel = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_OpeninghoursModel)) != null)
+ {
+ this.feed.Model = tempModel;
+ this.FeedIsReady();
+ }
+ }
+
+ this.isNewInstance = false;
+ }
}
///
@@ -71,6 +95,11 @@ namespace CampusAppWP8.Pages.Openinghours
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
this.feed.SaveData();
+
+ if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
+ {
+ App.SaveToIsolatedStorage(Constants.IsolatedStorage_OpeninghoursModel, this.feed.GetModel());
+ }
}
// protected
@@ -82,18 +111,11 @@ namespace CampusAppWP8.Pages.Openinghours
/// Will be execute if the feed is ready.
///
private void FeedIsReady()
- {
- this.SetupInstitutionList();
- //this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed;
- //this.feed.SaveData(true);
- }
-
- ///
- /// Setup the institution list.
- ///
- private void SetupInstitutionList()
{
this.InstitutionPanel.ItemsSource = this.feed.Model.Institutions;
+
+ // this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed;
+ // this.feed.SaveData(true);
}
///
@@ -104,11 +126,13 @@ namespace CampusAppWP8.Pages.Openinghours
/// event args
private void OpenHoursForceUpdate_Click(object sender, EventArgs e)
{
- //this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
+ // this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
this.feed.ForceWebUpdate();
}
+
// private
#endregion
+
// Method
#endregion
}
diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
index e79b1eff..03c0063d 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
+++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
@@ -150,6 +150,24 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_DepartmentModel ähnelt.
+ ///
+ public static string IsolatedStorage_DepartmentModel {
+ get {
+ return ResourceManager.GetString("IsolatedStorage_DepartmentModel", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_EventRSSModel ähnelt.
+ ///
+ public static string IsolatedStorage_EventRSSModel {
+ get {
+ return ResourceManager.GetString("IsolatedStorage_EventRSSModel", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die LectureModel ähnelt.
///
@@ -168,6 +186,24 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_NewsRSSModel ähnelt.
+ ///
+ public static string IsolatedStorage_NewsRSSModel {
+ get {
+ return ResourceManager.GetString("IsolatedStorage_NewsRSSModel", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_OpeninghoursModel ähnelt.
+ ///
+ public static string IsolatedStorage_OpeninghoursModel {
+ get {
+ return ResourceManager.GetString("IsolatedStorage_OpeninghoursModel", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die lsf_auszug ähnelt.
///
diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
index 2e3354f7..af5239ef 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
+++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
@@ -251,9 +251,6 @@
MensaFeed.xml
-
-
- EventsFeed.xml
EventsFeed.xml
@@ -276,4 +273,16 @@
http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_aktuelles.php
+
+ IsolatedStorage_DepartmentModel
+
+
+ IsolatedStorage_EventRSSModel
+
+
+ IsolatedStorage_NewsRSSModel
+
+
+ IsolatedStorage_OpeninghoursModel
+
\ No newline at end of file