0.25.2⚠️ Important fixes ⚠️
[YouTube] Fixed the recent issue where videos would abort playing because of HTTP 403 errors
https://github.com/Tea…ipeExtractor/pull/1084
Some users reported player crashes or black screen on some devices, especially Android TVs. In some cases this was caused by media tunneling not being properly implemented by the manufacturer.
- Such feature now is disabled by default on more known unsupported devices! #10122
- In case you still experience similar issues, try to manually disable media tunneling from Settings -> Video and audio -> ExoPlayer settings -> Disable media tunneling, and report to us if your device needs to be blacklisted automatically. You may want to try the other ExoPlayer settings switches, too.
⚠️ Known issues/regressions which are not fixed with this update ⚠️
DO NOT OPEN NEW ISSUES FOR THEM BUT FOLLOW THE LINKED ONES INSTEAD!
[YouTube] No streams are returned in some playlists: YouTube returns an unsupported UI by the extractor when there are only shorts in a playlists: see
https://github.com/Tea…eExtractor/issues/1077 more details.
Player notification actions set from app player notification settings are not used on Android 13 and above: this is related to targeting Android 13/API 33 or higher: apps cannot completely personalize media notifications: see #9764 for more details.
New
Allow setting volume and brightness gestures on any side of the screen #9708
Add an ExoPlayer settings page #8875 #10122
Add support for multiple audio tracks #9937 #10230
Add support for displaying main-tabs at the bottom of the screen #9719
Improved
Add whitelist to only retrieve supported YouTube itags/streams #9748
[YouTube] Improve download speed #9948
[PeerTube] Handle links to the instance “peertube.stream” #10141
Fix a memory leak in the player #10232
Disable media tunneling by default on more known unsupported devices #10122
Fixed
[PeerTube] Fix uploader and subchannel avatars being swapped and disable loading thumbnail message failure on content details page #10066
Fix crash after feed update #10229
Fix no video in player when switching to main player from playlist view #10195
Localization
Update translations #10074
Add new language ߒߞߏ / N'Ko (nqo) to the language chooser #10042
Translate README into new languages and update a few translations #9421 #9897 #10240 #10250
Add Uchinaguchi translation #10250
Development
Remove jsoup files from APK #10004
Update to Kotlin to 1.8.20 and AndroidX Core to 1.10 and switch to AndroidX's PendingIntentCompat #10021
Upgrade Gradle and AGP from 7.x to 8.x and use Java 17 #10035 #10067
Update ACRA to 5.10.1 and Checkstyle to 10.12.1 to fix a dependency vulnerability #10200
Update screenshots #10213
Add support for new GitHub assets URLs in image minimizer workflow & minimize images in PR descriptions #10166 #10233
Add link to wiki page for APK download #10219
Clean up AlertDialogs #10223
Update LeakCanary library #10085 #10232
Add database test for SubscriptionManager #8456
Update AndroidX Room library #10235
Use Okio 3.4.0 explicitly to fix a vulnerability #10281
0.25.0New
Show toast when no updates are available #8668
Show subscriber count on video details page #9173
Download items from the long press menu of queue items #9502
Allow permanently setting a playlist thumbnail #9523
Add long press action on hashtags and web links in descriptions #7725
New card view mode with full width thumbnails #9310
Improved
Remove the redundant/overlapping toast "Copied to clipboard" for Android 13+ #8961
Make mini-player close button area larger #8743
Use smoother bitmap downscaling for thumbnails #8686 #9479
Rename "Help" to "Fast mode" #9500
Add hint to improve discoverability of subscription import #9501
Disable night theme selection if auto theme is not used #9488
Set compileSdk and targetSdk to 33 (Android 13) #9306 #9671 #9696 #9726 #9758
Seeking no longer pauses the played stream #9496
Added icon for "Play All" #9568
Add language suffix to downloaded subtitle filenames #9499
Check availability of Samsung DeX only on Samsung devices #9619
Add "What's New" to the default main page tabs #9664
Change "What's New" icon #9678
Made channel images in grid lists bigger #9555
Change "Chapters" icon #9691
[YouTube] Add support for live links #9725
Fixed
Fix persistent hover overlay when in desktop/DeX mode or using a mouse/non-touch input #8316
Only show "Enqueue next" when in the middle of the queue #8883
[PeerTube] Remove dead Privacy Tools instance #9504
Crash fix when click "Add to playlist" while the current list is still loading #9521
Allow using background player when there are no separate audio streams #9562
Improve screen rotation handling in Open action menu #9135
Ask for permission when enqueuing in a popup #9653
Fix removing watched videos from playlist includes currently playing #9445
Fix displaying multiple empty playlists #9642
Fix background player stops working when enqueueing playlist at different index #9706
Fix link clicking and ellipsizing of comments #9631
Localization
Update translations 1d53389, #9522, #9596, #9688
Added Odia language to language selector #9651
Development
Make PendingIntents immutable on Android 6.0 and later #9333
Use Locale.forLanguageTag() #8870
Forbid wrong @Nullable and @NotNull annotation imports #9474
Set image-minimizer to specify image width #9471
Update Sonarqube to 3.5 #9480
Use Math.floorDiv() #8810
Use SparseArrayCompat #8895
Update LeakCanary to 2.9.1 #9306
Update Desugaring to 1.1.8, ACRA to 5.9.7 and Android Gradle Plugin to 7.3.1 #9481
Refactor VideoDetailFragment #8847
Refactor VideoPlayerUi #9159
Update RxJava to 3.1.5 and RxAndroid to 3.0.2 #9520
Use ListAdapter in NotificationModeConfigAdapter #8841
Use new NPE UTF8 Utils methods #8769
Clean up Optional-related code #9285 #9663
Remove Runnable variables for Handlers #8886
Use WindowCompat #8894
If you encounter any issue with system UI not behaving properly, this PR will be reverted
Update desugar_jdk_libs to 2.0.2 and Android Gradle Plugin to 7.4.0 (which requires Android Studio Electric Eel) #9686 #9743
Fix reproducible builds #9709
0.24.0New
warning Bump minSdk to 21 (Android 5 Lollipop) and drop support for Android 4.4 KitKat #7613
Add Download entry to long-press menu #8397
Add option to hide future videos in feed #8545 #8966
Add Share menu item to local playlists #8542
Improved
Crop the notification thumbnail in 1:1 mode instead of stretching it #8533
Make thumbnails' scaleType fitCenter #8573
Improve image placeholders #8530
Removed the "(beta)"-tag from services #8637
Refactor player and extract UI components #8170 #8661 #8678 #8731
Sort tags case-insensitively #8709
Fixed
Fix wrong image used as a placeholder for channels avatars #8676
Fix various issues with player notification #8678 #8899
Localization
Make some much needed changes to the README #8372
Fix lang code for Chinese Simplified #8549
Development
Run CI on all release branches #8565
Clean up proguard file #8468
Update ExoPlayer to 2.18.1 #8536 #8687
Specify used ExoPlayer libraries #8469
Use minimum required permissions for GitHub workflows #8569
Checkstyle assign on same line #8601
Use ViewCompat.setBackgroundTintList() #8633
Update some misc libraries #8475
Use stream sorting #8635
Use Java 9 collection factories: List.of(), Set.of(), Map.of() #8631 #8679
Use range-limiting method MathUtils.clamp() #8651 #8737
Use Kotlin IO extensions #8648
Remove some unnecessary methods #8663 #8740
Remove deprecated method calls in FocusAwareCoordinator #8670
Deduplicate SQL queries to get feed streams #8621
Update OkHttp to 4.10.0 #8624
Update Lifecycle to 2.5.1 #8683
Update AndroidX Fragment to 1.4.1 #8691
Update Google Material to 1.6.1 #8692
Use Throwable.stackTraceToString() #8701
Update AppCompat to 1.4.2 #8667
Use WindowMetrics API #8656
Update AndroidX Room to 2.4.3 #8716
Remove uses of setBottomSheetCallback() #8669
Refactor LicenseFragmentHelper #8682
Make OnClickGesture an interface #8721
Reduce View.kt size #8708
Use toArray() with zero-length arrays #8724
Use Comparator factory methods #8728
Use Collectors.joining() #8738
Update FilePicker to our custom fork and disable Jetifier #8666
Add FAQ entry to the template checklists #8822
Use ListAdapter for search predictions #8719 #8972
Update Gradle to 7.5.1 #8751
Remove extra whitespace from issue and PR templates #8755
Clarify that span shouldn't be in translated READMEs #8754
Keep strong references to Picasso notification icon loading targets #8677
Create media session UI and fix player notification #8678