Isira Seneviratne
a1f2b7f8e8
Switch to Files.createDirectories()
2023-09-20 19:44:23 +02:00
TobiGr
0acc3532c9
Remove useless override
2023-09-20 15:42:09 +02:00
TobiGr
748c2babe9
Add comments and annotations
2023-09-20 15:41:21 +02:00
TacoTheDank
b1faed586d
Replace MathUtils.clamp with Kotlin coerceIn
2023-09-19 16:32:37 -04:00
Stypox
725c18eada
Merge pull request #10165 from TeamNewPipe/fix/media-format
...
Fix downloads of streams with missing MediaFormat
2023-09-19 15:54:12 +02:00
Stypox
992bb5d7be
Simplify retrieveMediaFormatFromContentTypeHeader
...
Also check for nullity
2023-09-19 15:33:49 +02:00
TobiGr
8f83e39970
Fix three memory leaks
...
Add documentation to BaseFragment.initViews(View, Bundle) and BaseFragment.initListeners()
2023-09-19 00:13:16 +02:00
TobiGr
64da7a06c0
Fix previous ActionBar title visible for a few miliseconds when opening ChannelFragment
2023-09-18 23:22:32 +02:00
TobiGr
57eaa1bbe1
Apply review
...
Co-Authored-By: Audric V <74829229+AudricV@users.noreply.github.com>
2023-09-18 23:22:32 +02:00
TobiGr
109d06b4bb
Deduplicate code to initialize ClickListeners on playlist controls
...
Add the separate utility class PlayButtonHelper to handle the initialization of the listeners.
The ClickListeners on playlist controls had different behaviours. This commit fixes that.
The commit also refactors the way how the app determines whether it is started for the first time. The previous version was not clean and recent in this PR caused it to fail.
2023-09-18 23:22:32 +02:00
AudricV
f2ee3859ab
Hide the upload date element on the About tab
...
This empty element should be always hidden for this tab, as there is no upload
date available for channels.
2023-09-18 23:22:32 +02:00
AudricV
89dc44be61
Always show the About tab and support having no description
2023-09-18 23:22:32 +02:00
TobiGr
6ab8716e69
Extract actual feed loading code into separate method
...
Increase readability
2023-09-18 23:22:32 +02:00
TobiGr
5c7c382323
Add missing @Override
annotations to setupMetadata() implementations
2023-09-18 23:22:32 +02:00
Stypox
78b4b9441e
Update NewPipeExtractor and adapt imports
2023-09-18 23:22:32 +02:00
Stypox
1519527356
Fix loading feed when a channel tab is empty
2023-09-18 23:22:32 +02:00
Stypox
6b3a178f2a
Show snackbar with feed loading errors
2023-09-18 23:22:32 +02:00
Stypox
c48e702a50
Improve placeholder channel banner handling
...
Now the placeholder gets hidden if there is no banner url or the user disabled images, to save space
2023-09-18 23:22:32 +02:00
Stypox
1061bce4f3
Add avatar and bannner URLs to channel About tab
2023-09-18 23:22:32 +02:00
Stypox
013d513450
Add space above channel description (About tab)
2023-09-18 23:22:32 +02:00
ThetaDev
28d952a643
feat: filter fetched channel tabs
2023-09-18 23:22:32 +02:00
ThetaDev
753a92055c
feat: add playlist controls to channel tab
2023-09-18 23:22:32 +02:00
Stypox
371f986773
Fix some code smells
2023-09-18 23:22:32 +02:00
Stypox
a1e8b9be4e
Fix channel tabs in main page setting title themselves
2023-09-18 23:22:32 +02:00
Stypox
c076a0f771
Channels are now an Info
...
The previous "main" tab is now just a normal tab returned in getTabs().
Various part of the code that used to handle channels as ListInfo now either take the first (playable, i.e. with streams) tab (e.g. the ChannelTabPlayQueue), or take all of them combined (e.g. the feed).
2023-09-18 23:22:32 +02:00
ThetaDev
b5893f3fa3
fix: notification menu option disappears when switching tabs
2023-09-18 23:22:32 +02:00
Stypox
e3614cb932
Move channel header to collapsible app bar
2023-09-18 23:22:32 +02:00
ThetaDev
193c3e5b3d
fix: NPE in ChannelFragment::onSaveInstanceState
2023-09-18 23:22:32 +02:00
ThetaDev
c03c344f49
refactor: rename ChannelInfo to ChannelAbout
...
fix: localize about tab name
2023-09-18 23:22:32 +02:00
ThetaDev
25e3031830
cleanup: remove empty constructor from ChannelFragment
2023-09-18 23:22:31 +02:00
ThetaDev
39b4ed082c
refactor: common code from ChannelInfo/Description -> BaseInfoFragment
2023-09-18 23:22:31 +02:00
ThetaDev
be548dcb52
fix: channel tab title not being set
2023-09-18 23:22:31 +02:00
ThetaDev
4357a34339
fix: ChannelFragment: save last tab
2023-09-18 23:22:31 +02:00
ThetaDev
2c03ba204e
refactor: adjustments to updated tab extractor API
2023-09-18 23:22:31 +02:00
ThetaDev
2c98d079de
fix: cache channel data
2023-09-18 23:22:31 +02:00
ThetaDev
16cd47fa2e
fix: missing album tab key
2023-09-18 23:22:31 +02:00
ThetaDev
74a8bfba93
feat: add album tab
2023-09-18 23:22:31 +02:00
ThetaDev
c929f00456
fix: remember selected channel tab on screen rotation
2023-09-18 23:22:31 +02:00
ThetaDev
bb062f07f9
feat: add option to hide channel tabs
2023-09-18 23:22:31 +02:00
ThetaDev
4859ab67d4
feat: prettier channel info page
2023-09-18 23:22:31 +02:00
ThetaDev
6d84d19520
fix: handle unsupported content
2023-09-18 23:22:31 +02:00
ThetaDev
8627efd0a1
fix: get notified menu option on all tabs
2023-09-18 23:22:31 +02:00
ThetaDev
6d13cf5e71
feat: add channel tabs
2023-09-18 23:22:31 +02:00
Rishab Aggarwal
7e2ab0d384
Improved downloading experience ( #10407 )
...
* added LoadingDialog for improving download experience
* [LoadingDialog] Apply some review comments and make title customizable.
* removed permission handling from loading Dialog
* fix checks
* remove <p> Tag from first sentence
---------
Co-authored-by: rishabaggarwal <Rishabaggarwal@sharechat.com>
Co-authored-by: TobiGr <tobigr@users.noreply.github.com>
2023-09-18 05:24:03 +05:30
TobiGr
19640d5e7c
Add documentation to increase maintainablilty
...
Rename a variable
2023-09-18 01:45:53 +02:00
Edward
d1a82a85cd
Include a high-resolution option in the default resolution settings.
2023-09-18 01:15:22 +02:00
TobiGr
f2c2f1735e
Replace RuntimeException with IOException
...
The RuntimeException was not explicitly declared and thus not caught at every call of this constructor. This change ensures that this possible exception is handled by the dedicated error handlers.
2023-09-17 15:31:19 +02:00
TobiGr
4e41e12bd2
Small code and doc improvements
...
Remove unnecessary else-branch and use Collections.isEmpty().
Add doc comment for splitFilename()
2023-09-17 15:31:19 +02:00
Isira Seneviratne
6df808f266
Use Path in the download helper classes.
2023-09-17 14:50:26 +02:00
AudricV
2d16a06bc4
Show play queue button in main player when there is one stream
2023-08-30 19:45:53 +02:00
TobiGr
68957d3880
Fix grammar in JDoc
2023-08-22 16:23:22 +02:00
TobiGr
62f0abee47
Simplify MainActivity.tabSelected(MenuItem)
...
Rename variables and skip iterations if kiosk was found.
2023-08-19 21:58:44 +02:00
TobiGr
9118ecd68f
Remove unnecessary debug warning and use JDoc instead
2023-08-17 16:51:31 +02:00
Yingwei Zheng
ef40ac7bb3
Fix a typo
2023-08-16 22:02:12 +02:00
Yingwei Zheng
881d04ba1e
Refactor database migration test and string trimming
2023-08-16 22:02:12 +02:00
TobiGr
4af5b5f6f2
Fix database migration and string trimming
...
Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com>
2023-08-16 22:02:12 +02:00
TobiGr
90f0809029
Trim search string and remove duplicate records from the database
...
Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com>
2023-08-16 21:26:35 +02:00
TobiGr
db5ed48dbb
Fix some sonar warnings and make some smaller improvements
2023-08-14 23:09:50 +02:00
TobiGr
ba84e7eead
Display "Unknown quality" if quality is unknown and not MediaFormat name
2023-08-14 23:06:32 +02:00
TobiGr
e51067177e
Add tests for new methods retrieving MediaFormats
...
Fix failing tests
2023-08-14 23:06:32 +02:00
TobiGr
f3859ed710
Retrieve MediaFormat for streams that could not be extracted by the extractor
2023-08-14 23:06:32 +02:00
TobiGr
0db12e5561
Rename StreamSizeWrapper to StreamInfoWrapper
2023-08-14 22:48:39 +02:00
Stypox
bef79e77aa
Update app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java
2023-08-06 10:07:13 +02:00
TobiGr
32f74273f0
Adjust empty state message for ListInfoFragments depending on Info stream type
...
Show "no streams" for SoundClound.
Show "no live streams" for MeidaCCCLiveStreamKiosk.
Otherwise show "no videos"
2023-08-05 03:50:28 +02:00
TobiGr
c69bcaafbb
Fixed some Sonar warnings
2023-08-03 12:02:08 +02:00
J-Stutzmann
c06d61a83c
Made audio-focus calls respect mute state.
2023-08-02 23:44:23 -04:00
TobiGr
bc4f0c699f
Ignore false positive inspection
2023-08-02 20:44:30 +02:00
TobiGr
d6a1170ddb
Replace settings migration with automatic check for device blacklist version
2023-07-31 23:00:54 +02:00
TobiGr
40d102fcb5
Disable media tunneling by default on new devices
...
Sony BRAVIA_VH1, BRAVIA_VH2, BRAVIA_ATV2, BRAVIA_ATV3_4K
Phillips 4K (O)LED TV (PH7M_EU_5596)
Panasonic 4KTV-JUP (TX_50JXW834)
Bouygtel4K (HMB9213NW)
2023-07-29 22:08:51 +02:00
TobiGr
1db73370a7
Ensure that imports handle disabling media tunneling correctly
...
Store in preferences whether media tunneling was disabled automatically.
Show info in ExoPlayer settings if media tunneling was disabled autmatically.
2023-07-29 22:08:51 +02:00
TobiGr
8b63b437d8
Disable media tunneling if the device is known for not supporting it
...
Revert removing the Utils related to media tunneling.
2023-07-29 14:13:03 +02:00
TobiGr
78e577d260
Make some constants private and annotate params
2023-07-29 14:13:03 +02:00
Tobi
3edd4c012d
Merge pull request #10195 from AudricV/player_refactor-renderers-activation-or-deactivation
...
Refactor Player.useVideoSource logic and improve its comments
2023-07-22 14:12:35 +02:00
Isira Seneviratne
c658f28b02
Merge pull request #10078 from Isira-Seneviratne/Improve_feed_notifications
...
Improve new stream notifications
2023-07-20 06:39:19 +05:30
AudricV
5ab3a4a9e0
Refactor Player.useVideoSource logic and improve its comments
...
- don't check for isAudioOnly == !videoEnabled, as this prevents enabling again
video and text tracks renderers in some cases;
- when reloading play queue manager if that's needed, disable or enable video
and text tracks renderers, as they may need to be enabled again in some cases
like starting a video in main player, opening play queue, switching to
background player on it and switching back to main player;
- disable or enable video renderers also for streams with AUDIO_STREAM
StreamType, as doing so doesn't raise any issue and simplifies code;
- reword and move some comments to make them easier to understand.
2023-07-19 22:52:18 +02:00
Isira Seneviratne
cb00c57009
Set channel icon for stream notifications
2023-07-19 05:52:59 +05:30
Tobi
cd2884d412
Merge pull request #10235 from TacoTheDank/bumpRoom
...
Update AndroidX Room library
2023-07-18 22:35:30 +02:00
Tobi
471137093a
Merge pull request #9719 from Marius1501/tabs_on_bottom
...
Added bottom main-tabs feature
2023-07-18 22:03:47 +02:00
TacoTheDank
a01e59e9db
Update AndroidX Room library
2023-07-17 21:09:44 -04:00
Tobi
43ef852117
Merge pull request #10230 from TeamNewPipe/fix/offline-stream-chooser
...
[Download] Fix audio stream selection
2023-07-17 23:47:21 +02:00
TobiGr
eeec6fd002
Replace null check with use of NotificationManagerCompat.from
2023-07-17 01:28:55 +02:00
Isira Seneviratne
795bc82c7f
Show number of new streams in the collapsed summary notification.
2023-07-17 01:28:55 +02:00
Isira Seneviratne
7742c40ac0
Create individual stream notifications for convenience on Android 7.0 and later.
2023-07-17 01:28:55 +02:00
Stypox
5d6158ea76
No need to manually mark fragment as destroyed for LeakCanary
...
It already does so automatically.
2023-07-14 20:48:05 +02:00
Stypox
00257e969e
Fix PlayerService leakead by Binder instance
...
Also see https://stackoverflow.com/q/63787707
2023-07-14 18:34:20 +02:00
TobiGr
6b7ffbba4c
[Download] Fix audio stream selection
...
Closes #10180
2023-07-14 17:06:12 +02:00
Koitharu
01b46edf1a
Fix crash after feed update
2023-07-14 11:41:52 +03:00
Stypox
f8599d17c2
Merge pull request #10085 from TacoTheDank/bumpLeakCanary
...
Update LeakCanary library
2023-07-12 19:05:38 +02:00
TacoTheDank
c1f0a945c0
Clean up AlertDialogs
2023-07-11 21:54:10 -04:00
TacoTheDank
db7de05f2b
Update LeakCanary library
2023-07-11 20:32:29 -04:00
Stypox
10c42de2f1
Fix uploader and subchannel avatars swapped
2023-05-03 10:35:28 +02:00
AudricV
023f6166ab
Add Open in browser button to audio external players dialog
...
This change makes the dialog consistent with the video one.
2023-05-02 00:18:46 +02:00
AudricV
d89a3c6c4d
Remove "default" from audio track already present message
...
We don't know if, on muxed video streams we get for all services which support
multiple audio languages, that the audio language returned is the original one
or not, even if it should be the case.
In order to avoid saying potential false information, this word has been
removed from the string resource (ID and value) and the corresponding layout ID
in the download dialog.
2023-05-02 00:11:09 +02:00
ThetaDev
22671ca16c
fix: audio stream cache key, code fmt
2023-05-01 00:04:04 +02:00
ThetaDev
4e837e838d
fix docs in app/src/main/java/org/schabi/newpipe/util/Localization.java
...
Co-authored-by: Audric V. <74829229+AudricV@users.noreply.github.com>
2023-05-01 00:02:37 +02:00
ThetaDev
c377ffbce8
Merge branch 'dev' of github.com:TeamNewPipe/NewPipe into alang-selector
2023-04-21 23:32:33 +02:00
ThetaDev
b567d428ad
fix: small codestyle fixes
2023-04-21 23:15:37 +02:00
ThetaDev
2edc223e77
Merge branch 'dev' into alang-selector
2023-04-17 23:01:07 +02:00
TobiGr
e18a6b09f8
Apply new itag filter only to YouTube streams
2023-04-17 13:10:29 +02:00
TobiGr
f8c3ec4be7
Use a whitelist to filter all streams retrieved by the extractor.
...
NewPipe Extractor now extracts all YouTube Itags and therefore only those which can be handled by the player need to be retrieved from the list of all available streams.
2023-04-17 13:00:11 +02:00
Stypox
ba3afd1e35
Merge pull request #10021 from Isira-Seneviratne/PendingIntentCompat
...
Switch to AndroidX's PendingIntentCompat.
2023-04-14 14:20:47 +02:00
Isira Seneviratne
acebabd028
Use AndroidX's PendingIntentCompat class.
2023-04-13 10:53:46 +05:30
AudricV
787758a436
[Android 6+] Add ability to always use ExoPlayer's MediaVideoCodecRenderer setOutputSurface workaround
...
As some devices not present in ExoPlayer's list may not implement
MediaCodec.setOutputSurface(Surface) properly, this workaround could be useful
on these devices.
It forces ExoPlayer to fall back on releasing and re-instantiating video codec
instances, which is always used on Android 5 and lower due to addition of this
method in Android 6.
To do so, a CustomMediaCodecVideoRenderer, based on ExoPlayer's
MediaVideoCodecRenderer which always return true for the
codecNeedsSetOutputSurfaceWorkaround method has been added, which is used in
CustomRenderersFactory, a class based on DefaultRenderersFactory which always
returns our CustomMediaCodecVideoRenderer as the video renderers.
CustomRenderersFactory replaces DefaultRenderersFactory in the player, in the
case this setting is enabled.
2023-04-10 17:39:27 +02:00
AudricV
a6ff85a208
Move media tunneling setting to ExoPlayer settings and make this setting available on release builds
...
Media tunneling may be not supported by more devices than the ones we
whitelisted before.
As a matter of fact, the list of devices on which media tunneling is disabled
could be not maintainable in the future, especially if the list of devices
grows more and more.
A preferable solution is to allow users to configure this setting themselves,
allowing them to not wait for their device(s) to be whitelisted in a future
NewPipe update.
This solution has been applied in this commit and works on every build type.
The corresponding preference in the debug settings has been of course removed
and the code used to prevent media tunneling activation on specific devices has
been removed.
2023-04-10 17:37:30 +02:00
AudricV
41da8fc05f
Add ability to use ExoPlayer's decoder fallback option
...
This option could help to avoid decoder initialization issues, which falls back
to lower-priority decoders if decoder initialization fails. This may result in
poor playback performance than when using primary decoders.
It is disabled by default, but can be enabled in ExoPlayer settings.
2023-04-10 17:37:30 +02:00
AudricV
a4a9957a15
Add ExoPlayerSettingsFragment and move playback load interval size setting into it
...
This fragment has been added into SettingsResourceRegistry, to allow searches
in its options.
It has been placed at the place of the previous playback load interval size
setting (so in Video and Audio settings).
2023-04-10 17:37:30 +02:00
ThetaDev
365bb2d0e4
Merge branch 'dev' of github.com:TeamNewPipe/NewPipe into alang-selector
2023-04-05 14:06:14 +02:00
Stypox
4bb45c001d
Fix settings migration
2023-04-04 11:06:20 +02:00
Stypox
704e9bd7b6
Fix checkstyle
2023-04-04 10:02:01 +02:00
ge78fug
d2735607b8
Changed the default of the switches
2023-04-04 09:57:06 +02:00
Marius Wagner
3c72992c39
Update app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
...
Co-authored-by: Stypox <stypox@pm.me>
2023-04-04 09:57:06 +02:00
ge78fug
7689d1d15c
Added the migration
2023-04-04 09:57:06 +02:00
ge78fug
32cec6c9a7
Changed the naming
2023-04-04 09:57:06 +02:00
Marius Wagner
72ca52a29b
Made the requested changes
2023-04-04 09:57:06 +02:00
ge78fug
2ded8c7cc1
Made two list options
2023-04-04 09:57:06 +02:00
ge78fug
759a9080a8
Fixed a bug
2023-04-04 09:57:06 +02:00
ge78fug
2ba649949f
Updated the gesture-switch-toggle
2023-04-04 09:57:06 +02:00
ge78fug
c8d54ec6c7
Changed to val
2023-04-04 09:57:06 +02:00
Marius Wagner
96e9242431
Update app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt
...
Co-authored-by: Stypox <stypox@pm.me>
2023-04-04 09:57:06 +02:00
ge78fug
3c74cb3439
Created a setting to switch the sides of volume and brightness
2023-04-04 09:57:06 +02:00
ThetaDev
d010384c88
Merge branch 'dev' of github.com:TeamNewPipe/NewPipe into alang-selector
2023-04-03 22:13:16 +02:00
Stypox
02906e8132
Merge pull request #9812 from TeamNewPipe/revert-8894-WindowCompat
...
Revert "Use WindowCompat."
2023-04-03 14:23:17 +02:00
ThetaDev
39a5c8bdfb
fix: reset video stream sizes on audio track selection
2023-03-29 13:39:29 +02:00
Audric V
fb1b1c5be1
Merge pull request #9968 from AudricV/fix-open-in-browser-without-browser
...
Use a system chooser when opening links in browser in the case there is no browser available
2023-03-26 12:41:42 +02:00
AudricV
1a8aa8b17e
Use a system chooser when opening links in browser in the case there is no browser available
...
This change makes the app using the behavior when there is no default browser
on Android 11 and lower, by opening a system chooser when there is no browser
available (on all Android versions).
Also catch any exception when the system chooser cannot be opened and show the
"No app on your device can open this" toast in this case, as an
`ActivityNotFoundException` could be thrown if no app is available to open a
given web link.
2023-03-26 00:04:38 +01:00
ThetaDev
694418d30d
fix: update stream sizes when audio track changed
2023-03-21 16:58:36 +01:00
ThetaDev
ed06f559ae
feat: add track selection to downloader
2023-03-20 21:41:28 +01:00
ThetaDev
fdd3b03fe5
fix: audio stream format selection
2023-03-19 23:47:33 +01:00
ThetaDev
dbd6e4d11f
fix: sonarcloud lint
2023-03-19 22:55:37 +01:00
ThetaDev
61a14765f3
fix: ListHelper tests
2023-03-19 22:31:31 +01:00
ThetaDev
9b8ffdd2aa
fix: improve track name localization
2023-03-19 21:20:21 +01:00
ThetaDev
ef0a4cf8b2
feat: add external audio playback language selector
2023-03-19 21:05:48 +01:00
ThetaDev
7aed2eed8a
feat: add prefer original option, improve audio stream ordering
2023-03-19 20:40:27 +01:00
ThetaDev
87a88e4df7
feat: localized audio track names
2023-03-19 15:45:52 +01:00
ThetaDev
366c39d4c6
feat: add language selector to audio player
2023-03-19 01:15:36 +01:00
ThetaDev
77649d388c
fix: reduce complexity
2023-03-18 16:29:22 +01:00
ThetaDev
dba53d23aa
fix: remove todo
2023-03-18 16:14:07 +01:00
ThetaDev
208887d538
feat: improve audio track sorting, add prefer_descriptive_audio option
2023-03-18 14:50:19 +01:00
ThetaDev
de7872d8f2
feat: add audio language selector
2023-03-17 21:51:40 +01:00
TobiGr
d06cc862c8
Remove wrong annotation
2023-03-03 11:58:44 +01:00
Stypox
23a20712da
Merge pull request #9707 from Jared234/1473_remove_duplicates_from_playlist
...
Remove duplicates from playlist feature
2023-02-28 22:14:01 +01:00
Stypox
43f46e29ad
Update app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
2023-02-28 21:40:11 +01:00
Stypox
7617f8cdc7
Update app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
2023-02-28 21:35:57 +01:00
Stypox
2e3490bce2
Merge pull request #9747 from Jared234/9126_remove_partially_watched_from_feed
...
Added option to remove partially watched videos from the 'Whats new' feed
2023-02-28 19:10:11 +01:00
Jared Fantaye
1dd0930b83
Fixed some small issues
2023-02-28 17:30:17 +01:00
Jared Fantaye
265de55a07
Merge remote-tracking branch 'origin/1473_remove_duplicates_from_playlist' into 1473_remove_duplicates_from_playlist
2023-02-28 16:44:13 +01:00
Jared Fantaye
d8ed2c8503
Refactoring removeDuplicates function and preventing concurrent calls.
2023-02-28 16:43:58 +01:00
Stypox
73aebc1110
Merge pull request #9847 from Redirion/exo183
...
Update to ExoPlayer 2.18.3
2023-02-26 19:16:25 +01:00
Stypox
65680b2ccf
Only update main tabs position when it changes
2023-02-26 15:58:09 +01:00
Stypox
c8ffe65acf
Simplify code to set tab layout position
2023-02-26 15:42:49 +01:00