From 72c1bbdcfc8daf911a81603cfece16400fcef3ce Mon Sep 17 00:00:00 2001 From: Claudiu Farcas Date: Wed, 13 Apr 2011 06:52:25 +0300 Subject: [PATCH] Improve images caching Improve error reporting Implemented IsolatedStorageExplorer feature --- .../Library/IsolatedStorageExplorer.dll | Bin 0 -> 55296 bytes .../WPImageCaching/ImageDownloadHelper.cs | 51 +++++++++--- main/MyFriendsAround.WP7/App.xaml.cs | 52 ++++++++++-- .../MyFriendsAround.WP7.csproj | 3 + .../Service/ServiceAgent.cs | 12 +-- .../ViewModel/MainViewModel.cs | 74 ++++++++++++------ main/MyFriendsAround.sln | 2 - 7 files changed, 144 insertions(+), 50 deletions(-) create mode 100644 main/Libs/WP7 Isolated Storage Explorer/Library/IsolatedStorageExplorer.dll diff --git a/main/Libs/WP7 Isolated Storage Explorer/Library/IsolatedStorageExplorer.dll b/main/Libs/WP7 Isolated Storage Explorer/Library/IsolatedStorageExplorer.dll new file mode 100644 index 0000000000000000000000000000000000000000..516d4c813fec9bf59be2519c720f0e46ec8295f7 GIT binary patch literal 55296 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 BM=k&W literal 0 HcmV?d00001 diff --git a/main/Libs/WPImageCaching/ImageDownloadHelper.cs b/main/Libs/WPImageCaching/ImageDownloadHelper.cs index f06092e..8b93d77 100644 --- a/main/Libs/WPImageCaching/ImageDownloadHelper.cs +++ b/main/Libs/WPImageCaching/ImageDownloadHelper.cs @@ -59,10 +59,17 @@ namespace WPImageCaching try { var response = (HttpWebResponse)transfer.WebRequest.EndGetResponse(result); + string newKey = transfer.WebRequest.RequestUri.ToString(); //Bild wurde nicht geƤndert seit dem letzten Aufruf if (response.StatusCode == HttpStatusCode.NotModified) { + if (ImageCache.imageCache.ContainsKey(newKey)) + { + ImageCache.imageCache[newKey].Expiration = (response.Headers["Expires"] != null) ? DateTime.Parse(response.Headers["Expires"]) : DateTime.Now.AddDays(EXPIRATIONDAYS); + //save updated + ImageCache.SaveCachedImageInfo(); + } Deployment.Current.Dispatcher.BeginInvoke(() => { using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) @@ -80,22 +87,40 @@ namespace WPImageCaching } lock (ImageCache._lock) { - string newKey = transfer.WebRequest.RequestUri.ToString(); if (ImageCache.imageCache.ContainsKey(newKey)) { - //Setzen des Bildes - Deployment.Current.Dispatcher.BeginInvoke( - () => - { - using (IsolatedStorageFile ifs = IsolatedStorageFile.GetUserStoreForApplication()) - { - using (IsolatedStorageFileStream fs = ifs.OpenFile(transfer.Item.LocalFilename, FileMode.Open)) + bool isExpired = (DateTime.Compare(DateTime.Now, ImageCache.imageCache[newKey].Expiration) >= 0); + if (!isExpired) + { + //Setzen des Bildes + Deployment.Current.Dispatcher.BeginInvoke( + () => { - transfer.Image.SetSource(fs); - } - } - }); - return; + using ( + IsolatedStorageFile ifs = IsolatedStorageFile.GetUserStoreForApplication()) + { + using ( + IsolatedStorageFileStream fs = ifs.OpenFile( + transfer.Item.LocalFilename, FileMode.Open)) + { + transfer.Image.SetSource(fs); + } + } + }); + return; + } + else + { + if (IsolatedStorageFile.GetUserStoreForApplication().FileExists(ImageCache.imageCache[newKey].LocalFilename)) + { + //remove old image + IsolatedStorageFile.GetUserStoreForApplication().DeleteFile(ImageCache.imageCache[newKey].LocalFilename); + // + ImageCache.imageCache.Remove(newKey); + //Speichern der Bildinformationen + ImageCache.SaveCachedImageInfo(); + } + } } //Hat das Bild eine neue ID? if (response.Headers["ETag"] != null) diff --git a/main/MyFriendsAround.WP7/App.xaml.cs b/main/MyFriendsAround.WP7/App.xaml.cs index 8862abe..faa8c34 100644 --- a/main/MyFriendsAround.WP7/App.xaml.cs +++ b/main/MyFriendsAround.WP7/App.xaml.cs @@ -16,6 +16,7 @@ using System.Windows.Navigation; using System.Windows.Shapes; using Microsoft.Phone; using Microsoft.Phone.Controls; +using Microsoft.Phone.Net.NetworkInformation; using Microsoft.Phone.Shell; using MyFriendsAround.WP7.Model; using MyFriendsAround.WP7.ViewModel; @@ -53,6 +54,21 @@ namespace MyFriendsAround.WP7 //register ViewModelLocator Container.Instance.RegisterInstance(typeof(ViewModelLocator), "ViewModelLocator"); Container.Instance.RegisterInstance(new LocationService(), "LocationService"); + + NetworkDetector.Instance.OnNetworkOFF += new EventHandler(Instance_OnNetworkOFF); + NetworkDetector.Instance.OnNetworkON += new EventHandler(Instance_OnNetworkON); + } + + void Instance_OnNetworkON(object sender, NetworkAvailableEventArgs e) + { + ViewModelLocator locator = Container.Instance.Resolve("ViewModelLocator"); + locator.Main.IsBusy = true; + } + + void Instance_OnNetworkOFF(object sender, NetworkAvailableEventArgs e) + { + ViewModelLocator locator = Container.Instance.Resolve("ViewModelLocator"); + locator.Main.IsBusy = false; } @@ -68,6 +84,9 @@ namespace MyFriendsAround.WP7 // This code will not execute when the application is reactivated private void Application_Launching(object sender, LaunchingEventArgs e) { +#if GPS_EMULATOR + IsolatedStorageExplorer.Explorer.Start("localhost"); +#endif DispatcherHelper.Initialize(); LoadModel(); } @@ -76,6 +95,9 @@ namespace MyFriendsAround.WP7 // This code will not execute when the application is first launched private void Application_Activated(object sender, ActivatedEventArgs e) { +#if GPS_EMULATOR + IsolatedStorageExplorer.Explorer.RestoreFromTombstone(); +#endif DispatcherHelper.Initialize(); LoadModel(); } @@ -104,15 +126,16 @@ namespace MyFriendsAround.WP7 MainViewModel mainModel = this.RetrieveFromIsolatedStorage(); if (mainModel != null) { - mainModel.IsBusy = false; - mainModel.GpsLocation = Location.Unknown; - mainModel.GpsStatus = GeoPositionStatus.NoData; Container.Instance.RegisterInstance(mainModel, Constants.VM_MAIN); } else { Container.Instance.RegisterInstance(new MainViewModel(), Constants.VM_MAIN); } + Container.Instance.Resolve("ViewModelLocator").Main.GpsLocation = Location.Unknown; + Container.Instance.Resolve("ViewModelLocator").Main.GpsStatus = GeoPositionStatus.NoData; + Container.Instance.Resolve("ViewModelLocator").Main.RefreshMyLocationPushPins(); + Container.Instance.Resolve("ViewModelLocator").Main.IsBusy = false; //(NetworkDetector.Instance.GetCurrentNetworkType() == NetworkInterfaceType.None) || !NetworkDetector.Instance.GetZuneStatus(); // SettingsViewModel settingsModel = this.RetrieveFromIsolatedStorage(); if (settingsModel != null) @@ -138,7 +161,14 @@ namespace MyFriendsAround.WP7 void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e) { //LittleWatson.ReportException(e.Exception, string.Empty); - ShowException(e.Exception); + if (e.Exception is WebException) + { + MessageBox.Show(e.Exception.Message); + } + else + { + ShowException(e.Exception); + } if (System.Diagnostics.Debugger.IsAttached) { @@ -150,8 +180,20 @@ namespace MyFriendsAround.WP7 // Code to execute on Unhandled Exceptions private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) { + #region Error Logging + //LittleWatson.ReportException(e.ExceptionObject, string.Empty); - ShowException(e.ExceptionObject); + if (e.ExceptionObject is WebException) + { + MessageBox.Show(e.ExceptionObject.Message); + } + else + { + ShowException(e.ExceptionObject); + } + + #endregion + if (System.Diagnostics.Debugger.IsAttached) { diff --git a/main/MyFriendsAround.WP7/MyFriendsAround.WP7.csproj b/main/MyFriendsAround.WP7/MyFriendsAround.WP7.csproj index f1a30fe..8c41e3b 100644 --- a/main/MyFriendsAround.WP7/MyFriendsAround.WP7.csproj +++ b/main/MyFriendsAround.WP7/MyFriendsAround.WP7.csproj @@ -102,6 +102,9 @@ ..\Libs\Hammock-Binaries\.NET 4.0\Windows Phone 7\ICSharpCode.SharpZipLib.WindowsPhone.dll + + ..\Libs\WP7 Isolated Storage Explorer\Library\IsolatedStorageExplorer.dll + ..\packages\Hammock.1.2.1\lib\sl4\Microsoft.CSharp.dll diff --git a/main/MyFriendsAround.WP7/Service/ServiceAgent.cs b/main/MyFriendsAround.WP7/Service/ServiceAgent.cs index f4b7102..c09ca6a 100644 --- a/main/MyFriendsAround.WP7/Service/ServiceAgent.cs +++ b/main/MyFriendsAround.WP7/Service/ServiceAgent.cs @@ -52,7 +52,7 @@ namespace MyFriendsAround.WP7.Service } catch (Exception ex) { - friendscallback.Invoke(null, new FriendsListEventArgs() { Friends = null, Error = ex }); + friendscallback.Invoke(null, new FriendsListEventArgs() { Friends = null, Error = new WebException("Communication Error!", ex) }); } } @@ -66,7 +66,7 @@ namespace MyFriendsAround.WP7.Service } else { - friendscallback.Invoke(null, new FriendsListEventArgs() { Friends = null, Error = new Exception("Communication Error!") }); + friendscallback.Invoke(null, new FriendsListEventArgs() { Friends = null, Error = new WebException("Communication Error!") }); } } @@ -102,7 +102,7 @@ namespace MyFriendsAround.WP7.Service } catch (Exception ex) { - publishlocationcallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = ex }); + publishlocationcallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!", ex) }); } } @@ -116,7 +116,7 @@ namespace MyFriendsAround.WP7.Service } else { - publishlocationcallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new Exception("Communication Error!")}); + publishlocationcallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!") }); } } @@ -155,7 +155,7 @@ namespace MyFriendsAround.WP7.Service } catch (Exception ex) { - publishmypicturecallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = ex }); + publishmypicturecallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!", ex) }); } } @@ -169,7 +169,7 @@ namespace MyFriendsAround.WP7.Service } else { - publishmypicturecallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new Exception("Communication Error!") }); + publishmypicturecallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!") }); } } diff --git a/main/MyFriendsAround.WP7/ViewModel/MainViewModel.cs b/main/MyFriendsAround.WP7/ViewModel/MainViewModel.cs index 56b9458..3cc773b 100644 --- a/main/MyFriendsAround.WP7/ViewModel/MainViewModel.cs +++ b/main/MyFriendsAround.WP7/ViewModel/MainViewModel.cs @@ -677,29 +677,34 @@ namespace MyFriendsAround.WP7.ViewModel if (e.Location != Location.Unknown) { GpsLocation = e.Location; - - if (LastBoundRect != null && LastBoundRect.Intersects(new LocationRect( - new GeoCoordinate(GpsLocation.Latitude, GpsLocation.Longitude), - .5, - .5))) - { - ObservableCollection _mynewlocation = new ObservableCollection(); - _mynewlocation.Add(new PushPinModel() - { - Location = new GeoCoordinate(GpsLocation.Latitude, GpsLocation.Longitude), - PinUserName = "Me" - }); - MyLocationPushPins = _mynewlocation; - } - else - { - MyLocationPushPins = new ObservableCollection(); - } + RefreshMyLocationPushPins(); } System.Diagnostics.Debug.WriteLine("watcher_PositionChanged + " + DateTime.Now.Second); } + public void RefreshMyLocationPushPins() + { + if (LastBoundRect != null && LastBoundRect.Intersects(new LocationRect( + new GeoCoordinate(GpsLocation.Latitude, GpsLocation.Longitude), + .5, + .5))) + { + ObservableCollection _mynewlocation = new ObservableCollection(); + _mynewlocation.Add(new PushPinModel() + { + Location = new GeoCoordinate(GpsLocation.Latitude, GpsLocation.Longitude), + PinUserName = "Me" + }); + MyLocationPushPins = _mynewlocation; + } + else + { + MyLocationPushPins = new ObservableCollection(); + } + } + + private void ShowMyLocation() { // @@ -936,8 +941,15 @@ namespace MyFriendsAround.WP7.ViewModel DispatcherHelper.CheckBeginInvokeOnUI(() => { IsBusy = false; - var exception = new ExceptionPrompt(); - exception.Show(args.Error); + if (args.Error is WebException) + { + MessageBox.Show(args.Error.Message); + } + else + { + var exception = new ExceptionPrompt(); + exception.Show(args.Error); + } } ); } @@ -950,8 +962,15 @@ namespace MyFriendsAround.WP7.ViewModel DispatcherHelper.CheckBeginInvokeOnUI(() => { IsBusy = false; - var exception = new ExceptionPrompt(); - exception.Show(args.Error); + if (args.Error is WebException) + { + MessageBox.Show(args.Error.Message); + } + else + { + var exception = new ExceptionPrompt(); + exception.Show(args.Error); + } }); } else @@ -997,8 +1016,15 @@ namespace MyFriendsAround.WP7.ViewModel DispatcherHelper.CheckBeginInvokeOnUI(() => { IsBusy = false; - var exception = new ExceptionPrompt(); - exception.Show(args.Error); + if (args.Error is WebException) + { + MessageBox.Show(args.Error.Message); + } + else + { + var exception = new ExceptionPrompt(); + exception.Show(args.Error); + } }); } else diff --git a/main/MyFriendsAround.sln b/main/MyFriendsAround.sln index cbaabc0..dfbfc93 100644 --- a/main/MyFriendsAround.sln +++ b/main/MyFriendsAround.sln @@ -113,7 +113,6 @@ Global {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.Debug|Any CPU.Build.0 = Debug|Any CPU {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.Debug|x86.ActiveCfg = Debug|Any CPU {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.GPS_EMULATOR|Any CPU.ActiveCfg = GPS_EMULATOR|Any CPU {67CBC824-A49E-4E9B-A947-360F3DFE65C3}.GPS_EMULATOR|Any CPU.Build.0 = GPS_EMULATOR|Any CPU @@ -227,7 +226,6 @@ Global {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.Debug|x86.ActiveCfg = Debug|Any CPU {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.GPS_EMULATOR|Any CPU.ActiveCfg = GPS_EMULATOR|Any CPU {BF7316A8-A2C5-4176-8D7F-672AD12F474D}.GPS_EMULATOR|Any CPU.Build.0 = GPS_EMULATOR|Any CPU