0.12.0
New features
- Multi-level comments and replies display by @faisalcodes in #2890
- [Audio Player] Gesture controls on the video thumbnail by @Bnyro in #2928
- Preference to choose video codecs by @Bnyro in #2995
- Enter/Exit Fullscreen swipe gestures by @Bnyro in #3017
- Remember the last download selections by @Bnyro in #3042
- Option to mark videos as watched by @Bnyro in #3015
- Original comment as the first item in replies. by @faisalcodes in #2910
- New Autoplay switch design by @Bnyro in #2992
- Option to disable watch positions in audio mode by @Bnyro in #3035
Minor changes
- Minor downloads fragment improvements by @Bnyro in #2990
- Check if the connected network is metered in NetworkHelper. by @Isira-Seneviratne in #2868
- Improve unsupported file type message. by @Isira-Seneviratne in #3013
- Show whole title when description visible by @Bnyro in #2864
- Better download file naming scheme by @Bnyro in #2875
- Don't kill the app when closing through PiP by @Bnyro in #2880
- Keep screen on only while video is playing #2877 by @praveenrajput in #2886
- Improve home page loading behavior by @Bnyro in #3040
- Search history improvements by @Bnyro in #3032
- Open audio player from three dot menu by @Bnyro in #3033
- Button to quit the audio mode by @Bnyro in #3034
- Use POST requests for unauthenticated subscriptions by @Bnyro in #2960
- Adds more RTL languages support. by @faisalcodes in #2929
- Use an elevated surface color for the swipe to refresh by @Bnyro in #2962
- Reload playlists after successfully cloning by @Bnyro in #2925
- [Help section] Add Mastodon, remove Twitter by @Bnyro in #2937
- Improve double tap on center of player by @Bnyro in #2961
Bug fixes
- Fix crash in watch history when deleting video by @Bnyro in #2863
- Fix cloning playlists in the create playlist dialog by @Bnyro in #2889
- Fix watching unprocessed livestreams by @Bnyro in #2899
- Closes comments on auto play video change. Fixes #2898 by @praveenrajput in #2904
- Fixes: Showing progress for unwatched videos. by @faisalcodes in #2921
- Fix that auto fullscreen is shown as enabled by default by @Bnyro in #2924
- Playlist importing bug fixes and performance imporvents by @Bnyro in #2926
- Fixes: icons not showing in the player menu options. by @faisalcodes in #2957
- Crash fix on playlist background playback by @praveenrajput in #2975
- Fix single back press not closing app by @praveenrajput in #2989
- Fix that thumbnails persist after deleting a download by @Bnyro in #2997
- Fix history showing up when clearing search query by @Bnyro in #2998
- Fix the time stamp parsing in the PlayerFragment by @Bnyro in #2999
- Fix SponsorBlock segment loop at end of video by @Bnyro in #3036
- Prevent controls from disappearing while scrubbing by @Bnyro in #2991
- Made improvements to player double-tap further. by @faisalcodes in #2988
Code changes
- Minor repo structure cleanup by @Bnyro in #2927
- Use suspend functions in LocalSubscriptionDao. by @Isira-Seneviratne in #2842
- Use parseAsHtml() extension. by @Isira-Seneviratne in #2872
- Use View.updateLayoutParams() extensions. by @Isira-Seneviratne in #2873
- Use HttpUrl in TextUtils. by @Isira-Seneviratne in #2895
- Use DateTimeFormatter to create backup file timestamp. by @Isira-Seneviratne in #2893
- Use ActivityCompat.recreate(). by @Isira-Seneviratne in #2896
- Use Handler.postDelayed() extension function. by @Isira-Seneviratne in #2908
- Use Kotlin's takeWhile() extension. by @Isira-Seneviratne in #2912
- Use take() extension. by @Isira-Seneviratne in #2914
- Use awaitAll() extension. by @Isira-Seneviratne in #2913
- Convert LocalPlaylistsDao methods to suspend functions. by @Isira-Seneviratne in #2920
- Remove uses of String.all(). by @Isira-Seneviratne in #2930
- Convert ClipboardHelper to an object. by @Isira-Seneviratne in #2952
- Use Work KTX functionality. by @Isira-Seneviratne in #2951
- Remove unnecessary TextViewCompat calls. by @Isira-Seneviratne in #2958
- Use Fragment transaction extensions. by @Isira-Seneviratne in #2969
- Convert SearchAdapter to a ListAdapter. by @Isira-Seneviratne in #2968
- Make backup and restore improvements. by @Isira-Seneviratne in #2970
- Use ServiceCompat in DownloadService. by @Isira-Seneviratne in #2981
- Convert CronetHelper to an object. by @Isira-Seneviratne in #2979
- Use SparseBooleanArray in DownloadService. by @Isira-Seneviratne in #2980
- Use LifecycleService. by @Isira-Seneviratne in #2993
- Convert WatchHistoryDao methods to suspend functions. by @Isira-Seneviratne in #3012
- Simplify AudioHelper. by @Isira-Seneviratne in #3011
- Convert DatabaseHolder to an object. by @Isira-Seneviratne in #3025
- Simplify custom instance URL validation. by @Isira-Seneviratne in #3026
- Release view bindings in search fragments. by @Isira-Seneviratne in #3031
- Convert CustomInstanceDao methods to suspend functions. by @Isira-Seneviratne in #3038
- Follow-up to #2929. Simplified layouts. by @faisalcodes in #2936
- Disable R8 for debug builds by @Bnyro in #2938
- [Help & About] UI improvements and cleanup by @Bnyro in #2939
Repo changes
New Contributors
- @praveenrajput made their first contribution in #2886
Full Changelog: v0.11.1...v0.12.0