- Fixes the playback progress being incorrect between a seek finishing and the next playback update. The progress position now updates immediately to the seek target when the seek finishes
- Improves the crash fix from 1.6.8, so that even retries on EncryptedSharedPreferences does not crash.
- Fixes an app startup crash to EncryptedSharedPreference faults.
- Adds resilience to playing unencrypted content if it is optionally drm enabled.
- Adds additional data in audio player errors: HttpResponseCodeException, DownloadFailed
- Add new ParsingException for internal ParserException
- Add internet connectivity check to error metrics
- Adds graceful exponential backoff toward internet connectivity errors.
- Retries streaming parsing exceptions, in case the network has not succeeded in retreiving valid data.
- ArmadilloPlayer handles client calls from any thread appropriately, without blocking. For those recently updating since 1.5.1, this should resolve any strange bugs from client behavior.
- Resolves download issue resulting in downloaded storage often being out of alignment
- Prevents downloaded content with rotating URLs from being lost in the download system after the URL moves.
- Prevents devices that fail to initialize encrypted storage from crashing during initialization.
- Prevents fatal crashing for actions are being performed before the player is initialized
- Prevents fatal crashing when content fails to load
- Encrypts widevine drm keys. The Android minSDK has been changed to version 23 in order to support this feature.
- Ensured that ArmadilloPlayer.armadilloStateObservable has a state as soon as the player is initialized
- Fixed UnknownHostException being mapped to a HTTP status code issue rather than a Connectivity issue.
- Attempts to renew the widevine license of downloaded DRM content when playback begins, similarly to how streaming does it.
- Fixes ANR issue in the Reducer.
- Fixes "Failed to Bind Service" issue introduced in 1.4, affecting MediaBrowser services.
- Adds DrmState to ArmadilloState, giving full visibility into DRM status to the client, including the expiration date for content.
- Splits SocketTimeout from HttpResponseCodeException, into ConnectivityException to better differentiate connectivity difficulties from developer error.
- Ensures that ArmadilloState is updated from the main thread consistently.
- Fixes Error and Exception handling to not hide underlying exceptions, and to clearly explain the nature of errors.
- Fixes Download Service issues on Android 14.
- Removes the Exoplayer 2.19.1
core
module that does not support Android 14. This module must now be included separately by your project for this version.
- Targets Android 14 (SDK 34), with appropriate service permissions.
- Reverted fix in 1.3.2 as it may have affected listening progress not being correctly reported
- Added support for passing in load control parameters via ArmadilloConfiguration to the exo player instance
- Added a fix for order of dispatched actions during seek related events
- Adds support for offline DRM for downloaded MPEG-DASH audio
- Adds support for DRM when playing MPEG-DASH audio
- Adds support for MPEG-DASH audio
- Added a fix for seek from notification player
- Target and Compile SDK updated to 33.
- Added foreground service type.
- Add support for updating playback headers during playback.
- Download removal is now handled by DownloadManager rather than DownloadService
- Added error state support for ForegroundServiceStartNotAllowedException
- Fixed issue with ArmadilloState events not being emitted on Android 12+
- Fixed issue with headers not properly being applied to Api Requests
- Upgraded Exoplayer version to 2.17.1
- Upgraded Java version to 11
- Upgraded Androidx Media version to 1.6.0
- Upgraded Kotlin version to 1.6.0
- Upgraded Gradle version to 7.4.2
- Upgraded Gradle plugin version to 7.2.0
- Added support for Android 12
- Upgrade exoplayer version to 2.15.1
- Upgrade exoplayer version to 2.15.0
- Updated mockito-kotlin version.
- Updated
MaxAgeCacheEvictor
to use lru behavior after evicting expired content.
- First Public Release!