(split into two posts because it was so long)

Fixes
Fixed a problem when playing some file types such as mp3 files, when the file has encoded problems, where the play position could be displayed as a negative distance from the end of the file if the media player played past what it was reported as the end of the file.

Fixed a problem with some mp3 audio files which have encoding problems, where seeking to the beginning of the file would start playing a little way into the file. This would sometimes chop off part of the first word when the audio file started to play.

Fixed a bug in the preferences xml file, which was causing the code that displays the Preferences menu to get an exception while removing the preference settings which do not apply to the Lite edition. This bug was causing problem code 265.

Added code to retry several times to read menu xml files and book xml files if the reason that the xml parser fails to parse the file is because the connection to the web site is lost without receiving the xml document. This will reduce the number of times that users see error messages while trying to browse the menus and download books.

Fixed a bug where the next chapter button did not move to the end of the book when the current chapter was the last chapter in the book.

Changed the code which writes out local book description xml files to put all the user data inside of CDATA tags so that the files can be read again without the xml parser getting errors from unexpected characters such as ampersand "&".

Fixed a problem where the seek bar thumb would sometimes partially disappear at the ends of the bar. Also widened the book and chapter name buttons so that long titles fit on the screen better.

Reordered when the cpu wake lock gets released so that it is always released before turning off the foreground flag. This should resolve problem code 851.

Fixed a problem where the play controls for the currently playing book were not being shut down properly if the book was deleted while it was being played.

Added code to stop playing a book that was loaded from the local SD card if the "Edit Book" option is selected to edit the currently playing book.

Changed the screens that are used to add audio files and book cover images from the SD card to update the screen display when resuming the activity.

On the play control screen added code to update the status from "End of Book" to "Paused" if the book play position is moved so it is no longer at the end of the book.

Fixed a bug in the code which walks the internet menus where it was not resetting the position into the list when it went to a new submenu. This could cause the new submenu to start out positioned part way into the list.

Added an additional check to immediately shut down the play control update task if the PlayControl activity has been destroyed.

Changed some activities in the playcontrol and library tasks to not retain the task state if the user leaves the activity.

Added code to do the normal pause processing in the BookPlayer service onDestroy routine. This will now update the pause/play state of the home screen widget correctly.

Changed the create series query to use sqlEscapeString instead of just doing a replace on single quote characters.

Fixed a bug where the control button height of the original skin could sometimes be set to less than the minimum height.

Added code to exit both the play control screen and the library list screen when the "Exit" option is picked from the play control menu.

Changed all the services to also add the FLAG_FOREGROUND_SERVICE flag when displaying a notification.

Changed a number of places that use intents to launch an activity to add in the FLAG_ACTIVITY_SINGLE_TOP. Also added the FLAG_ACTIVITY_NEW_TASK in some calls that are starting an activity the prefers a different task.

Changed a number of activities in the AndroidManifest file to use finishOnTaskLaunch instead of clearTaskOnLaunch.

Fixed a problem in the code which gets the file extension where it wasn't checking to make sure that the extension started after the last slash "/" character in the path.