Commit Graph

3381 Commits

Author SHA1 Message Date
Stypox 71e46d1eca
Do not call showContentNotSupportedIfNeeded multiple times 2022-05-06 10:40:08 +02:00
Stypox 238aff7c31
channelContentNotSupported false by default 2022-05-06 10:38:47 +02:00
Stypox a1435bd566
Merge pull request #8259 from LingYinTianMeng/dev
Fix removing only fully watched videos from playlist
2022-05-05 18:08:41 +02:00
Stypox 59d8c570b7
Readd spaces 2022-05-05 18:04:33 +02:00
Robin 8f34f69397
Merge pull request #8332 from litetex/fix-routeractivity-theming
Fix Routeractivity theming
2022-05-05 14:08:01 +02:00
litetex 47af21d248
Merge pull request #8336 from Mamadou78130/fix8330
Fixed viewed counting
2022-05-04 19:33:36 +02:00
litetex c2a3c1cb8f
Add comment that explains why 0 is used
Co-authored-by: Stypox <stypox@pm.me>
2022-05-04 19:19:45 +02:00
litetex 1e2d76a686 Use non-static method 2022-05-04 19:09:41 +02:00
GGAutomaton 34468c16ad Show "content not supported" if needed 2022-05-04 23:34:07 +08:00
Robin b84c6b4b32
Merge pull request #8315 from ktprograms/fix-media-button-hide-controls
Fix hiding player controls when playing from media button
2022-05-04 11:28:05 +02:00
litetex c2bf7f09ce Fixed accidental reset of ``PlaybackParameterDialog`` on initialization 2022-05-03 21:42:09 +02:00
LingYinTianMeng c2762d3b5e
Update LocalPlaylistFragment.java 2022-05-03 09:37:35 +08:00
LingYinTianMeng 01d996a5c0
Merge branch 'TeamNewPipe:dev' into dev 2022-05-03 09:26:32 +08:00
LingYinTianMeng 50739277c4
Update LocalPlaylistFragment.java 2022-05-03 09:21:43 +08:00
Mamadou WAGUE e40e86500b Fixed viewed counting 2022-05-02 14:52:43 +02:00
litetex 6f0942ac6e Make sure Routeractivity does the same as MainActivity 2022-05-01 21:59:00 +02:00
Stypox 173b6c3f00
Fix wrong NonNull 2022-04-30 21:46:06 +02:00
Stypox 7646c683b5
Merge pull request #7989 from litetex/refactor-playback-parameter-dialog
Rewrote ``PlaybackParameterDialog``
2022-04-30 17:53:26 +02:00
kt programs 047fe21c14 Fix hiding player controls when playing from media button
DefaultControlDispatcher was removed in ExoPlayer 2.16.0, so the class
extending it that handled play/pause was removed in #8020.

The new solution is to use an instance of ForwardingPlayer. Call
sessionConnector.setPlayer with an instance of ForwardingPlayer that
overrides play() and pause() and calls the callback methods.
2022-04-30 17:43:30 +08:00
Stypox b59a601b52
Merge branch 'master' into dev 2022-04-29 16:41:18 +02:00
Stypox b8dbb3f073
Use 64 KiB as the default progressive load interval
This ensures a small value is used by default, solving buffering issues at the beginning of videos
2022-04-29 16:10:39 +02:00
LingYinTianMeng bb495f567c
Merge branch 'TeamNewPipe:dev' into dev 2022-04-27 21:03:09 +08:00
opusforlife2 9b3e43ffc1
Merge pull request #8279 from TiA4f8R/set-maximum-allowed-opacity-for-close-overlay-android-12-and-higher
Adapt opacity of popup close button to allow touches in other apps on Android >=12
2022-04-23 17:39:15 +00:00
TiA4f8R d5a0f8f23c
Set opacity of the popup close button to 0.8 on Android 12 and higher
Setting this opacity should allow touches outside NewPipe when using the popup player.

See https://developer.android.com/reference/android/view/WindowManager.LayoutParams#FLAG_NOT_TOUCHABLE for more details.
2022-04-22 15:09:20 +02:00
Nickoriginal ec5cfe0019
Update USER_AGENT in DownloaderImpl 2022-04-20 16:15:27 +03:00
LingYinTianMeng fd5626e9e2
Merge branch 'TeamNewPipe:dev' into dev 2022-04-19 16:36:42 +08:00
litetex 53bf3420e7
Merge pull request #8244 from seanzzy/issue-8058
Fix crash when open NewPipe from notification bar
2022-04-18 16:06:48 +02:00
Yingwei Zheng 127a27315e
Fix keyboard showing after the search box acquiring focus (#8227)
* Fix keyboard showing after the search box acquiring focus
* Fix the underlying problem as described in the issue #7647
2022-04-18 16:05:42 +02:00
litetex 671441bdf8
Merge pull request #8206 from TacoTheDank/bumpACRA
Update ACRA library
2022-04-18 16:04:37 +02:00
litetex 5c6e2ed071
Merge pull request #8233 from Stypox/fix-notification-settings-2
Fix new streams notifications preference screen
2022-04-18 15:25:45 +02:00
karyogamy 29fc0eff38 fixed: added comments for DefaultTrackSelector auto-select fix. 2022-04-17 18:34:31 -04:00
karyogamy 4917da2d2e fixed: disabled caption to no longer automatically re-enable on new player instance. 2022-04-17 13:26:39 -04:00
LingYinTianMeng 8ea98b64aa fix issue #7563 2022-04-17 22:23:03 +08:00
ZiyanZHANG 4904b48f5c Update PlayQueueActivity.java 2022-04-17 18:15:13 +08:00
litetex a311519314 Fix merge conflicts 2022-04-16 21:24:01 +02:00
litetex 1dc146322c Merged ``DrawableResolver`` into ``ThemeHelper`` 2022-04-16 21:21:57 +02:00
litetex 0f551baf37 Refactored code 2022-04-16 21:21:56 +02:00
litetex b9190eddfe Update DrawableResolver.kt
Nicer import 😉
2022-04-16 21:21:55 +02:00
litetex 44dada9e60 Use better Kotlin syntax
From the PR review
2022-04-16 21:21:54 +02:00
litetex 20602889be Added some doc and abstracted more methods 2022-04-16 21:21:52 +02:00
litetex 4b06536582 Reworked switching to semitones
Using an expandable Tab-like component instead of a combobox
2022-04-16 21:21:51 +02:00
litetex 621b38c98b Code improvements regarding stepSize 2022-04-16 21:21:50 +02:00
litetex 762cdc812c Reworked/Implemented PlaybackParameterDialog functionallity
* Add support for semitones
* Fixed some minor bugs
* Improved some methods
2022-04-16 21:21:48 +02:00
litetex 4cdf6eda2c Use viewbinding 2022-04-16 21:21:45 +02:00
litetex 652d50173e Major refactoring of PlaybackParameterDialog
* Removed/Renamed methods
* Use ``IcePick``
* Better structuring
* Keep skipSilence when rotating the device (PlayQueueActivity only)
2022-04-16 21:21:45 +02:00
Stypox fa58a81852
Fix New streams settings snackbar not being hidden on exiting 2022-04-16 19:01:30 +02:00
Stypox f2fc2cc24a
Check whether to enable New streams settings in onCreate to prevent flickering 2022-04-16 19:00:51 +02:00
TacoTheDank 248ca5ee12 Update ACRA library 2022-04-14 22:08:42 -04:00
TacoTheDank 3a419126f3 Use simpler DrawerLayout method 2022-04-14 16:50:28 -04:00
Robin 3fb5073feb
Merge pull request #8150 from karyogamy/caption-fix
Fix caption auto-selection not reflected in player GUI
2022-04-14 10:10:53 +02:00
karyogamy 9818f179c4 fixed: auto-generated captions to have lower selection priority as manual captions. 2022-04-11 22:06:43 -04:00
litetex 74c9a3dc50
Merge pull request #8146 from GGAutomaton/fix-7825
Use newInstance in PlaylistDialog
2022-04-10 15:04:12 +02:00
karyogamy 55fc3fc177 added: caption language stem utility to support language variant conversion between videos. 2022-04-08 18:21:30 -04:00
karyogamy 724eac9168 fixed: player caption auto-selection not reflected in gui.
fixed: player caption selection skipping on multiple language variants.
2022-04-07 20:02:56 -04:00
Robin a528cee5f4
Merge pull request #8127 from litetex/fix-SparseItemUtil
Fix `SparseItemUtil` so we don't enqueue twice
2022-04-07 17:21:18 +02:00
GGAutomaton 2e771cd65a Fix crash when rotating device on unsupported channels 2022-04-04 23:58:39 +08:00
GGAutomaton 638f227b51 Use newInstance in PlaylistDialog 2022-04-04 13:50:27 +08:00
TiA4f8R 3261855b8f
Fix fetch of video streams (when switching between tracks in a play queue) and subtitles when using a seamless transition between background and video players
Make the use of the new method setDisabledTrackTypes in DefaultTrackSelector.ParametersBuilder, which disables selection of tracks type for every TrackGroup instead of the current group, which is the current behavior.
This removes the use of the deprecated of setSelectionOverride method.

Note that for progressive media, the content is still fetched, but only for initialization purposes (so requests are pretty small, most of times with a few kilobytes size).
2022-04-03 14:07:56 +02:00
litetex 6b1a6d264b Better naming 2022-04-02 15:44:06 +02:00
Mauricio Colli 99d62381b9 Fix download dialog selector layout and add some tests 2022-04-02 15:25:08 +02:00
litetex 860d28e16c
Merge pull request #8020 from karyogamy/exo-update-v17
ExoPlayer 2.17.1 update and MediaSource management rework
2022-04-02 14:53:58 +02:00
litetex b5fa93eda0 Fix `SparseItemUtil` loading
* Added a missing `return` statement
* `fetchUploaderUrlIfSparse` now has a similar layout to `fetchItemInfoIfSparse`
2022-03-30 21:11:15 +02:00
karyogamy a00bc95acc updated: source loading error for FailedMediaSource to wait for 3 seconds before allowing retry.
updated: minor style fixes.
2022-03-27 13:24:37 -04:00
karyogamy d289dc8a53 updated: onPlayerError to not catch unspecified source errors so notifications are created.
updated: Throwable usage to Exceptions.
updated: minor styles and documentations.
2022-03-26 20:17:52 -04:00
litetex 102c05e927 FIx breaking changes 2022-03-26 21:21:07 +01:00
litetex 1ecb0ca081
Merge pull request #7977 from Stypox/error-notification-kitkat
Fix error notification on KitKat
2022-03-25 20:00:48 +01:00
karyogamy b81eb35f3d added: documentations on lifecycles for FailedMediaSource and LoadedMediaSource.
fixed: onPlaybackSynchronize to rewind when not playing, which was incorrectly removed in previous commit.
fixed: sonar and checkstyle issues.
2022-03-19 22:40:32 -04:00
Stypox 6e8c9f92cb
Merge branch 'dev' into pr2335 2022-03-19 22:29:10 +01:00
Stypox 3d9d25df52
Remove backoff criteria: it never kicked in
It never kicked in since we are never returning a retry() Result, but always either success() or failure() (see createWork() function). Also, there is already a default (exponential backoff starting from 30 seconds), so no need to override it.
2022-03-19 21:55:00 +01:00
karyogamy 69646e5b5d added: documentations to MediaItemTags and Player.
fixed: checkStyle failures.
2022-03-19 15:56:45 -04:00
karyogamy 4e459b3383 updated: ExoPlayer to 2.17.1.
added: MediaItemTag for ManagedMediaSources.
added: silent track for FailedMediaSource.
added: keyframe fast forward at initial playback buffer.
added: error notification on silently skipped streams.
2022-03-19 15:56:45 -04:00
litetex 70d9a77e9b
Merge pull request #8073 from Stypox/bump-checkstyle
Update checkstyle to 10.0 and fix various related issues
2022-03-19 14:37:52 +01:00
litetex 6d2b5d976d
Merge pull request #8068 from TacoTheDank/lintCleaning
Some lint cleaning
2022-03-19 14:37:34 +01:00
litetex 57231382a6
Merge pull request #8066 from TacoTheDank/simpleSeekbarChange
Create stub implementation for OnSeekBarChangeListener
2022-03-19 14:37:10 +01:00
Stypox 53f8415e9b
Use @SuppressWarnings for checkstyle suppressions & warnings
It's better to use @SuppressWarnings instead of the suppressions file, so that the warning suppression is at the place where it acts.
2022-03-18 23:57:11 +01:00
TacoTheDank 4dafe424cf De-duplicate showLicense methods 2022-03-18 13:48:07 -04:00
TacoTheDank bc4a0a575c Clean up the about package a bit 2022-03-18 13:18:23 -04:00
TacoTheDank cf213affa2 Annotate some NonNulls, some lint cleaning 2022-03-18 13:15:44 -04:00
TacoTheDank 979a320347 Delete some unused code 2022-03-17 23:26:34 -04:00
TacoTheDank 20bddd8e47 Use Animator.addListener() KTX extension 2022-03-17 22:01:51 -04:00
TacoTheDank 86f335b01f Create stub implementation for OnSeekBarChangeListener 2022-03-17 21:49:04 -04:00
litetex 67651354d5 Fixed conflicts 2022-03-16 15:58:46 +01:00
litetex cefb52471f Better naming 2022-03-16 15:52:30 +01:00
litetex ee5e0e13b7 Made ``onClick`` less (cognitive) complex 2022-03-16 15:52:30 +01:00
litetex 30a8f25d52 Refactored code 2022-03-16 15:47:04 +01:00
XiangRongLin d348c2099e stupid checkstyle 2022-03-16 15:47:04 +01:00
XiangRongLin 6a400dda7b delete unused methods 2022-03-16 15:47:03 +01:00
XiangRongLin 080c4ba680 Extract 2 view click listeners from Player 2022-03-16 15:47:03 +01:00
litetex 37aca3f1c7
Merge pull request #7981 from Stypox/sparse-items-deduplic
Deduplicate code for fetching stream info when sparse
2022-03-16 15:18:10 +01:00
litetex 0158f1363b
Merge pull request #7518 from mauriciocolli/remove-icon-duplicates
Remove icon duplicates and fix some theming issues
2022-03-15 21:51:04 +01:00
litetex f47f2d13fa
Merge pull request #5878 from SpinHit/spinhit/addingDeleteConfirmation
Add a confirmation button when deleting all files in downloader
2022-03-15 21:49:46 +01:00
litetex 6fe6f4b3e0
Merge pull request #7978 from TacoTheDank/bumpSomeLibraries
Update some AndroidX libraries
2022-03-15 21:48:49 +01:00
litetex 00e4631b3b
Merge pull request #7963 from Stypox/android-tv-player
Improve player UI and navigability for Android TV
2022-03-15 21:41:48 +01:00
litetex 2e7503ff78
Merge branch 'dev' into bumpSomeLibraries 2022-03-15 21:34:41 +01:00
ktprograms 02fa5aa0fa
Implement appending queue to playlist in main player (#8008)
This also allows saving a remote playlist locally.

- Add an "Add to playlist" button to the queue menu in the Player.
- Move the appendAllToPlaylist functionality from PlayQueueActivity to
Player.

Fixes: #8004
2022-03-15 18:32:39 +01:00
Stypox 9b4a67276a
Fix comments and rearrange code 2022-03-15 15:20:25 +01:00
Stypox b607a09125
Merge pull request #7975 from TacoTheDank/updateCheckerRewrite
Migrate app update checker to AndroidX Work
2022-03-15 14:20:40 +01:00
Stypox af89f05011
Merge pull request #7341 from ktprograms/external-play-hide-controls
Fix player controls not hiding if resumed from media button
2022-03-15 13:43:35 +01:00
TacoTheDank b8b97fa6d4 Convert NewVersionWorker to Kotlin 2022-03-03 13:34:35 -05:00
TacoTheDank 71f141f3f8 Migrate CheckForNewAppVersion to Worker (and rename it) 2022-03-03 13:26:57 -05:00
TacoTheDank 81fef1be19 Migrate CheckForNewAppVersion to JobIntentService 2022-03-03 13:24:12 -05:00
TacoTheDank 0f175de599 Kotlin-ize ReleaseVersionUtil, merge with NewVersionManager 2022-03-03 13:21:50 -05:00
TacoTheDank 1602befc51 Move utility methods out of CheckForNewAppVersion 2022-03-03 13:19:06 -05:00
Stypox 162a838afc
Deduplicate code for fetching stream info when sparse
Fixes #7941
2022-03-03 16:54:40 +01:00
Stypox e588abd4e7
Restore handling SPACE as play-pause only in fullscreen
When not in fullscreen SPACE should be not handled by the player, and hence result in a scroll down
2022-03-03 10:14:58 +01:00
TacoTheDank f85b206bdf Update some AndroidX libraries 2022-03-02 11:01:01 -05:00
Stypox 2a9733fbaf
Fix error notification on KitKat
It was crashing due to a drawable icon being used; also use NotificationManagerCompat
2022-03-02 14:14:40 +01:00
Mauricio Colli 96185faca6
Remove manual menu creation from some fragments
Doing this programmatically is just a no-go when themes are being set
in some other places (the toolbar is using a custom theme, in this
case), so, instead of hunting down the proper theme, just let the
system do its work.
2022-03-02 12:37:44 +01:00
Stypox 5f16e4ef87
Replace R.string.yes with R.string.ok
Android doesn't use yes/no but ok/cancel usually, so this should be done here, too
2022-03-02 12:21:25 +01:00
Spinhit 483dc06ecb
Add confirmation button before deleting all files.
Co-authored-by: TiA4f8R <74829229+TiA4f8R@users.noreply.github.com>
2022-03-02 11:31:52 +01:00
karyogamy ab45efceab - added: variable load check interval for progressive stream.
- added: preferences to allow user setting of above.
2022-03-01 20:14:53 +01:00
kt programs 62c0e6605c Remember adjustment step size for playback controls (speed and pitch)
- Add adjustment_step_key to settings_keys.xml to be used when
saving/loading the step size.
- Remove the global stepSize variable and the code that saves it to
outState/loads it from savedInstanceState because it's now saved to
Shared Preferences.
- Move initially setting step size to setupStepSizeSelector to be
consistent with the other view setup methods, using the value loaded
from Shared Preferences.
- Save the step size to Shared Preferences inside setStepSize.

Fixes: #7031
2022-03-01 16:27:20 +08:00
litetex f1c6988552
Merge pull request #7952 from TacoTheDank/bumpKotlin
Update Kotlin to 1.6.10
2022-02-28 19:42:38 +01:00
Stypox 146062d921
Fix player pop-ups not giving feedback on touch/focus 2022-02-27 18:49:16 +01:00
Stypox 96c4201929
Fix controls shown below queue/segments list when using DPAD
Also invert if
2022-02-27 18:49:16 +01:00
Stypox a0bbcd2fee
Fix player queue/segments list buttons not focusable with DPAD
Now the in-player play queue and the segments list are closeable
2022-02-27 18:49:16 +01:00
Stypox 3f7ba2e3d1
Merge pull request #7565 from haklc/dev
Change pitch by semitones
2022-02-27 09:58:38 +01:00
TacoTheDank 678edb1846 Update ktlint to 0.44.0 2022-02-26 16:08:10 -05:00
litetex ccc3d38c45
Merge pull request #7910 from avently/equalscheck
Better equals check
2022-02-26 16:20:27 +01:00
litetex 37517c7dd1
Merge pull request #7570 from TeamNewPipe/improvement/infoItemDialogBuilder
Refactor generating InfoItemDialog's
2022-02-26 16:18:39 +01:00
litetex a95318a4f9
Merge pull request #7349 from TiA4f8R/seamless-transition-players
Add seamless transition between background and video players when putting the app in background (for video-only streams and audio-only streams only)
2022-02-26 16:16:18 +01:00
litetex 46fad32837
Merge pull request #7905 from Stypox/fix-room-unused-columns
Fix Room warning about unused columns during build
2022-02-26 16:15:01 +01:00
litetex 5be40f62f3
Merge pull request #7904 from Stypox/fix-raw-use-of-parameterized-class
Solve Java warning "Raw use of parameterized class"
2022-02-26 16:14:23 +01:00
Stypox 5fea12d8eb
Small code improvements
Removed some non-translatable strings and just hardcoded them in the code, like it's being done for other string separators. This also deduplicates some code by using Localization.
Used some Kotlin feature to reduce code.
2022-02-26 10:40:24 +01:00
TacoTheDank 1a000fecd5 Replace CircleImageView with ShapeableImageView 2022-02-23 15:11:25 -05:00
Avently 01e0dd50ad Added serviceId check while comparing PlayQueues 2022-02-23 00:53:39 +03:00
TobiGr d3bc184971 Clarify that only StramInfoItems are accepted by the builder 2022-02-21 21:50:30 +01:00
Tobi c42f29446d
Merge pull request #7924 from litetex/revert-7451
Revert "Respect cutouts when playing in MultiWindow"
2022-02-21 21:36:07 +01:00
litetex 1030e09fc1
Merge pull request #7901 from Stypox/player-small-refactor
Small refactor in player class
2022-02-21 20:48:03 +01:00
litetex 96b930cd07 Revert "Respect cutouts when playing in MultiWindow"
This reverts commit c92a90749e.
2022-02-21 20:30:56 +01:00
litetex de08edb831
Merge pull request #7898 from Stypox/regression-arc
Have fast seek overlay arc go under system ui
2022-02-21 20:19:22 +01:00
TobiGr ee477b25e5 Move StreamDialogEntry.openChannelFragment to NavigationHelper 2022-02-20 20:26:27 +01:00
TobiGr 277f21d5b2 Move Classes related to InfoItemDIalog into own package 2022-02-20 20:17:04 +01:00
TobiGr a7d5d9a1d6 Fix rebase 2022-02-20 20:17:04 +01:00
TobiGr fd0d76e866 Apply feedback
Return this in InfoIrtemDialog.Builder methoods.
Move null checks for InfoIrtemDialog.Builder into constructor.
Fix and add some more docs.
2022-02-20 20:17:04 +01:00
TobiGr 646d8f431c Use identical method names for creating the InfoItemDialog in Fragments 2022-02-20 20:17:04 +01:00
TobiGr ef0d562702 Use ErrorActivity to notifiy about errors occourred while loading channel details 2022-02-20 20:17:04 +01:00
TobiGr 962fe9c36d Use Context instead of Activity
Improve docs
2022-02-20 20:17:04 +01:00
TobiGr 50e2385e82 Add default entries automatically 2022-02-20 20:17:04 +01:00
TobiGr 1cd3ef5dba Extract entries into beginning and end category 2022-02-20 20:17:04 +01:00
TobiGr 80157fc1be Refactor generating InfoItemDialog's
This commit refactors the way `InfoItemDialog`s are generated. This is necessary because the old way used  the `StreamDialogEntry` enum for most of the dialogs' content generation process. This required static variables and methods to store the entries which are used for the dialog to be build (See e.g.`enabledEntries` and methods like `generateCommands()`). In other words, `StreamDialogEntry` wasn't an enumeration anymore.

To address this issue, a `Builder` is introduced for the `InfoItemDialog`'s genration. The builder also comes with some default entries and and a specific order. Both can be used, but are not enforced. 

A second problem that introduced a structure which was atypical for an enumeration was the usage of non-final attributes within `StreamDialogEntry` instances. These were needed, because the default actions needed to overriden in some cases.

To address this problem, the `StreamDialogEntry` enumeration was renamed to `StreamDialogDefaultEntry` and a new `StreamDialogEntry` class is used instead.
2022-02-20 20:17:04 +01:00
TiA4f8R c5fc37150d
Update JavaDoc of VideoPlaybackResolver.getStreamSourceType() 2022-02-20 19:40:03 +01:00
TiA4f8R 8932adbf88
Apply suggested change and add a note about data consumption for HLS streams in background
ExoPlayer right now fetches HLS video tracks even if you disable them (with setRendererDisabled or setSelectionOverride).
See issue 9282 of ExoPlayer's issue tracker for more information.
2022-02-20 19:40:03 +01:00
TiA4f8R d27d36b76a
Adress requested changes 2022-02-20 19:40:02 +01:00
TiA4f8R ba804c7d4a
Use a enum to understand better what source type is used.
This commit also allows a seamless transition for livestreams.
2022-02-20 19:40:02 +01:00
TiA4f8R 3db37166b4
Apply suggestion 2022-02-20 19:40:02 +01:00
TiA4f8R bf02a569ee
Fix a NullPointerException when the current metadata is null
Reload the play queue manager and set the recovery in this case, like on the current behavior (without this PR).
2022-02-20 19:40:02 +01:00
TiA4f8R a1c5c94753
Add some comments and a JavaDoc 2022-02-20 19:40:01 +01:00
litetex 7a356412d5
Fixed typo 2022-02-20 19:40:01 +01:00
litetex bb27bf9d34
Resolver: Cleaned up ``isVideoStreamVideoOnly``
* Replaced by ``wasLastResolvedVideoAndAudioSeparated``
* Uses an ``Optional`` instead (we can't determine if the video and audio streams are separated when we did not fetch it)
2022-02-20 19:38:41 +01:00
litetex a489f40b76
Fixed checkstyle problems
Unable to compile!

* Cleaned up ``getMostCompactAudioIndex`` and ``getHighestQualityAudioIndex`` into a new method ``getAudioIndexByHighestRank``
* Removed unreadable code and use Java Streams API
* Tests work as expected
2022-02-20 19:38:40 +01:00
litetex 8ed87e7fbb
Improved ``ListHelper#getSortedStreamVideosList`` 2022-02-20 19:38:40 +01:00
TiA4f8R cc96ac173c
Apply suggestion 2022-02-20 19:38:40 +01:00
TiA4f8R 79f8270c35
Prefer video-only streams to video streams
Prefering video-only streams to video streams for our player will allow us to make seamless transitions on 360 and 720p qualities on YouTube.
External players and the downloader are not affected by this change.
2022-02-20 19:38:40 +01:00
TiA4f8R 336f9f3813
Add seamless transition between background player and video players (for video-only and audio-only streams only)
This is only available when playing video-only streams (and when there is no audio stream and only video streams with audio) and audio-only streams.
For more details about which conditions are required to get this transition, look at the changes in the useVideoSource(boolean) method of the Player class.
2022-02-20 19:38:39 +01:00
Avently 835c5e9d43 Better equals check
It ensures that queues are not the same. Without this check when you have multiple videos in the backstack and navigating back via Back button you'll get duplicated videos
2022-02-19 22:12:31 +03:00
Stypox 4789cf6c31
Use Java streams in AbstractInfoPlayQueue 2022-02-19 18:01:16 +01:00
Stypox 5f1f52b6ce
Remove useless constructor in *PlayQueue
Also removes unused <> parameter in AbstractInfoPlayQueue and deduplicates constructor code in extending classes
2022-02-19 17:49:43 +01:00
Stypox 62abfa96b8
Solve Java warning "Raw use of parameterized class" 2022-02-19 17:30:38 +01:00
Stypox a8a96b7631
Fix Room warning about unused columns during build
The warning was: "The query returns some columns [...] which are not used by ..."
2022-02-19 17:13:57 +01:00
Stypox af80d96b9e
Merge pull request #7659 from litetex/load-enough-initial-data
Load enough initial items (into BaseListFragment and descendants)
2022-02-19 15:43:13 +01:00
Stypox 3c23fb0b13
Small refactor in player class 2022-02-19 13:30:55 +01:00
TobiGr ff8e44e4f3 Merge branch 'dev' into feature/notifications 2022-02-19 12:34:44 +01:00
Stypox da12b92d75
Fix fast seek arc not going under system ui 2022-02-19 11:29:33 +01:00
TobiGr a3f99bd781 Merge branch 'master' into dev 2022-02-19 10:56:19 +01:00
Stypox 00767f4bf3 Fix fast seek overlay arc not correctly centered
This happened in fullscreen player: while play-pause, brightness, volume, ... buttons were correctly centered in the app UI, the fast seek overlay was centered in the system UI, causing a mismatch between the two that looked ugly
2022-02-18 22:34:55 +01:00
litetex 2acaefdb2a Fixed scrolling not working when rotating device 2022-02-17 20:59:41 +01:00
litetex 9c2cdd2513 Removed useless code
https://github.com/TeamNewPipe/NewPipe/pull/7659#discussion_r793752985
2022-02-17 20:59:40 +01:00
litetex 01683aa816 Code improvements 2022-02-17 20:59:39 +01:00
litetex 85f701b94e Fixed listener not re-registering after e.g. a new search is started 2022-02-17 20:59:38 +01:00
litetex ff7cfe4715 Reverted to loading behavior of #7638 and improved it
The previous/reverted behavior caused unwanted data transmission:
* Removed loading via handleResults/loadMoreItems-callback because the RecyclerView is apparently not immediately updated in the UI when the data is set which causes one load of data to much.
2022-02-17 20:59:38 +01:00
litetex d3cd3d62b4 Tried to repair #4475 and #3368
* Always recreate the footer so that it's not possible to attach the same instance twice
* Removed support for creating a custom footer as it's never used
* Supply the header with an supplier
  * This might not fix the problem completely as we currently can only create the header once inside Channel, Playlist and RelatedItems-Fragment - allowing creation of multiple headers might be done in the future if the issues still arise
* Other minor fixes
2022-02-17 20:59:36 +01:00
litetex 91c67b085b Code improvements
Removed - partial - stupid code.
2022-02-17 20:59:35 +01:00
litetex cd8c7ec3c0 Removed InfoListAdapter from checkstyle-suppressions
because if you modify something in the code the suppressions-file no longer matches
2022-02-17 20:59:34 +01:00
litetex 2c51a7970d Improved InfoListAdapter
* Removed unused code
* Cleaned it up
* Made code more readable
2022-02-17 20:59:33 +01:00
litetex fb362022f7 Load enough initial data into BaseListFragment 2022-02-17 20:59:33 +01:00
Martin 616fb47983
Merge branch 'TeamNewPipe:dev' into dev 2022-02-17 10:20:44 +01:00
Robin 9f8e8c0856
Merge pull request #7679 from TacoTheDank/reportSenderKotlin
Update ACRA library
2022-02-14 15:35:00 +01:00
Tobi 5e593f687d
Merge pull request #7860 from litetex/fix-settings-search-language
Use the correct app language when searching in the settings
2022-02-11 21:20:08 +01:00
litetex 3223ec04e3 Use the correct app language when searching in the settings 2022-02-11 20:58:44 +01:00
TiA4f8R 608e73e2f2
Set workaround for playback position reset when switching to main player with content thumbnail
The workaround set before was not applied when switching to main player with content thumbnail from popup or background player. This commit fixes this by applying the workaround when switching to main player with content thumbnail from popup or background player.
2022-02-11 19:32:13 +01:00
litetex be95d7fe0f
Merge pull request #7704 from Stypox/fix-stream-menu-crash
Fix crash when long-pressing stream while player is starting
2022-02-09 19:53:09 +01:00
martin 906ee75278 Fixed checkstyle violation 2022-02-05 12:31:07 +01:00
martin 4049abf2c0 Addressed comment in PR 2022-02-04 16:15:55 +01:00
martin 47798febed fetch and merge 2022-02-04 15:34:00 +01:00
TacoTheDank 79060f0bfe Update ACRA library 2022-02-02 13:12:29 -05:00
TiA4f8R 52cc4a0a05
Add JavaDoc for PlayerDataSource.PLAYLIST_STUCK_TARGET_DURATION_COEFFICIENT 2022-01-30 20:42:02 +01:00
TiA4f8R e103e4817c
Apply suggested changes and remove the CustomHlsPlaylistTracker class 2022-01-30 20:42:02 +01:00
TiA4f8R d0637a8832
Suppress SonarLint NullPointerException warnings in CustomHlsPlaylistTracker
They seem to be wrong, by looking at the class work and at the return of CustomHlsPlaylistTracker's methods.
2022-01-30 20:42:02 +01:00
TiA4f8R 94f774b82d
Use a custom HlsPlaylistTracker, based on DefaultHlsPlaylistTracker to allow more stucking on HLS livestreams
ExoPlayer's default behavior is to use a multiplication of target segment by a coefficient (3,5).
This coefficient (and this behavior) cannot be customized without using a custom HlsPlaylistTracker right now.

New behavior is to wait 15 seconds before throwing a PlaylistStuckException.
This should improve a lot HLS live streaming on (very) low-latency livestreams with buffering issues, especially on YouTube with their HLS manifests.
2022-01-30 20:42:01 +01:00
TiA4f8R 651b79d3ed
Catch properly BehindLiveWindowExceptions
Instead of trying to reload the play queue manager and then throwing an error, BehindLiveWindowExceptions now make the app seek to the default playback position, like recommended by ExoPlayer.
The buffering state is shown in this case.

Error handling of other exceptions is not changed.
2022-01-30 20:42:01 +01:00
litetex dfa606ef49
Merge pull request #7586 from litetex/add-preference-search
Made preferences searchable
2022-01-30 17:08:04 +01:00
litetex 2886bc3b01
Merge pull request #4833 from vkay94/youtube-rewind-forward
YouTube's Fast Forward/Rewind behavior
2022-01-30 17:07:15 +01:00
Stypox 71c5aaa11e
Do not show enqueue button if play queue not ready 2022-01-27 17:11:16 +01:00
Stypox 17c0fffd73
Merge pull request #7538 from ktprograms/fix-queue-channel-details-not-in-db
Load uploaderUrl when showing Channel Details from Play Queue
2022-01-26 09:58:32 +01:00
litetex 8a069b497f
Code cleanup
Co-authored-by: Stypox <stypox@pm.me>
2022-01-25 20:47:53 +01:00
litetex af79479716 Fixed "Changing the seeks duration does not update the displayed seconds" 2022-01-25 20:44:49 +01:00
Stypox 5108d75682
Fix NPE and add some `@Nullable`s
Fix NullPointerException in PlayerHolder.getQueueSize() and add `@Nullable` here and there so that the linter reports risks of NPEs
2022-01-25 17:37:20 +01:00
ktprograms 1e652b159e Load uploaderUrl when showing Channel Details from Play Queue
This checks if the uploaderUrl is in the database, if not it gets the
uploaderUrl and puts it in the database. This is similar to the fetching
of uploaderUrl when it doesn't exist done in #6919.

Also use createNotification when error occurs in getStreamInfo.
2022-01-25 11:00:34 +08:00
TiA4f8R ea07d7751b
Fix first item played in playlists when switching player type or resolution
The issue was caused by an ExoPlayer change, which when setting a media source, resets the current playback position and the current window index by default.

Also set player recovery in more places to fix playback position not propely set in some cases after a player type switch.
2022-01-24 21:40:16 +01:00