Tags: cjlhll/tivimini
Tags
refactor: simplify channel variant selection and remove unused latenc… …y logic - Removed the pickBestVariantIndex function from ChannelGrouper, streamlining the variant selection process. - Updated PlayerActivity to implement a new approach for selecting the first reachable channel variant based on probing. - Eliminated redundant latency measurement logic, enhancing clarity and maintainability of the code. - Adjusted unit tests in ChannelGrouperTest to reflect the removal of the pickBestVariantIndex function.
feat: enhance channel selection with latency probing and improved var… …iant logic - Introduced SourceLatencyProber for measuring and caching response times of channel sources. - Updated ChannelGrouper to select the best channel variant based on measured latency, prioritizing those with valid logos. - Refactored PlayerActivity to utilize the new latency probing logic for automatic channel switching. - Enhanced QualitySelectorDialog to display latency status during probing. - Added unit tests to validate the new latency-based selection logic in ChannelGrouper.
feat: add response time handling and improve channel selection logic - Introduced a new responseTimeMs property in the Channel data class to track latency. - Updated ChannelGrouper to prioritize channels with the lowest response time when selecting variants. - Enhanced M3uParser to parse response time from M3U attributes. - Refactored PlayerActivity and QualitySelectorDialog to display response time in the UI. - Added unit tests to validate response time parsing and selection logic in ChannelGrouper.
feat: enhance channel grouping and display name resolution - Added new regex patterns for improved channel grouping, including support for CCTV and cartoon channels. - Introduced methods for resolving group names and normalizing group aliases to enhance display accuracy. - Updated PlayerActivity to utilize the new grouping and display name logic for better user experience. - Added unit tests to validate the new group resolution and inference logic in ChannelGrouper.
feat: enhance channel grouping and recovery variant logic - Updated ChannelGrouper to include fallback logic for selecting the best group variant based on previous groups and indices. - Modified PlayerActivity to support new PlaylistUpdateMode for better handling of playlist updates and recovery scenarios. - Enhanced applyPlaylistContent method to utilize previous group data for improved playback continuity. - Added unit tests to validate the new fallback behavior in ChannelGrouper when URLs are no longer available.
feat: implement background source updater and application initialization - Added BackgroundSourceUpdater to manage playlist and EPG refresh operations in the background. - Created IptvApplication class to initialize the background updater on application startup. - Updated AndroidManifest.xml to register the new application class. - Enhanced MainActivity to schedule a refresh after starting a new activity. - Introduced new methods in ChannelGrouper for recovery variant selection based on failed URLs. - Added unit tests to validate the recovery variant logic in ChannelGrouper.
feat: enhance channel grouping and display name normalization - Added support for bracketed flags in channel titles to improve grouping accuracy. - Introduced a new regex in EpgNormalize for stripping bracket tags from titles. - Updated the mergeKeys function in ChannelGrouper to handle new title formats. - Enhanced unit tests to validate the new grouping logic and display name handling.
feat: improve channel grouping and display name normalization - Enhanced ChannelGrouper to merge channels with bracketed quality titles into a single group, improving grouping accuracy. - Introduced a new method in EpgNormalize to strip quality markers from channel titles for cleaner display names. - Updated PlayerActivity to utilize the normalized display names for better user experience. - Added unit tests to validate the new grouping logic and display name normalization functionality.
feat: enhance channel grouping and player functionality - Refactored ChannelGrouper to streamline channel grouping using primary keys and improved logic for variant selection. - Added methods to find group and variant indices by URL for better navigation within the player. - Updated PlayerActivity to utilize new grouping methods, ensuring correct playback and quality selection. - Enhanced PlayerDrawer to manage focus restoration and scrolling behavior more effectively. - Introduced new unit tests to validate grouping logic and ensure correct behavior across various scenarios.
feat: add channel switch loading and quality selector components - Introduced ChannelSwitchLoading and QualitySelectorDialog for improved user experience during channel switching and quality selection. - Implemented ChannelSwitchController to manage visibility and session states for loading indicators. - Updated PlayerActivity and SettingsDrawer to integrate new components, allowing for quality selection and loading feedback. - Enhanced VideoPlayerScreen to utilize the channel switch loading functionality during playback initiation.
PreviousNext