Caution
This version crashes on launch during testing in the preview release. We identified .NET Native trimming as the cause. Please skip this release.
What's Changed
This release introduces significant architectural improvements, including a migration to SQLite for storage, .NET Native trimming for reduced binary size, performance optimizations, and new features like a chapter picker. It also resolves issues with playlist metadata and subtitle imports, while ongoing refactoring continues to modernize the codebase.
New Features
- feat: enable .NET Native trimming by @United600 in #825
- feat(core): migrate storage from protobuf/json files to SQLite by @huynhsontung with @Copilot in #932
- feat: add chapter button with selectable chapter list by @United600 in #951
- feat: add multi-selection support to Playlists page by @United600 in #982
- feat: update LibVLC to 3.0.23 and LibVLCSharp to 3.10.0 by @huynhsontung in #986
- feat: add open artist command to albums page item flyout by @United600 in #991
Bug Fixes
- fix: playlist items loaded without album or artist info by @huynhsontung in #957
- fix: AOT compiler warnings by @huynhsontung in #959
- fix: prevent unnecessary ArgumentException logging from HomePageViewModel by @sentry[bot] in #967
- fix(mru): silence expected InvalidOperationException by @sentry[bot] in #968
- fix: auto importing external subtitle multiple times by @huynhsontung in #993
Localization
- l10n: New Crowdin updates by @github-actions[bot] in #949
- l10n: localize chapter picker control header by @United600 in #990
User Experience
- style: add tool tips to trimmed chapter names by @United600 in #979
- style: improve iconography and search pages item flyout by @United600 in #980
Other Improvements
- refactor: chapter control progress bar bindings by @United600 in #717
- refactor: integrate DefaultStringConverter into ItemLabelHelper by @United600 in #956
- chore: update third-party notice by @United600 in #958
- refactor: SeekBar pointer wheel event by @United600 in #961
- refactor: migrate most System.Text.Json usage to source generation by @United600 in #973
- chore: bump nuget packages and resolve SQLite vulnerabilities by @huynhsontung in #976
- refactor: remove DataTriggerBehavior and EventTriggerBehavior usages by @huynhsontung in #977
- chore: add debouncing to selection state refresh logic by @United600 in #983
- refactor: item flyouts bindings by @United600 in #987
- test: add intial tests for Screenbox.Core by @huynhsontung in #988
- refactor: PropertyView bindings by @United600 in #989
- refactor: resolve more Native AOT warnings by @huynhsontung in #994
- ci: Fix Crowdin sync source string upload by @huynhsontung in #996
Full Changelog: v0.19.2...v0.20.0