Version 1.7 - Released 25th April – CURRENT
- Fixed bug whereby the Science and Video list caused a crash in ImageCacheConverterLow (becuase a null entry was passed)
- Fixed bug where there was a directorynotfoundexception in CreatePosToken() routine – added check routine to create a folder if one doesn’t exist
- Made LoadStringFromfile more robust – if an exception occurs, it is trapped and an empty string is returned
- Addressed problem whereby a null reference image in the zune catalogue would trigger nullreference exceptions in the image cacher, favourites save routine and pinned station routine
- Addressed issue where a html placeholder crashes image.setsource within CacheImage(object input) (ImageCacher class). We now catch the exception within the despatcher.
- Added some code to more gracefully deal with a navigation to player.xaml and a NullReferenceException crash
- Made the add new podcast more robust with better error checking, authentication checking and the ability to search an html file for an rss <link> tag
- Episodes list now appears by default on any favourite podcast
- Favourites list now appears as the first panel on application load
- Episode download message will only nag once per programme page load – check is also only once per programme page load
- Significantly improved performance on devices (by asking Zune servers to resize the image server-side!)
- Episodes now appear first when opening a favourite
- Moved the favourites panel to the first entry in the panorama when favourites have been set
- Improved text around add URL/feed option to encourage users to send valid URLs
- Alphabetical ordering of favourites
- Add explanation to storage tab about being unable to save to SD card
- Episodes list now shows downloaded items if there is no internet connection
- Issue unresolved where “BBC Introducting Cornwall” has a thumbnail that works in iTunes results, however the real RSS feed has a corrupted image reference. Backup placholder overwrites the itunes thumbnail. – Fixed
- ImageCacheConverterLow now takes the full path to the programme object so that it can be more selective on available files – downloaded list was often had placeholder icons while a valid larger cache image existed
- Fixed bug whereby plugging in a headphone and unplugging it during video playback would pause the video, but not update the player control
- Fixed bug whereby pausing video and resuming did not correctly restore the playback position (regression?)
- Updated the welcome page with a new message
- Added ability to set an episode as read/unread on right click menu
- ImageCacheConverter now better handles nullreferences passed to it
- Fixed exception triggered when user double-tapped the welcome page button
- A zero search term will now flag up a warning message asking the user to type a search term in
- Added better exception handling routines to cope with the pin function failing
- Fixed RebuildApplicationBar and UpdateEpisodes panel bugs which caused a crash if there was no internet connection
- Added new cache-defeating code (that works this time)
- Added ability to import and export favourites to and from OPML files
- User can now list categories by the sub-category to get a more finely tuned list
Version 1.6 - Released 21st March
- Added video podcast support including playback position saving
- Addressed podcasts which did not contain a duration key (caused an exception)
- Sorting podcasts by date now enforced - Wired video as an example
- Added storage of video position to podcast
- Moved the storage of MasterObjects during Application_Deactivated to the top of the execution list
- Fixed an issue where a tombstone during startup would wipe the MasterObjects array with un-constructed objects – could be the main reason we lose favourites etc.
- App startup wouldn’t resume properly if it was tombstone before the app had finished initialising
- Fix for incorrect episode duration read-out
- Returning to a podcast playing from outside of the app causes the progressbar to no longer increment
- Fixed bug with the categories list tap event receiving a border control, not the text within
- Added support for native WP8.0 packages
- Added audio/video podcast designation for zune catalogue entries
- Smaller images now reference a new imagecacher converter which lifts a cached image if one is available (alterntatively, goes online)
- Fixed issue where RSS entries were missing the remote MP3 filename – we now remove them (Petros & Money)
- Corrected issue where remaining video/audio was incorrectly displayed within the player upon returning to a part-played episode
- Now list seconds remaining if episode has less than 1minute left on episodes list
- Added support to suppress exception on double-task launch
- Finished video podcasts didn’t return the phone to portrait
- Added pull-to-refresh for episodes list
- Added support to detect rogue bluetooth disconnects
- Fixed regression on favourites context menu crashing app
- Fixed Thhis spelling mistake in crikey messages
- Re-arranged the settings section by splitting out the sync stuff into a separate tab
- Returned favourites list to a listbox from itemscontrol
- Removed page transitions as they were causing System.ArgumentException: Value does not fall within the expected range at MS.Internal.XcpImports.CheckHResult(UInt32 hr) errors
- Fixed issue where history podcasts got muddled if the episode name was the same
Version 1.5.3 - Released 2nd March
- Improved cache routine code which was causing conflicts with some feeds (resulting in them not loading)
- Changed background agent code to be non-dependent on blocking network check when playing offline files (will address random “crikey” errors when playing offline files)
- UVC controls now scrub properly
- Fixed Myfeeds list not being correctly aligned with menu bar when heavily populated
- Corrected issue with >100mb files being blocked from download. Error message improved. These downloads must have wifi and external power to work.
- Other performance, exception management and UI improvements
Version 1.5.2 - Released 14th Feb
- Added support for RSS files that don’t have an image href entry
- Fixed bug in favourites context menu crashing app
- Fixed bug with loading RSS which had a blank description, no image reference (description now has a placeholder)
- Website link routine in LoadRSSFromString seemed to accidentally overwrite the RSS reference meaning the entry fail to get RSS on future polls
- Updated ImageCacheConverter : IValueConverter to better handle null responses (hopefully avoid the SetSourceInternal NullException error)
- Fixed the placeholder image to use local file rather than remote file
- Zune chunk parser was outside try/catch loop meaning a failed parse caused an exception
- Added support for corrupt search results with a new message
- Adjusted alignment of the UK only podcast message on the programme page
Version 1.5.1 – Released 12th Feb 2013
- Fixed problem with RSS feeds being cached and not updated
Version 1.5 – Released 7th Feb 2013
- Added full support for non-BBC catalogue using new 3rd party provider
- Improved tombstoning support (may stop lost downloads problem)
- Better support in dealing with failed downloads or 0 byte files
- Added new editors picks routine to generate a week/week listing
- Now using async methods for file downloads
- New database structure underpinning app for faster performance
- Improved performance of download manager
- Object orientated programme and episode objects
- Added code to deal with endless buffering – timeout at 5 secs – now warns the user
- Episode position is now saved for future resumption
- Fixed regression whereby the “new” tag was not recovered correctly from history
- Added support to allow locked episodes to be deleted (by unmounting the zune player)
- Added select menu to the download history page (previously hidden)
- Enabled scrolling of the programme listing on the Prog/Episodes page
- Reformatted track play times to better match Zune
- Added hyperlink to the programme website
- Agent event handler was still attached when closing the player screen
- Playback status now repored in the episodes/download tables
- Fixed inability to mount FeedBurner feeds
- Fixed bug with failed downloads leaving a 0 byte stub file in the downloads area
- Added session-based cache management
- Playback is now correctly resumed from the same position
- Ability to get to the parent programme from the downloads area by pressing/holding to reveal a menu
- Programme epsiodes page no longer shows a select menu when there are no episodes to show
- Built new episodes list status routine which will report if an episode is playing back or paused
- Upgraded favourites and featured list on Panorama to scroll the header
- Adjusted all text alignment through the app using MetroGridHelper
- Upped the number of editors picks from 6 to 8
- Stripped out status of epsiodes with duration of 0:00 or filesizes less than 512kb
- Tombstoning wasn’t rehydrating the settings object causing random nullreference exceptions when a settings entry was called out
- Consolidated file move routines into FileSystem object
- We now properly support the unsupported timezone stub at the end of an RSS publish date entry (previously causing delays in parsing the Episodes list)
- Added support for users to add their own podcasts in “My Library”
Version 1.4 – Released Dec 2012
- Added ScheduledBackgroundAgent preprocessor directive as the ScheduledBkgndTaskAgent is not allowed to see any XNA assemblies, thus CopyingFromXAP function (which depends on XNA) is not permitted. These specific function calls are removed in code, as well as the XNA assembly reference within GlobRout
- Added check for 256mb devices so we can disable the background autosyncing
- Fixed bug where if user pinned the programme whilst the episodes were still loading, then the app would crash with a nullreferenceexception
- Added social media commenting support (icon in the player window)
- Fixed bug where multiple RSS downloads would be instantiated, causing a nullreference to be passed to the player window. End result was a IdentifyBestMP3Source exception.
- Made UpdateEpisodePanel more robust in case we are passed a null reference for episodes
- Added notification on startup to inform user that episodes were downloaded in the background
- Added status text to the download summary sheet on number of episodes that are new
- Reprofiled common routines into a separate library
- Removed references to the BBC
- Addressed bug whereby transfers downloaded while the app was closed were often accidentally deleted on restart
- Added fall-over protection on loading and saving the download history file
- Deleting an active download didn’t force the download manager summary page to update
- Changing download restrictions in settings doesn’t populate through to active downloads!
- Added number-in-bubble for favourites sporting new downloads/unlistened-to content
- Ability to mark programmes as played / New entry allocation isn’t consistent – download. Close app. Reload. New text isn’t shown. Sorted.
- Added auto-sorting of episodes in download manager
- Updated to account for the new style editor’s favourites HTML listing. Added code to support purging the cache if it’s a new load.
- Downloading the same file twice results in the history getting a duplicate entry
- Updated transfer text to say “Downloading” instead of “Transferring” to make it more obvious
- Check there is sufficient space in IsolatedStorage before downloading – Check now implemented
- Fast forward and rewind buttons don’t work like the ones in Zune…. UVC doesn’t appear to work with FF and FR?
- Need to clear the image cache, OPML and highlights file from caches
- Downloading a new file, navigate to downloads area and live downloads section, watch complete, swipe to summary page, hasn’t updated to show new downloads against programme
- Download agent needs to make sure it’s got enough space on IsoStorage to download to
- Fixed bug whereby when opening a programme and setting a favourite during the RSS load would result in an empty list
- Fixed bug where cancelled downloads show up as Failed
- Updated the transfer text for blocked transfer to reference settings
- Clearing the download cache didn’t clear the download history
- Downloading a non-existent MP3 within the UI produces odd results (Best of Today) (Added a message to say download had failed – also spotted issue with incorrectly labelled downloads)
- May need to consider some warning text on the Settings entry to do with the background download agent – may never run if there are too many agents registered on the phone // http://msdn.microsoft.com/en-us/library/hh202942(v=vs.92).aspx
- Blocked 3G downloads were being reported as “Transferring” rather than telling us that they were waiting for WiFi
- Improved the tip on the episodes area to include a checkbox control which stops the user from being bugged from then on
- Fixed the background of the data status bar in settings
- Added some text to explain the 3G download restriction
- Fixed how the download progressbar is represented (position and background adjusted to make more clear)
- Added BBC Credit
- Added support for the old legacy Favourites format (which is now moved to xML – see notes at the end of this file)
Version 1.3 – Released 16th June 2012
- Aid for discoverability of multiselect screen for new users (added a messagebox reminder)
- Added tilt effect to the jumplist
- Added background download engine linked to App.CS
- Fixed ContextMenu theme (under light)
- Fixed display of programme graphic 300×300 which was far bigger (dimensions) than expected – set to stretch uniform
- Dealt with exception tracking on the player screen for fast forward and fast rewind
- Fixed problem with BBC server-side images
- Episodes list is rebuilt every time the page is refreshed!
- Bug with rewind not using totalseconds and resetting early
- Track finishing doesn’t stop and restart the track
- Show the filesize for each episode
- Panorama position should be saved on tombstone
- Podcast library delta date on settings page isn’t saved on tombstone
- Scroll position of listbox positions is not retained on tombstone
- Panorama page following tombstone doesn’t restore the applicationbar menu!
- Tombstone restoring on the downloads summary page doesn’t work + episode detail page too
- No downloads message on download detail page incorrectly justified
- Download episode selection/context menu wihtin ProgrammePage should be disabled if on trial
- Playback transition to downloaded file (from streamed file)
- Launch welcome should include update history button (linked to website)
- Update the in-xap podcast library
- Downloads underway when cancelled, don’t automatically trigger the queue to be renewed
- Deleting all the downloads should trigger the downloaded programme summary jumplist to refresh
- Player doens’t handle getting to an MP3 well. Should probably stop and return to the start when it hits the end?
- Working message for large-list episode selection and download
- ProcessQueuedBackgroundTransfers – Bug – I’m deleting a reference. Memory is unsafe.
- Queued downloads loaded when the application restarts don’t show the transfer bar properly – CatchUpDownloadHistory()
- DownloadHistory “OnNavigatedTo” routine may be using an EpsiodeStruct unsafely
- General concerns that the downloadhistory originally starts off as a structure that linked to the MasterTable. Upon tombstoning etc., the linkage is lost somewhat. Impact? Every time you update the MasterTable episode with progress, you’ll need to reciprocate for the DownloadHistory.
- After tombstoning when the downloadhistory and episode list are no longer linked – do all download manipulation routines take into account that two memory locations need to be updated every time? UpdateBoundTables seems to do this right!
- If downloads are completed when the app isn’t loaded, then there is legacy status text etc. that isn’t cleared.
- Dealt with the “System.InvalidOperationException: The background audio resources are no longer available”. Added a routine to close the instance of the BAckgroundAudioPlayer.
- Episodes list needs to be right-cropped (seems to fall off screen)
- Add a warning for the option to delete the cache
- If you clear the download history whilst downloads are underway, you get orphaned files
- Alignment of the progressbar on lhs is wrong
- Probably need to create a generic routine that blanks a download status?
- Pull the power mid-way through the download and the progress bar resets to zero!
Version 1.2 – Released 10th May 2012
- Fixed problem with BBC changing their image locations and formatting (SourceCorrectProgImage)
Version 1.1 – Released 1st May 2012
- Added improved support to trap tombstoning wake-ups (and improved fast resume)
- Converted the stations list to a list of strings instead of a struct and simplified XML parsing
- Fixed playback volume
- Fixed exception where the RSS download was off pulling information from the web and the user navigated away. Exception fires when the timer trys to update a non-existant page.
- Added a RTMOD to dictate whether we log image cache manager stuff
- Added exception tracking to CheckVisibleEpisodeIsPlaying & CheckIfAgentIsPlaying to check for exceptions (Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.get_PlayerState() at BBCPodcastPlayer.Player.PlayBTN_Click(Object sender, RoutedEventArgs e))
- Added exception tracking to PositionBarUpdate_UI_Timer_Fire to check for exceptions (Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.get_Track() at BBCPodcastPlayer.Player.PositionBarUpdate_UI_Timer_Fire(Object o, EventArgs sender) )
- Added exception tracking to CheckIfAgentTrackMounted to check for exceptions (Microsoft.Phone.BackgroundAudio.BackgroundAudioPlayer.get_Track() at BBCPodcastPlayer.GlobRout.IsAnythingPlaying() at BBCPodcastPlayer.MainPage.BackgroundAudioPlayer_StateChngEvent(Object sender, EventArgs e))
- Added check for EULA agreement acceptance to avoid exception if the entry is already there (double click>) (System.ArgumentException: Value does not fall within the expected range. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(String key, Object value, Boolean add))
Version 1.0 – Released 9th April 2012
- Initial launch
