Howard
04-18-2010, 11:39 PM
Editions: Pro, Personal, and Lite
New Features
Added a new progress details screen to view the progress when loading audio files from the SD card for a new book. This screen also allows the user to scan through the descriptions of any errors for files which were not usable audio files. Encountering an unusable audio file no longer immediately stops the processing of other files. A new cancel button allows the user to cancel the background processing if desired.
Added a new "Download Details" button on the BookSummary screen which will take the user to the download manager screen. This button is now shown if a download is in progress or queued for the book being viewed.
Modified the library list to highlight the book title and indent the author and last play time information.
Changed the default setting to allow audio files to download over the phone data network.
Changed to a new launcher icon that is based on the Ambling Books logo.
Changed the home screen widget to have a transparent background. Removed the reflection below the icons on the widget.
Changed the build target Android OS to 2.1.
Fixes
Changed the code which reads audio file data from the local SD card to use a background service to read the files. The background service uses a CPU wake lock so it can continue processing even when the screen goes blank. All state is saved in a separate class and survives the Activity being destroyed during a screen rotation. This change also improves the performance when reading ID3 tags.
Added code to handle screen rotations and save partial user input during the rotation for the screens where users enter book and chapter information.
Fixed the display of the file names and directory names on the SD card so that the full file name is always displayed.
Fixed the drop down lists used to select prefill book, author, and chapter information to wrap long strings to another line rather than truncate them.
Changed the code which backs up on play resume to not backup if the current position was reached by seeking rather than playing to that position. Also changed it to not backup up prior to the start of the current chapter.
Added code to remember the list position when browsing through several levels of menus so that when it goes back to the parent menu the parent menu will be scrolled to the correct position.
Added code to acquire a CPU wake lock when a background internet audio file download is in progress. This will prevent the phone from powering off in the middle of the audio file downloads.
Changed the DownloadService class to use a reference count for tracking if the DownloadManager is active. This will prevent the DownloadService from being mistakenly destroyed while the DownloadManager activity is active on 2.1 phones.
Fixed a problem in the bookmark history class where it could try to get the current entry sequence while the cursor was positioned before the first or after the last entry. Changed the code which deletes automatic history bookmarks that are over the limit to move the cursor to the entry previous to the one being deleted before it deletes the extra one. Changed the History class to no longer keep the cursor column indexes cached. This resolves problem code 231.
Added code in the HistoryBookMarkSelection destructor to handle some fields being null because of multiple calls to the destructor. This resolves problem code 549.
Added code in MediaBroadcastReceiver to exit immediately if the BookPlayer is not loaded. This is a change in the fix for problem code 327.
Changed the MenuList destructor to deal with some fields already being null because of multiple calls to the destructor. This resolves problem code 567.
Added code in MenuList.setupLayoutData to return immediately if the mMenuAdapter is null. This resolves problem code 573.
Added addtional checks in the broadcast receivers to deal with missing intents or actions.
Merged the BookList and SeriesList classes into a single Library class. Fixed a problem where the book list was being displayed instead of a series list when the "Library" button on the BookSummary screen was clicked.
Added a check to handle the DownloadService.onStart being called with a null intent which can happen on phones running the Android 2.1 firmware.
Added code to remove any pending Handler messages in the Library, MenuList, and PlayControl classes when the activity is destroyed. Added code to check if some threads are executed after the activity has been destroyed by a screen rotation and immediately exit from the threads.
Added code in the PlayControl activity task which updates the display, so that it will immediately exit the PlayControl activity if the BookPlayer service is no longer running.
Changed the BookPlayer and DownloadManager flurry session start and end calls to coorespond with acquiring and releasing a CPU wake lock that are only held while the service is busy.
Fixed a case in the DownloadService where it would sometimes not immediately shut down the service if downloads had been cancelled. The service would have been shutdown later by an extra stop service call in the DownloadManager onDestroy method. The extra stop service call has now been removed.
Updated the activity task settings in the manifest file which improves the behavior for returning to an activity after having left it to use another application. Changed the activity task settings in the manifest file to resolve some issues in the way that the activity stack works.
Moved the logic to establish an HttpURLConnection to a common routine and added support for retrying when the network connection fails. Modified the menu, book description, and image loading code to use this new routine and retry if the connection fails.
New Features
Added a new progress details screen to view the progress when loading audio files from the SD card for a new book. This screen also allows the user to scan through the descriptions of any errors for files which were not usable audio files. Encountering an unusable audio file no longer immediately stops the processing of other files. A new cancel button allows the user to cancel the background processing if desired.
Added a new "Download Details" button on the BookSummary screen which will take the user to the download manager screen. This button is now shown if a download is in progress or queued for the book being viewed.
Modified the library list to highlight the book title and indent the author and last play time information.
Changed the default setting to allow audio files to download over the phone data network.
Changed to a new launcher icon that is based on the Ambling Books logo.
Changed the home screen widget to have a transparent background. Removed the reflection below the icons on the widget.
Changed the build target Android OS to 2.1.
Fixes
Changed the code which reads audio file data from the local SD card to use a background service to read the files. The background service uses a CPU wake lock so it can continue processing even when the screen goes blank. All state is saved in a separate class and survives the Activity being destroyed during a screen rotation. This change also improves the performance when reading ID3 tags.
Added code to handle screen rotations and save partial user input during the rotation for the screens where users enter book and chapter information.
Fixed the display of the file names and directory names on the SD card so that the full file name is always displayed.
Fixed the drop down lists used to select prefill book, author, and chapter information to wrap long strings to another line rather than truncate them.
Changed the code which backs up on play resume to not backup if the current position was reached by seeking rather than playing to that position. Also changed it to not backup up prior to the start of the current chapter.
Added code to remember the list position when browsing through several levels of menus so that when it goes back to the parent menu the parent menu will be scrolled to the correct position.
Added code to acquire a CPU wake lock when a background internet audio file download is in progress. This will prevent the phone from powering off in the middle of the audio file downloads.
Changed the DownloadService class to use a reference count for tracking if the DownloadManager is active. This will prevent the DownloadService from being mistakenly destroyed while the DownloadManager activity is active on 2.1 phones.
Fixed a problem in the bookmark history class where it could try to get the current entry sequence while the cursor was positioned before the first or after the last entry. Changed the code which deletes automatic history bookmarks that are over the limit to move the cursor to the entry previous to the one being deleted before it deletes the extra one. Changed the History class to no longer keep the cursor column indexes cached. This resolves problem code 231.
Added code in the HistoryBookMarkSelection destructor to handle some fields being null because of multiple calls to the destructor. This resolves problem code 549.
Added code in MediaBroadcastReceiver to exit immediately if the BookPlayer is not loaded. This is a change in the fix for problem code 327.
Changed the MenuList destructor to deal with some fields already being null because of multiple calls to the destructor. This resolves problem code 567.
Added code in MenuList.setupLayoutData to return immediately if the mMenuAdapter is null. This resolves problem code 573.
Added addtional checks in the broadcast receivers to deal with missing intents or actions.
Merged the BookList and SeriesList classes into a single Library class. Fixed a problem where the book list was being displayed instead of a series list when the "Library" button on the BookSummary screen was clicked.
Added a check to handle the DownloadService.onStart being called with a null intent which can happen on phones running the Android 2.1 firmware.
Added code to remove any pending Handler messages in the Library, MenuList, and PlayControl classes when the activity is destroyed. Added code to check if some threads are executed after the activity has been destroyed by a screen rotation and immediately exit from the threads.
Added code in the PlayControl activity task which updates the display, so that it will immediately exit the PlayControl activity if the BookPlayer service is no longer running.
Changed the BookPlayer and DownloadManager flurry session start and end calls to coorespond with acquiring and releasing a CPU wake lock that are only held while the service is busy.
Fixed a case in the DownloadService where it would sometimes not immediately shut down the service if downloads had been cancelled. The service would have been shutdown later by an extra stop service call in the DownloadManager onDestroy method. The extra stop service call has now been removed.
Updated the activity task settings in the manifest file which improves the behavior for returning to an activity after having left it to use another application. Changed the activity task settings in the manifest file to resolve some issues in the way that the activity stack works.
Moved the logic to establish an HttpURLConnection to a common routine and added support for retrying when the network connection fails. Modified the menu, book description, and image loading code to use this new routine and retry if the connection fails.