All notable changes to this project will be documented in this file.
- Added unit test coverage for session lifecycle and SDK state transitions (
SessionServiceTestandSDKStateServiceTest). - Added regression tests for duplicate
viewBegindispatch prevention and session recovery behavior inFastPixDataSDKTest. - Added test dependencies for MockK, AndroidX core-testing, and coroutine test utilities.
- Introduced
IMMEDIATE_UPLOAD_EVENTSset containing "viewBegin" and "playerReady". - Updated
EventDispatcherto trigger an immediate upload if a critical event is detected in the drained event batch and network is available.
- Prevented duplicate
viewBeginevents from being dispatched for the same active view. - Fixed session recovery flow to create a fresh view context, re-emit bootstrap events (
playerReady,viewBegin), and re-dispatch the original pending event. - Improved
SessionServicethread safety for concurrent access by synchronizing session lifecycle operations.
- Periodic in-process event upload in
EventDispatcherthat pushes pending events to the server every 10 seconds, reducing reliance on WorkManager for timely delivery. getAllSessionsquery inSessionDaoandEventStoreto retrieve all sessions regardless of status.- Debug logging for dispatched events in
FastPixDataSDK.
- Fixed
viewTimeToFirstFramecalculation inPlayingEvent— value is now computed before the sent-flag is updated, ensuring the correct timestamp is captured. - Sessions are now only deleted after upload when their status is
COMPLETED, preventing premature removal of active sessions in bothEventUploadWorkerand periodic upload.
EventUploadWorkernow processes all sessions (not just completed ones), uploading their events while still respecting session lifecycle for deletion.- Refined pulse event scheduling in
FastPixBaseMedia3Player: pulse timers are now started onviewBegin,play,seeked(when playing), andbuffering, and cancelled only when the player is no longer playing after a seek. - Improved
EventDispatchershutdown sequence — cancels upload/pipeline jobs, flushes remaining events, and attempts a final upload before scheduling WorkManager fallback.
- Replaced the manual event cleanup logic with a Room-based persistence layer and WorkManager-driven upload pipeline.
- Added
AnalyticsDatabase,EventStore, and associated DAOs/Entities to handle persistent event storage. - Introduced
EventQueuefor thread-safe in-memory event buffering. - Implemented
EventUploadWorkerandEventUploadSchedulerto manage reliable background data synchronization. - Updated
FastPixAnalyticsandFastPixDataSDKto use a new lifecycle-aware state machine (SdkLifecycleState). - Refactored
EventDispatcherto orchestrate the flow from the in-memory queue to the persistent store and network. - Updated the default beacon domain from
metrix.wstoanlytix.io. - Enhanced the
Loggerutility with structured formatting, session/trace tracking, and standardized event labels. - Updated dependencies for Room, KSP, and Kotlin serialization.
- SDK Version Update:
- Crash Fix
- Bug Fix
- SDK Version Update:
- SDK Version Update
- Bug Fix
- SDK Version Update:
- SDK Version Update
- SDK Version Update:
- SDK Version Update
- Improve Analytics
- Improved Data
- SDK Version Update:
- SDK Version Update
- Major Code Optimization and Refactoring:
- Data Syncing to server by keeping work manager
- Handles app killing scenario also
- Keeps the data in local and removes it after synced to server
- Major Code Optimization and Refactoring:
- Resolved crash in network monitoring caused by repeated registerNetworkCallback calls
- Ensured network callback lifecycle is safely handled
- Improved stability when tracking connectivity events
- Major Code Optimization and Refactoring:
- Comprehensive code refactoring for improved maintainability and performance.
- Optimized internal components and dependencies for better efficiency.
- Enhanced code structure and organization across the SDK.
- Improved overall stability and reduced technical debt.
- Enhanced Playback Experience and Stability Improvements:
- Fullscreen Detection: Tracked views only after fullscreen activation.
- Request Event Logging: Enhanced cancellation details and error tracking.
- Playback Stability: Fixed event transitions, seek handling, and playhead updates.
- SDK Version Tracking: Included FastPix SDK name and version in metadata.
- Update core files -logic and code updated
- Integration with ExoPlayer:
- Enabled video performance tracking using FastPix Data SDK, supporting ExoPlayer streams with user engagement metrics, playback quality monitoring, and real-time diagnostics.
- Provides robust error management and reporting capabilities for seamless ExoPlayer video performance tracking.
- Allows customizable behavior, including options to disable data collection, respect Do Not Track settings, and configure advanced error tracking with automatic error handling.
- Includes support for custom metadata, enabling users to pass optional fields such as video_id, video_title, video_duration, and more.
- Introduced event tracking for onPlayerStateChanged and onTracksChanged to handle seamless metadata updates during playback transitions.