1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-07-06 20:04:25 +00:00
Commit Graph

3625 Commits

Author SHA1 Message Date
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
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
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 @Nullables
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
litetex
82de35d724 Use view binding inside `PreferenceViewHolder` 2022-01-24 21:08:52 +01:00
litetex
f55e8ea3aa Use ViewBinding 2022-01-24 21:08:52 +01:00
litetex
7067ebdd12 Fixed imports 2022-01-24 21:08:51 +01:00
litetex
03bb2123f2 Removed breadcrumbs customization 2022-01-24 21:08:51 +01:00
litetex
e2f449f0c8 Code improvements
* Renamed methods so that they are more understandable
* Removed ``SearchIndexItem``
2022-01-24 21:08:50 +01:00
litetex
b16e972710 Improved doc 2022-01-24 21:08:50 +01:00
litetex
37cd71328c Moved `FuzzyScore` to original Apache package 2022-01-24 21:08:49 +01:00
litetex
9b2c86a37b Improved documentation 2022-01-24 21:08:48 +01:00
litetex
ce4dd33eab Fixed problems with Android's lifecycle (restore) 2022-01-24 21:08:48 +01:00
litetex
c5a06243a6 Fixed variable name 2022-01-24 21:08:47 +01:00
litetex
bebd2b449c Removed unused import 2022-01-24 21:08:46 +01:00
litetex
658168eb8d Fixed some sonar warnings 2022-01-24 21:08:45 +01:00
litetex
6b23df0659 Made debug settings searchable (debug only)
* Consolidated main-setttings into a single file
* Debug settings are only enabled in the DEBUG build
* Moved LeakCanary (debug) specific stuff into a small class that's only shipped with the debug build
* Other minor fixes
2022-01-24 21:08:45 +01:00
litetex
d59314801c Code rework 2022-01-24 21:08:44 +01:00
litetex
0f45c69388 Code cleanup + indexing improvements
* Removed unused method
* Only index all settings once -> Saves performance
* Fixed some SonarLint reported problems
2022-01-24 21:08:44 +01:00
litetex
52542e04e8 Added fuzzy searching + Some minor code refactoring 2022-01-24 21:08:43 +01:00
litetex
7fc0a3841a Fine tuning 2022-01-24 21:08:42 +01:00
litetex
22db4175f3 Moved reset-reCAPTCHA-cookie to cache tab and made it read-only
so that the search works as expected
2022-01-24 21:08:42 +01:00
litetex
07fb319e88 Applied code changes for preference search framework 2022-01-24 21:08:41 +01:00
litetex
12a78a826d Added preference search "framework" 2022-01-24 21:08:40 +01:00
litetex
4a061f20ed Code cleanup 2022-01-24 21:08:39 +01:00
litetex
f3be89b503 Abstracted methods for the Android keyboard 2022-01-24 21:08:39 +01:00
litetex
12acaf29dd Added credit to the project which inspired the preference search 2022-01-24 21:08:38 +01:00
litetex
683d9816cb Removed dead code 2022-01-24 21:08:38 +01:00
Stypox
d5cfcb28fc
Merge branch 'dev' into pr2335 2022-01-24 10:25:07 +01:00
Stypox
40ea51e622
Add more checking frequencies, use DurationListPreference 2022-01-24 10:12:25 +01:00
litetex
e127db6fa6 Simplified toast showing behavior
after feedback from the review
2022-01-23 15:34:11 +01:00
litetex
49b1649348 Revert "Merge pull request #7568 from vhouriet/vhouriet_feature_already-playing-in-backgroud"
This reverts commit ee19ea66b3, reversing
changes made to 6b490ee547.
2022-01-23 15:34:11 +01:00
litetex
54ef604569 Improved docs 2022-01-21 22:49:25 +01:00
litetex
30ce906f72 Apply seek conditions based on direction
* When rewinding: Check if <0,5s
* When fast-forwarding: Check if player has completed or the current playback has ended

This allows rewinding on the endscreen
2022-01-21 22:49:25 +01:00
litetex
1c20eabb48 Code cleanup 2022-01-21 22:49:25 +01:00
litetex
f8c52c4dac Fixed SonarLint problems
* Removed alphaRelativeDuration as there is no use for it
2022-01-21 22:49:24 +01:00
litetex
345ba74d58 Fixed naming 2022-01-21 22:49:24 +01:00
litetex
d2aaf152a0 Removed related import 2022-01-21 22:49:24 +01:00
litetex
7bf1f3dba6 Removed unused field 2022-01-21 22:49:24 +01:00
litetex
452fe3a8e2 Respect disabled animations 2022-01-21 22:49:24 +01:00
litetex
c25e523df6 Removed all animations to be consistent with the current behavior 2022-01-21 22:49:23 +01:00
litetex
65bb1dcdbf Refactored code 2022-01-21 22:49:23 +01:00
litetex
fe42206e94 Code cleanup and minimization
* Deduplicated and simplified a lot of code
* Fixed ``invalidSeekConditions`` so that it's possible to seek while the player is loading (like currently the case)
2022-01-21 22:49:23 +01:00
TobiGr
dac47d9f52 Replace NotNull annotation with NonNull annotation 2022-01-21 22:49:23 +01:00
Stypox
83a3d11f38 Small improvements to player 2022-01-21 22:49:22 +01:00
Stypox
a454a41b51 Fix controls not hiding correctly when switching player 2022-01-21 22:49:22 +01:00
Stypox
95631dba46 Convert SecondsView from kotlin synthetics to view binding 2022-01-21 22:49:22 +01:00
vkay94
3aebfa22e9 SeekOverlay: Switch to merge for SecondsView and other adjustments 2022-01-21 22:49:21 +01:00
vkay94
72eb3b4415 SeekOverlay: Add seek overlay logic to player 2022-01-21 22:49:21 +01:00
vkay94
3a40759cd2 SeekOverlay: Add Views 2022-01-21 22:49:21 +01:00
XiangRongLin
cd265fc31f
Make SearchHistoryEntry.kt fields nullable to match java version (#7674) 2022-01-21 16:01:11 +00:00
litetex
f681b0bb5a
Merge pull request #7648 from mhmdanas/small-refactors
Fix false warning
2022-01-19 19:48:07 +01:00
XiangRongLin
d7fbddf6f8
Merge pull request #7668 from litetex/fix-video-reset-on-player-switch
Workaround: Set recovery before switching player
2022-01-19 16:45:10 +01:00
mhmdanas
402990dd9d Fix false warning 2022-01-18 07:40:59 +03:00
litetex
41faf70da1 Workaround: Set recovery before switching player
Quick fix
2022-01-17 20:52:07 +01:00
litetex
15e3b6301c
Merge pull request #7662 from TiA4f8R/fix-npe-share-button-playlists
Fix crash when sharing a playlist which is loading
2022-01-16 19:47:55 +01:00
XiangRongLin
5b9c28b93b
Replace JUnit asserts with AssertJ in HistoryRecordManagerTest (#7654)
* Replace JUnit asserts with AssertJ in HistoryRecordManagerTest

They provide a wider range of assertions, which allow for more detailed error messages.
Also convert SearchHistoryEntry to kotlin data class for better error messages, since toString() is implemented.

Co-authored-by: Mohammed Anas <triallax@tutanota.com>
2022-01-16 09:10:45 +01:00
TiA4f8R
6672169707
Fix NullPointerException when sharing a playlist which is loading
Prevent a NullPointerException by adding a null check for currentInfo when sharing a playlist.
2022-01-15 21:19:04 +01:00
Stypox
7907182e7e
Merge pull request #7036 from Douile/fix/queue-metadata
Load full stream info when enqueuing a stream
2022-01-07 21:57:30 +01:00
litetex
cc34734131 Refactored `initNotificationChannels` 2022-01-05 15:48:46 +01:00
litetex
6dcde96f85 Fixed some Sonarlint warnings 2022-01-05 15:31:55 +01:00
Douile
064242d962
Remove unecessary interface InfoCallback
Co-authored-by: Stypox <stypox@pm.me>

Replace the unecessary callback interface InfoCallback in favour of the
standard type Consumer<SinglePlayQueue>
2022-01-03 17:52:27 +00:00
litetex
ddcbe27fd3
Fixed search not accepting key input after closing player overlay (#7607)
* Fixed search not accepting key input after closing player overlay

* Made comments easier to understand

* More comments
2022-01-03 11:52:08 +01:00
Stypox
ccbc3af964
Show error notification when new streams notifications failed 2021-12-31 20:04:56 +01:00
Stypox
cd95ec4e12
Merge branch 'dev' into pr2335 2021-12-31 19:20:18 +01:00
Stypox
fcd2d63df4
Don't show any channel notification thumbnail if it could not be loaded 2021-12-31 18:38:35 +01:00
Stypox
e68d49e7df
Do not fetch all streams when disabling notifications for a channel 2021-12-31 18:34:02 +01:00
litetex
ee19ea66b3
Merge pull request #7568 from vhouriet/vhouriet_feature_already-playing-in-backgroud
Add Already playing in background toast
2021-12-31 14:54:05 +01:00
litetex
6b490ee547
Merge pull request #7582 from Jaspann/sub-channel-tumbnail-view-fix
Fixes view of sub-channel icon when not in use
2021-12-31 14:52:32 +01:00
Jaspann
558c9147a2 Move sub icon visibility line 2021-12-28 15:54:36 -05:00
litetex
fc0e709817
Fixed usage of wrong string 2021-12-27 00:14:04 +01:00
litetex
b67bf16d4f
Minified code 2021-12-26 23:57:54 +01:00
William Parker
fb3be544ce
Fixed code styling 2021-12-26 00:12:48 -05:00
Jaspann
53f5741317 Fixes view of sub-channel icon when not in use 2021-12-25 18:10:05 -05:00
Martin
5134080f87
Merge branch 'TeamNewPipe:dev' into dev 2021-12-25 15:14:24 +01:00
David Kramer
07015973d2 Added ability to see pinned comment 2021-12-24 11:29:34 -06:00
Tobi
215880207e
Merge pull request #7562 from TeamNewPipe/code-quality
Small improvements to code quality and readability
2021-12-23 23:54:29 +01:00
vhouriet
989bcbf895 Add Already playing in background toast 2021-12-23 22:12:38 +01:00
Martin
3e44856d01
Merge branch 'TeamNewPipe:dev' into dev 2021-12-23 15:44:09 +01:00
XiangRongLin
05370dbb94
Merge pull request #7556 from Jaspann/improve-hashtags
Fixes hashtags that use non-English characters.
2021-12-23 11:45:52 +01:00
Robin
f6cad2d9cf
Merge pull request #7555 from litetex/remove-mediaparser
Remove/Revert MediaParser support (Android 11+) due to bugs
2021-12-22 17:32:28 +01:00
TobiGr
37b8a9375f Small improvements to code quality and readability
Add annotations to methods and parameters.
Replace Jetbrains' @NotNull with Androidx' @NonNull annotatiation.
Make class variables static if possible.
Use constants for some Strings.
Simplify if conditions.
2021-12-21 20:55:41 +01:00
TobiGr
d71af9a625 Introduce constants for some Strings that indicate no data in Tab class 2021-12-21 20:53:17 +01:00
TobiGr
a163d5461d Make PlayerHolder.bound private 2021-12-21 20:51:18 +01:00
martin
5514616372 Change pitch by semitones 2021-12-21 18:17:48 +01:00
Jaspann
a274baf5cd Adds comment to HASHTAGS_PATTERN 2021-12-20 14:13:40 -05:00
Jaspann
361760be0a Allows multilingual support in hashtags 2021-12-19 20:33:55 -05:00
litetex
eea2768633 Removed/Reverted MediaParser support (Android 11+) due to bugs 2021-12-19 20:16:10 +01:00
Robin
d3562c70f5
Merge pull request #7451 from Cheechaii/respect-cutout-in-multiwindow
Respect cutouts when playing in MultiWindow
2021-12-19 13:23:28 +01:00
litetex
b21d231e3a
Merge pull request #7452 from litetex/show-alert-when-file-manager-not-found
Show an alert-dialog when no appropriate file-manager was found
2021-12-14 20:01:02 +01:00
litetex
4058277b7a
Merge pull request #7482 from TeamNewPipe/unify-error-reporting
Unify error reporting and add error notification
2021-12-14 19:58:41 +01:00
XiangRongLin
dd9772cde2
Merge pull request #7491 from Stypox/fix-search-order
Fix order of local search results
2021-12-14 09:07:17 -05:00
Stypox
01f3ed0e5e
Fix loading icon in streams notifications 2021-12-12 20:18:16 +01:00
litetex
b056faa97f
Merge pull request #7500 from TacoTheDank/bumpKtlint
Bump ktlint, Checkstyle, Java version
2021-12-12 15:07:24 +01:00
Douile
3ff00ff50e
Fix lambda code formatting
Co-authored-by: Stypox <stypox@pm.me>
2021-12-12 13:04:32 +00:00
Tom
baee915db5
Remove unecessary line
Co-authored-by: Stypox <stypox@pm.me>
2021-12-12 12:51:01 +00:00
TobiGr
19fd7bc37e Reduce power consumption
Only schedule the chek for new streams if the user enaled the check. Cancel the worker when the user disables the notifications.
2021-12-10 23:52:37 +01:00
Cheechaii
c92a90749e Respect cutouts when playing in MultiWindow 2021-12-09 20:58:05 +01:00
litetex
e806f8c4e6 Android 10+ only allows SAF -> Respect that in the dialog 2021-12-08 20:22:26 +01:00
Stypox
8a5e2ffa57
Fix order of local search results 2021-12-08 13:59:32 +01:00
Stypox
bb49b1cfb1
Add javadoc to ErrorUtil and ErrorActivity 2021-12-07 18:14:53 +01:00
TobiGr
3ade2bb6ec Merge remote-tracking branch 'origin/dev' into notifications 2021-12-07 17:29:37 +01:00
TacoTheDank
75db002369 Update ktlint to 0.43.2 2021-12-04 21:22:29 -05:00
Robin
41a0dc1abd
Disable media tunneling on Philips QM16XE 2021-12-04 22:23:09 +01:00
Stypox
950956ebf2
Also show a toast on error notification
since the notification is silent, also show a toast, otherwise the user is confused
2021-12-04 10:50:27 +01:00
Stypox
c8e2ab4c83
Remove PlayerErrorHandler and correctly set ErrorInfo msg 2021-12-04 10:36:36 +01:00
Stypox
397f93b079
Prevent exception from being serialized in ErrorInfo
The wrong @Decorator was put in the wrong place to mark the throwable fieldd as transient, now this is fixed and the exception is not serialized. So if a non-serializable throwable is passed, that's not an issue, since it's not going to be serialized. The need for EnsureExceptionSerializable is also gone.
2021-12-04 10:36:36 +01:00
Stypox
09d137f740
Add PendingIntent to ErrorUtil.createNotification 2021-12-04 10:36:36 +01:00
Stypox
81f740d409
Replace ErrorActivity with ErrorUtil 2021-12-04 10:36:36 +01:00
Stypox
1d2642f1e3
Create ErrorUtil class with three ways to report errors
Activity, snackbar and notification
2021-12-04 10:36:31 +01:00
Douile
7cd3603bbb
Fetch sparse items when playing in background or popup 2021-12-03 22:38:03 +00:00
Douile
ec7de2a6dc
Fix StreamType check, missing import, and styling errors 2021-12-03 21:53:36 +00:00
Tom
3d1a3606c9
Remove unused variable
Co-authored-by: Stypox <stypox@pm.me>
2021-12-03 21:30:26 +00:00
Douile
6472e9b6b6
Remove unused code 2021-12-03 21:29:34 +00:00
TobiGr
fd1155928e Fix deciding which streams are new 2021-11-30 23:31:44 +01:00
litetex
744cfe5672 Removed unused import 2021-11-29 21:13:22 +01:00
litetex
17724a901c Removed annotations due to wrong warnings 2021-11-29 21:03:59 +01:00
TobiGr
a8fe2d7e83 Fix "unsage use" warnings 2021-11-28 17:09:20 +01:00
litetex
b2323859e5 Refactoring + deduplicated code 2021-11-28 14:07:45 +01:00
litetex
4c8dca5300 Fixed NPE + Problems with context 2021-11-28 13:42:26 +01:00
litetex
68e7fcf8ee Fixed typos 2021-11-27 23:39:17 +01:00
litetex
f78983b16b Show an alert/dialog when no appropriate file-manager was found 2021-11-27 15:52:54 +01:00
litetex
2f99a217c3 Fixed build 2021-11-23 20:21:59 +01:00
litetex
0d51eefbb9 Refactoring 2021-11-23 20:12:16 +01:00
litetex
aa28a85747 Added a workaround for not serializable exceptions 2021-11-23 20:12:14 +01:00
litetex
f18ee8e83d Added a bit more documentation 2021-11-23 20:12:13 +01:00
litetex
fb58967766 PlayerErrorHandler refactor + docs 2021-11-23 20:12:12 +01:00
litetex
e5c00a7ef4 Added some doc 2021-11-23 20:12:10 +01:00
litetex
769791af7a Added a "Crash the player" debug option 2021-11-23 20:12:09 +01:00
litetex
e632fab4d0 Added option to report player errors
* Added a new setting so that player errors are reported (under Video and Audio > Player)
* Moved the player error logic to separate class specially created for this purpose
2021-11-23 20:12:07 +01:00
Tom
91611fcae4
Don't fetch uneeded stream info for live streams
Co-authored-by: Stypox <stypox@pm.me>
2021-11-23 15:22:11 +00:00
Stypox
6cd25d7e55
Merge pull request #7412 from litetex/code-cleanup
Some code cleanup(s)
2021-11-23 08:59:34 +01:00
litetex
c9488eb042
Removed useless lines 2021-11-22 19:49:52 +01:00
TobiGr
8ce996e065 Only check for new streams of subscriptions with enabled notifications automatically 2021-11-21 22:53:10 +01:00
TobiGr
892a1df280 Merge remote-tracking branch 'origin/dev' into notifications-1 2021-11-21 22:15:09 +01:00
litetex
c8516a04dc
Formatted code 2021-11-21 19:56:50 +01:00
litetex
02d1b98b1c
Removed useless doc 2021-11-21 19:46:11 +01:00
litetex
d8236bbedd
Merge pull request #7406 from Redirion/usedefaultloadcontrol
Use DefaultLoadcontrol
2021-11-21 15:11:21 +01:00
XiangRongLin
bd9dcfb28a
Merge pull request #7381 from litetex/prevent-automatic-replay-after-returning-from-background
Prevent automatic replay after returning from background
2021-11-17 09:38:09 +01:00
Robin
d5199eac3e
Merge pull request #7050 from litetex/feed-refactor-new-items-handling
Rework feed new items handling
2021-11-15 23:20:07 +01:00
litetex
7638d229c0 Fixed typo 2021-11-15 20:24:40 +01:00
TacoTheDank
a641c5bb58 Update Groupie to 2.9.0 2021-11-15 20:24:39 +01:00
litetex
1e0c9f46ad Improved highlighting in FeedFragment
Now keeps the ``selectableItemBackground`` when highligthing an item.
2021-11-15 20:22:23 +01:00
litetex
4eb02f584e Fixed default visibility of "new feed items" button
Fixed/Avoid NPEs
2021-11-15 20:22:22 +01:00
litetex
700c1b4b25 Removed unnecessary layout
Moved the feed button up a bit
2021-11-15 20:22:21 +01:00
litetex
4b4337e078 Used more understandable kotlin methods 2021-11-15 20:22:20 +01:00
litetex
38ce800685 Fixed feed when animations are off
Introduced a check if corresponding animations on the devices are enabled
2021-11-15 20:22:20 +01:00
litetex
2310e8c1d6 Made `hideNewItemsLoaded` more null safe 2021-11-15 20:22:19 +01:00
litetex
1b2b3a4f88 Make new feed items bold 2021-11-15 20:22:18 +01:00
litetex
d11129a76b Fixed StackOverflow 2021-11-15 20:22:17 +01:00
litetex
02789122a0 Implemented UI highlighting and "new feed items"-notification
Fixed format
2021-11-15 20:22:17 +01:00
litetex
676bc02d52 No more reaction to unnecessary feed db-changes
This caused duplicate events (https://github.com/TeamNewPipe/NewPipe/pull/6686#issuecomment-909575283) and unnecessary processing of items
2021-11-15 20:21:23 +01:00
litetex
8b807b0706 Enhanced `View.slideUp` 2021-11-15 20:21:21 +01:00
litetex
316db0e4c6 setRecovery: Remove checks and use Math.min/max 2021-11-15 19:56:14 +01:00
litetex
010c607e40 Prevent automatic replay after returning from background
See also https://github.com/TeamNewPipe/NewPipe/pull/7195#issuecomment-962624380
2021-11-15 19:47:08 +01:00
Robin
3e099fb2a3 Fixed Period Transition 2021-11-14 21:19:36 +01:00
Robin
9c9730b152 Use DefaultLoadcontrol 2021-11-14 20:12:12 +01:00
Stypox
9e44053e22
Merge pull request #7160 from nschulzke/mark-as-watched-everywhere
Enable Mark as Watched in all the other playlist fragments.
2021-11-13 20:37:59 +01:00
Nathan Schulzke
dee32c3dc5 Factor out shouldAddMarkAsWatched as a shared function 2021-11-13 10:18:17 -07:00
Robin
344fbff59a
Merge pull request #7363 from litetex/playback-speed-ctrls-simple-landscape-improvements
Simple playback-speed-controls improvements
2021-11-12 21:19:17 +01:00
litetex
48a1ab64b0 Refactored `PlaybackResolver`
* fixes the deprecation of ``setTag``
* makes the code more consistent
* de-duplicates some code
2021-11-12 20:14:39 +01:00
litetex
dd2cde3c1a De-duplicated PlayerDataSource-code 2021-11-12 19:40:00 +01:00
Robin
1b9c2b37c5 Use Android11+ extractors 2021-11-12 19:17:52 +01:00
Robin
eae1f8b597 Update ExoPlayer to 2.14.2 2021-11-12 19:17:51 +01:00
litetex
adf9badbf6 Fixed toggle not in sync with list after app restart + refactored the code a bit 2021-11-11 19:46:15 +01:00
Baji Shaik
c35fe4f3f1 moved preference key from viewmodel to settings_keys.xml 2021-11-10 16:16:17 -05:00
Baji Shaik
63291f8101 added show watched items toggle preference
default sharedpreference is used to persist and retrieve show watched menu option toggle state
2021-11-07 23:11:10 -05:00
litetex
62efb588ef Removed obvious title from the "Playback Speed Controls" 2021-11-07 13:51:43 +01:00
litetex
203ca9afc6 Removed unused imports 2021-11-06 21:07:00 +01:00
litetex
a23f941ac8 Simplified some code and added some comments 2021-11-05 19:07:56 +01:00
litetex
b0a10f0542 Merged extremely similar code together / parity between video and popup player
* Removed ``player.getPlayPauseButton().requestFocus();`` as there is no reason why it was introduced there documented
* Use the same delay to hide the controls on both players
2021-11-05 18:10:55 +01:00
litetex
478ad42977 De-Duplicated some code 2021-11-05 18:07:21 +01:00
litetex
0764983ac6 Why log double? 2021-11-05 18:06:32 +01:00
litetex
2b2f1ee8f5 Added some doc 2021-11-05 18:06:10 +01:00
litetex
28f167fd99 Removed dead code 2021-11-05 18:04:57 +01:00
litetex
272be36dd9 Removed `e.printStacktrace` and used an proper logger 2021-11-05 18:04:49 +01:00
litetex
7b4e5dd107 Reworked player-notfication
* Fixed ``release`` ``main_settings.xml``
* Renamed "Notification" to "Player-Notification" (also reset all translations)
2021-11-05 14:10:53 +01:00
litetex
1289b1a283 Code cleanup 2021-11-05 13:17:33 +01:00
litetex
f933db8117 Added a custom title
to also save some margin/padding/etc
2021-11-04 19:47:08 +01:00
litetex
2e862b4ccc
Merge pull request #6844 from 0x416c6578/shuffle-mode-ui-fix
Fixed shuffle button opacity UI bug
2021-11-03 18:18:31 +01:00
litetex
ecac897e7b
Fixed typo 2021-11-03 17:30:30 +01:00
ktprograms
2934841152 Enable play/pause with space key even when not in fullscreen player 2021-11-03 08:26:13 +08:00
litetex
f0112a2de2 Added some lines to improve code-readability 2021-11-02 23:36:46 +01:00
litetex
94219b78e7 Fixed typos 2021-11-02 23:22:59 +01:00
litetex
0f4b6d7d9f Improved code readablity 2021-11-02 23:22:52 +01:00
litetex
58418bcf46 Improved code readability 2021-11-02 22:57:31 +01:00
litetex
e4cd52060c Reformatted code so that it's better readable 2021-11-02 22:48:49 +01:00
TobiGr
1130aba7ca Merge remote-tracking branch 'origin/dev' into notifications-1 2021-11-02 07:56:09 +01:00
litetex
c0f7b123a3
Merge pull request #7296 from vhouriet/vhouriet_feature_issue6049
Add "Check for updates" button in update settings
2021-11-01 23:17:25 +01:00
ktprograms
34ab93c9bd Fix player controls not hiding if resumed from media button 2021-11-01 11:50:33 +08:00
Douile
bc2f0f9f3e
Update stream state in database after loading 2021-10-28 01:11:53 +01:00
litetex
e9e2afa61a
Merge pull request #7061 from TiA4f8R/custom-textview-edittext
Use custom TextViews and EditTexts in all XML resources
2021-10-27 20:47:15 +02:00
litetex
403154b2e1 Less indents and code -> better readable
Also removed a useless variable
2021-10-26 20:47:15 +02:00
litetex
e5fd24b0d1 Make naming great again
When we build APKs in PRs it's also a GITHUB_APK...
2021-10-26 20:47:14 +02:00
litetex
8dc34274a1 Removed dead code 2021-10-26 20:47:13 +02:00
litetex
467bd21de2 Cleanup up some code 2021-10-26 20:47:13 +02:00
vhouriet
5c9705d94e Change check for updates button to trigger a version check 2021-10-26 20:47:12 +02:00
vhouriet
85fb5827aa Add Check for updates button 2021-10-26 20:47:11 +02:00
TobiGr
2d2b96420f Add comments and improve code formatting 2021-10-25 15:06:18 +02:00
TobiGr
77aaa15082 Fix toggling the system's settings for app notification
Do not open the setting for a specific notification channel (Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS), but the settings for all notifications by the app (Settings.ACTION_APP_NOTIFICATION_SETTINGS)
2021-10-25 13:59:55 +02:00
litetex
7067deb328
Merge pull request #7261 from TacoTheDank/bumpRecyclerView
Update RecyclerView & Groupie libraries
2021-10-24 21:22:04 +02:00
litetex
af936bc646 Always create a backup list when shuffling
The backup-list has to be created at all cost (even when current list size <= 2). Otherwise it's not possible to enter shuffle-mode (as ``isShuffled()`` always returns false)!
2021-10-23 17:35:42 +02:00
litetex
d66f933c69 Fixing the shuffle button on the UI is enough.
No need for doing the heavier method ``onShuffleModeEnabledChanged(false);``
2021-10-23 16:46:56 +02:00
0x416c6578
cf81c37683 Removed changes to the intent handler 2021-10-23 16:43:29 +02:00
0x416c6578
d2306b0fd7 Fixed shuffle button opacity bug
Parameterised shuffle state into initPlayback for potentially passing the shuffle state into the player in the future
2021-10-23 16:43:28 +02:00
TobiGr
80bf47493e Fix check wether the app's notifications are disabled via system settings
Add comments
Rename a few methods
2021-10-22 21:24:43 +02:00
Tobi
44cad27d0a
Merge pull request #7268 from TeamNewPipe/release/0.21.13
Release 0.21.13
- Fix playback resume
- Ensure that the service for new version checks is not started in background
2021-10-21 20:51:01 +02:00
TobiGr
768bb0bbcd Start service for update checks in onPastCreate() 2021-10-20 23:55:18 +02:00
Stypox
ac071b383f Revert part of #6872 and fix playback resuming 2021-10-20 23:20:26 +02:00
TacoTheDank
b6b19b474e Update RecyclerView & Groupie 2021-10-19 17:31:59 -04:00
TobiGr
7d4c7718aa comments & rename 2021-10-18 13:11:50 +02:00
TobiGr
28c72e7f63 Fix new version check still occassionally started in background 2021-10-17 12:55:06 +02:00
TobiGr
5fcc3b4dab [Player] Fix resuming playback
This was caused by #6872
2021-10-17 12:13:38 +02:00
TacoTheDank
51837ce36f Get rid of setUserVisibleHint 2021-10-16 15:33:45 -04:00
TiA4f8R
ddaafb68c8
Adress new requested changes 2021-10-16 15:32:56 +02:00
TiA4f8R
a744775fe7
Adress requested changes and remove an unused return value in NewPipeTextViewHelper 2021-10-16 13:41:05 +02:00
TiA4f8R
50b85a7734
Simplify code 2021-10-16 13:41:05 +02:00
TiA4f8R
aab09c0c65
Merge the Share process of the two classes into one
A new class has been added in the util package: NewPipeTextViewHelper.
It shares the selected text of a TextView with ShareUtils#shareText (with the created shareSelectedTextWithShareUtils static method).
Only this static method can be used by other classes, other methods are private.
2021-10-16 13:41:04 +02:00
TiA4f8R
3ded6feddb
Improve code of created views
Use the same logic as Android TextViews
2021-10-16 13:41:04 +02:00
TiA4f8R
c8802fe5d0
Add JavaDocs on created views 2021-10-16 13:41:04 +02:00
TiA4f8R
411b3129f9
Use a custom EditText everywhere to be able to share with ShareUtils the selected text
This EditText class extends the AppCompatEditText class from androidx.

These changes (only in XML ressources) allow us to share the selected text by using ShareUtils.shareText, which opens the Android system chooser instead of the Huawei system chooser on EMUI devices.
2021-10-16 13:41:03 +02:00
TiA4f8R
a55acd38df
Use a custom TextView everywhere to be able to share with ShareUtils the selected text
This TextView class extends the AppCompatTextView class from androidx.

These changes (only in XML ressources) allow us to share the selected text by using ShareUtils.shareText, which opens the Android system chooser instead of the Huawei system chooser on EMUI devices.
2021-10-16 13:40:54 +02:00
TobiGr
793ff1a728 Add a few comments and rename a few methods 2021-10-15 20:57:54 +02:00
litetex
7edef8d5a2
Merge pull request #7222 from ktprograms/queue-menu-channel-details
Added the 'Show Channel Details' menu item to the Queue long press menu
2021-10-15 20:28:18 +02:00
Tobi
4f7cdcce55
Update app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java
Co-authored-by: litetex <40789489+litetex@users.noreply.github.com>
2021-10-15 20:22:12 +02:00
litetex
03d2ca9f9f Fixed format of code 2021-10-15 20:18:52 +02:00
litetex
2271ea4281 Improved documentation 2021-10-15 20:16:34 +02:00
TobiGr
64a7978c7f Rename NotificationMode.ENABLED_DEFAULT to NotificationMode.ENABLED 2021-10-15 19:59:06 +02:00
TobiGr
16d4a034e2 Merge remote-tracking branch 'origin/dev' into notifications 2021-10-14 21:15:43 +02:00
ktprograms
afc8db8f81 Add reasoning for separate openChannelFragmentUsingIntent method 2021-10-14 09:51:25 +08:00
litetex
4af49ee5a6
Merge pull request #7194 from KalleStruik/add-to-playlist-in-share
Add a "add to playlist" option in the share menu
2021-10-13 20:34:07 +02:00
TobiGr
d7b29aae5c Merge branch 'master' into dev 2021-10-12 20:03:42 +02:00
litetex
9f7a8407ca
Merge pull request #7224 from vhouriet/vhouriet_fix_check-background-player-type
Check if background player already active before displaying player toast
2021-10-12 19:47:50 +02:00
TobiGr
54d3bff26d Move checking for new version to MainAcitvity
When the service is started from the Application class, the app might be still in the background. This is definetly not the case when MainActivity.onCreate() is called.

Fixes #7227
2021-10-12 16:45:01 +02:00
TobiGr
55c51ad49d Rename isStreamExist -> doesStreamExist 2021-10-11 23:20:52 +02:00
litetex
a2050a5211
Merge pull request #7215 from litetex/code-cleanup-drawer-main-activity
Deduplicated drawer code in MainActivity
2021-10-11 21:29:42 +02:00
litetex
e9bd2934c3
Merge pull request #7202 from vhouriet/vhouriet_bug_issue-6662
Fix clicking timestamp shows Toast "Playing in popup mode"
2021-10-11 21:20:26 +02:00
vhouriet
50634eb2b3 Check player type before displaying background player toast 2021-10-11 19:41:22 +02:00
TobiGr
cea14c9d0d Merge remote-tracking branch 'origin/dev' into notifications-1 2021-10-11 16:37:49 +02:00
ktprograms
a2ff770afc Added the 'Show Channel Details' menu item to the Queue long press menu
Created a method in NavigationHelper that opens the channel fragment using an Intent to MainActivity instead of replacing fragments.
2021-10-11 14:47:37 +08:00
TobiGr
658d988254 Simplify code and add annotations 2021-10-10 20:33:05 +02:00
Kalle Struik
9d7e9289bb Fix cursor color in PlaylistCreationDialog 2021-10-10 12:32:57 +02:00
litetex
d7d87691cb Add to playlist - Showing toast that this may take a moment 2021-10-09 18:47:36 +02:00
litetex
731640997e Cleaned up PlaylistDialog-related code 2021-10-09 18:46:20 +02:00
litetex
64d7432852 Deduplicated drawer code in MainActivity 2021-10-09 16:37:34 +02:00
Robin
e6fffc0d5b Fix crash on missing title when sharing livestream 2021-10-08 21:42:01 +02:00
vhouriet
1c9f68bcae Fix clicking timestamp shows Toast "Playing in popup mode"
Fixes #6662
2021-10-05 18:15:36 +02:00
litetex
b633108a4c Use the correct TAG in NavigationHelper 2021-10-03 22:04:34 +02:00
Kalle Struik
ceb55d0ede Set the theme for PlaylistCreationDialog explicitly. 2021-10-03 14:25:50 +02:00
Kalle Struik
87c958b2e7 Rename the "append_playlist" string to "add_to_playlist" 2021-10-03 13:27:24 +02:00
Kalle Struik
d844e0aba6 Add a add to playlist option in the share menu. 2021-10-02 19:21:25 +02:00
Tobi
4fc9f2e5fd
Merge pull request #7176 from litetex/fix-progress-bar-end-not-synced
Fixed seekbar not completed after video end
2021-10-02 09:24:59 +02:00
Tobi
ce592f4baf
Merge pull request #6980 from bravenewpipe/check-for-update-after-toggle-and-restart
resets the expire date for checking for updates
2021-10-02 09:07:05 +02:00
Tobi
2b3edcf2d1
Add a comment 2021-10-02 08:53:03 +02:00
litetex
672eb34049
Merge pull request #7150 from TacoTheDank/groupieBump
Update Groupie library to 2.9.0
2021-09-30 21:26:58 +02:00
Tobi
b753705a84
Merge pull request #7178 from Redirion/dsblmdtnnelrealtekatv
Disable media tunneling on RealtekATV
2021-09-28 07:53:11 +02:00
Robin
f48ff610a3
Merge pull request #7166 from litetex/various-fixes-for-mediasession-player
Various fixes related to MediasessionManager
2021-09-27 23:45:38 +02:00
Robin
3cf94382e6 Disable media tunneling on RealtekATV 2021-09-27 13:21:04 +02:00
Laksh
f52cb3bbe0 Make requested changes 2021-09-27 01:45:33 +05:30
litetex
d45182cb5c Referenced issue in code 2021-09-26 20:58:49 +02:00
litetex
22847c6c92 Fixed progress bar not completing after video end 2021-09-26 20:50:24 +02:00
Laksh
bc3139e5f9 Fix Settings import 2021-09-25 15:37:07 +05:30
litetex
72dbb9441e Improved streamType check and documentation 2021-09-25 10:31:42 +02:00
litetex
bbc13756f3 Removed useless check for livestreams 2021-09-25 00:04:53 +02:00
litetex
ba0876b43b Reformatted MediaSessionManager code 2021-09-24 23:55:06 +02:00
litetex
c0d41661e8 Fixed performance problems with mediaSessionManager
* Built on top of Redirons changes
* MediaSessionManager-Metadata get's only update when metadata changes - not every second as it only changes when the metadata changes
* Reworked mediasessionmanager
2021-09-24 23:40:12 +02:00
Robin
b2e2551e33 Two fixes for setMetadata 2021-09-24 23:28:55 +02:00
Nathan Schulzke
108af48b76 Enable Mark as Watched in all the other playlist fragments. 2021-09-23 21:39:47 -06:00
TacoTheDank
920695f90a Regenerate some drawables to their latest design 2021-09-22 23:38:01 -04:00
TacoTheDank
b61d44aaa6 Update Groupie to 2.9.0 2021-09-22 19:08:03 -04:00
Koitharu
fb0473da39
Merge branch 'dev' of https://github.com/TeamNewPipe/NewPipe into feature/notifications 2021-09-20 07:26:01 +03:00
Stypox
7e26748dc4
Merge branch 'master' into dev 2021-09-19 22:37:00 +02:00
Stypox
7667b2ce59
Fix restoring orientation in onBack 2021-09-19 19:09:11 +02:00
Douile
62d36126ea
Load full stream info when enqueuing a stream
This commit calls getStreamInfo causing a full network fetch of stream
info (I believe only if required) when adding a stream item to the
queue. This should prevent UI issues of missing metadata when queueing
videos that have been fast-loaded and are missing metadata.

Fixes #7035
2021-09-19 00:15:56 +01:00
z3r0r4
70354eb73e
Add play next to long press menu & refactor enqueue methods (#6872)
* added mvp play next button in long press menu; new intent handling, new long press dialog entry, new dialog functions, new strings

* changed line length for checkstyle pass

* cleaned comments, moved strings

* Update app/src/main/res/values/strings.xml

to make long press entry more descriptive

Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>

* Update app/src/main/res/values/strings.xml

Co-authored-by: Stypox <stypox@pm.me>

* replace redundant nextOnVideoPlayer methods

Co-authored-by: Stypox <stypox@pm.me>

* add enqueueNextOnPlayer and enqueueOnPlayer without selectOnAppend and RESUME_PLAYBACK/ deprecate enqueueNextOn*Player and enqueueOn*Player methods
add getPlayerIntent, getPlayerEnqueueIntent and getPlayerEnqueueNextIntent without selectOnAppend and RESUME_PLAYBACK/ deprecate those with
add section comments

* removed deprecated methods
removed redundant methods

* removed deprecated methods
removed redundant methods

* replaced APPEND_ONLY, removed SELECT_ON_APPEND / replaced remaining enqueueOn*Player methods

* now works with playlists

* renamed dialog entry

* checking for >1 items in the queue using the PlayerHolder

* making enqueue*OnPlayer safe to call when no video is playing (defaulting to audio)

* corrected strings

* improve getQueueSize in PlayerHolder

* long press to enqueue only if queue isnt empty

* add Whitespace

Co-authored-by: Stypox <stypox@pm.me>

* clarify comments / add spaces

* PlayerType as parameter of the enqueueOnPlayer method
add Helper method

* using the helper function everywhere (except for the background and popup long-press actions (also on playlists, history, ...)), so basically nowhere
/ passing checkstyle

* assimilated the enqueue*OnPlayer methods

* removed redundant comment, variable

* simplify code line

Co-authored-by: Stypox <stypox@pm.me>

* move if

* replace workaround for isPlayerOpen()

Co-authored-by: Stypox <stypox@pm.me>

* replaced workarounds (getType), corrected static access with getInstance

* remove unused imports

* changed method call to original, new method doesnt exist yet.

* Use getter method instead of property access syntax.

* improve conditional for play next entry

Co-authored-by: Stypox <stypox@pm.me>

* show play next btn in feed fragment

Co-authored-by: Stypox <stypox@pm.me>

* add play next to local playlist and statistics fragment

Co-authored-by: Stypox <stypox@pm.me>

* formating

Co-authored-by: Stypox <stypox@pm.me>

* correcting logic

Co-authored-by: Stypox <stypox@pm.me>

* remove 2 year old unused string, formating

Co-authored-by: Stypox <stypox@pm.me>

* correct enqueue (next) conditionals, default to background if no player is open. Dont generally default to background play.

* remove player open checks from button long press enqueue actions

* improve log msg

* Rename next to enqueue_next

* Refactor kotlin

Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
Co-authored-by: Stypox <stypox@pm.me>
2021-09-18 11:22:49 +02:00
Tobi
a2887034a6
Merge pull request #7068 from litetex/fix-restart
Fixed restarting not working properly
2021-09-11 12:51:38 +02:00
Tobi
7eb5aa1bc5
Merge pull request #7056 from TeamNewPipe/fix/playOnPopup
Fix handling exception in `playOnPopup` and toggle description tab
2021-09-10 18:21:41 +02:00
Koitharu
9d249904bd
Toggle all subscriptions notification mode 2021-09-07 13:30:26 +03:00
Koitharu
111dc4963d
Ignore feed update threshold when run from NotificationWorker 2021-09-07 13:30:26 +03:00
Koitharu
5a6d0455ec
Migrate NotificationIcon to Picasso 2021-09-07 13:30:26 +03:00
Koitharu
a5b9fe4c35
Refactor FeedLoadService to use it within the notification worker 2021-09-07 13:30:26 +03:00
Koitharu
e0c674bc9e
Move player notification settings into appearance section 2021-09-07 13:30:25 +03:00
Vasiliy
da9bd1d420
Notifications about new streams 2021-09-07 13:30:16 +03:00
thefalsedev
892b4a15f6
Change player progress bar update from 500 ms to 1 s
Just like in the issue 7062, https://github.com/TeamNewPipe/NewPipe/issues/7062, this doesn't affect UI as it updates every one second anyway, but reduces very heavy android widget progress bar high cpu usage. With every 500s there is 6% cpu usage and with 1s only 4%. However further changes will have to be made to disable updating of player progress bar when screen is off to further reduce power consumption. With this, total power savings would be 20% in mAh consumption.
2021-09-07 00:04:05 +02:00
litetex
fda0a550fd Fixed the app restarting not working properly
* Using [``process-phoenix``](https://github.com/JakeWharton/ProcessPhoenix)
2021-09-06 20:47:44 +02:00
TobiGr
4d51ebc37a Fix a few SonarLint warnings 2021-09-05 19:54:28 +02:00
TobiGr
433c6dc33b Fix OnErrorNotImplementedException in SearchFragment.initSuggestionObserver()
Hopefully also fix the cause of the original error.
2021-09-05 19:54:28 +02:00
TobiGr
ed4fdadd4d Fix OnErrorNotImplementedException in playOnPopup 2021-09-05 19:54:28 +02:00
TobiGr
298e96b821 Fix updating the wrong tabs when changing settings while running the minimized player in VideoDetailFragment
The comments tab was updated although the settings for the description tab were changed.
2021-09-04 22:36:47 +02:00
Tobi
8dd617fc6b
Merge pull request #7043 from Stypox/optimize-resources
Remove unused resources
2021-09-04 20:57:07 +02:00
Stypox
3a09039b93
Remove unused resources 2021-09-02 21:13:54 +02:00
evermind
669a35bc78 check immediately for updates if user enables 'check for updates setting'
- Convert CheckForNewAppVersion to IntentService
- reset expire date to 0 after user enables check for updates setting
2021-09-02 07:20:35 +02:00
Stypox
ed408b2094
Move fullscreen-related comments to javadocs 2021-09-01 20:13:27 +02:00
Stypox
3bc661f583
Fix null pointer exception in player initialization 2021-09-01 20:13:27 +02:00
Stypox
cf9b482be2
Completely close player when changing stream w/o autoplay 2021-09-01 20:13:27 +02:00
Stypox
1d935b46f9
Open fullscreen when switching from popup to main player 2021-09-01 20:13:24 +02:00
Stypox
520ac2e935
Fix bottom sheet state after automatic fullscreen 2021-09-01 20:12:14 +02:00
Stypox
c6316abbce
Fix opening directly fullscreen on tablets 2021-09-01 20:12:09 +02:00
Stypox
2dfe837c35
Extract isLandscape and isInMultiWindow to DeviceUtils 2021-09-01 20:09:08 +02:00
Stypox
3c2ea7697c
Add option to directly open fullscreen when the main player starts 2021-09-01 20:08:37 +02:00
Stypox
faa7a91764
Merge pull request #7004 from litetex/fix-showTextError-and-rework-ErrorPanel
Reworked the ErrorPanel
2021-08-31 18:26:51 +02:00
Robin
f629a4d206
Merge pull request #6993 from Redirion/closeaudioeffectsession
Close audio effect control session properly
2021-08-31 12:37:20 +02:00
Stypox
4b7c37e919
Merge pull request #6955 from ktprograms/queue-long-press-menu
Show popup menu when long pressing in play queue (Full screen player)
2021-08-31 12:22:59 +02:00
Stypox
f8f2dfce4b
Merge pull request #6882 from talanc/dev
Add support for CSV+ZIP subscriptions (Google Takeout)
2021-08-31 12:10:12 +02:00
Stypox
5284072b8d
Improve mime type deduction on subscription import 2021-08-31 12:07:34 +02:00
talanc
e603dddc54
Added support for CSV+ZIP subscriptions
Updated import instructions string
2021-08-31 12:07:34 +02:00
Stypox
a555aab3e7
Merge pull request #7024 from Stypox/string-fixes
Never use ``android.R.string``s; remove unused ``add`` string
2021-08-31 12:00:07 +02:00
Stypox
88f1c3a808
Merge pull request #6985 from litetex/set-seekbarjump-when-using-dpad-to-seek-duration-from-preferences
Set ``KeyProgressIncrement`` manually / Fix long seekbar jumps when using a DPad
2021-08-30 23:36:29 +02:00
Tobi
0e6668636d
Merge pull request #6986 from litetex/fix-build-problems-update-kotlin
Fix build problems and updated kotlin
2021-08-30 21:20:45 +02:00
Stypox
cfdcb92fa3
Always use our strings, not android ones 2021-08-30 16:37:01 +02:00
Stypox
039bd5d413
Rename string finish to ok, as its content was "OK" 2021-08-30 16:36:57 +02:00
Robin
57ca281c80
Merge pull request #6634 from Isira-Seneviratne/Use_PackageInfoCompat
Use PackageInfoCompat.getSignatures().
2021-08-29 23:13:12 +02:00
litetex
703f1550d8 Fixed double tapping the replay button 2021-08-29 17:53:09 +02:00
Robin
8bfd380b89
Merge pull request #6515 from Redirion/buffersharmonization
Use ExoPlayer default values for buffers
2021-08-29 17:44:43 +02:00
Agnieszka C
43e91ae4ae
Added plural forms for download related strings (#6930)
Co-authored-by: Tobi <TobiGr@users.noreply.github.com>
2021-08-29 13:28:01 +02:00
litetex
d931d058d9 Reworked the ErrorPanel
* All element on the error panel are now hidden by default (expect for the ``errorTextView``) as they are only optional shown
  * Added a method to ensure the above
  * This deduplicates a lot of code
* Fixed format of some LoC
* Added new method: ``showAndSetErrorButtonAction``
* Fixed  ``showTextError``
* Named buttons more logically: ``errorButtonAction`` -> ``errorActionButton``
2021-08-28 17:05:12 +02:00
acti0
d9086300f3
Re-add sharing of the content name with the "Share" command (#6957)
The title of the content is re-added as the EXTRA_SUBJECT of the share intent.
2021-08-27 19:26:32 +02:00
litetex
f18a7c91ca Suppressed warning
There seems to be a bug in the kotlin plugin as it tells you when building that this can't be null:
"Condition 'throwable != null' is always 'true'"
However it can indeed be null as seen in https://github.com/TeamNewPipe/NewPipe/pull/6986#issuecomment-906822218
2021-08-27 16:32:59 +02:00
Robin
43d0543b9f close audio effect control session properly 2021-08-27 10:53:44 +02:00
Tobi
0787d62254
Merge pull request #6820 from Stypox/picker-mime-type
Provide mime type to file picker to gray out unselectable files
2021-08-26 21:39:35 +02:00
litetex
b061423847 Changed package as the old one is deprecated 2021-08-26 18:09:27 +02:00
litetex
c6ead351c0 Set `KeyProgressIncrement` manually
* Set ``KeyProgressIncrement`` manually to the value of the seek duration in the settings so that it works when using the DPad
* consolidated code inside a new method to avoid duplication
2021-08-26 17:16:51 +02:00
ktprograms
a4503eb609 Remove TAG parameter, refactor method calls 2021-08-25 17:04:15 +08:00
ktprograms
a1cb3e59d6 Move opening popup menu to utility class 2021-08-25 09:30:40 +08:00
ktprograms
1b05c404d5 Remove Details option in Main Player Queue menu 2021-08-25 08:56:26 +08:00
ktprograms
5de455bb86 Change type of themeWrapper to ContextThemeWrapper 2021-08-25 08:56:26 +08:00
ktprograms
acdfee5c25 Show popup menu when long pressing in play queue (Full screen player) 2021-08-25 08:56:26 +08:00
Stypox
87e7d95966
Do not show suggestions error snackbar for interrupted I/O
Fix formatting
2021-08-24 18:16:17 +02:00
Stypox
d37ee1e0dc
First run migrations, then setDefaultValues, since the latter requires the correct types 2021-08-24 18:16:17 +02:00
Stypox
1d33e7ab49
Allow choosing which types of search suggestions to show
local, remote, both, none
Replacing the old on-off setting
2021-08-24 18:16:16 +02:00
Stypox
2027b743b4
Merge pull request #6919 from ktprograms/channel-details-all-places
Add Show Channel Details where it's missing
2021-08-24 16:43:21 +02:00
ktprograms
2928df0cc9 Fix checkstyle ParenPad error 2021-08-24 21:17:08 +08:00
Stypox
44128f9145
Remove placeholder image while loading thumbnails 2021-08-24 10:56:25 +02:00
Stypox
6eaff5ca6a
Apply review: move thumbnail loading out of Player 2021-08-24 10:56:25 +02:00
Stypox
c0664c1cb6
Add Picasso to licences and remove Universal Image Loader 2021-08-24 10:56:25 +02:00
Stypox
e229e5355d
Always create new bitmap when resizing thumbnail
This prevents strange crashes on some devices, fixes #4638
2021-08-24 10:56:25 +02:00
Stypox
52189fc5df
Add debug setting to enable Picasso indicators 2021-08-24 10:56:25 +02:00
Stypox
314964c5f9
Recycle Bitmap in transformation 2021-08-24 10:56:25 +02:00
Stypox
fcef783bbb
Replace UniversalImageLoader with Picasso 2021-08-24 10:56:25 +02:00
Tobi
bdbb9bead2
Merge pull request #6848 from Stypox/somali-cancel
Use custom cancel string everywhere
2021-08-22 22:36:14 +02:00
TobiGr
6fbb601802 Merge branch 'master' into dev 2021-08-22 22:22:37 +02:00
TobiGr
8715e7dd98 Only show "mark as watched" context menu entry when watch history is enabled 2021-08-22 22:15:05 +02:00
ktprograms
a209e87c69 Add Loading Channel Details Toast 2021-08-21 09:30:40 +08:00
ktprograms
967bdf8f08 Remove migration test, add manual testing reminder to Migrations.java 2021-08-17 08:57:03 +08:00
ktprograms
712985ced1 Save uploader url when adding from PlayQueueItem 2021-08-16 08:08:50 +08:00
litetex
0683dafa55
Merge pull request #6851 from litetex/make-parsing-of-timestamp-links-more-robust
Catch errors while processing timestamp-links
2021-08-14 21:10:20 +02:00
ktprograms
6f1958d398 Remove setting uploaderUrl to empty string if null 2021-08-14 20:59:38 +08:00
ktprograms
21bcadeecb Make uploader_url column nullable 2021-08-14 17:48:35 +08:00
ktprograms
bd0427c79f Refactor duplicated code into method 2021-08-14 17:32:38 +08:00
ktprograms
241054fd26 Remove hardcoded string 2021-08-14 15:38:57 +08:00
ktprograms
d8888e3495 Catch error from ExtractorHelper.getStreamInfo, remove blockingGet 2021-08-14 09:07:27 +08:00
ktprograms
76803bfcb1 Save channelUrl to Database if it doesn't exist 2021-08-13 18:02:53 +08:00
ktprograms
c248741c00 Add Show Channel Details to Subscription Feed & History 2021-08-13 17:04:10 +08:00
ktprograms
759a078ce0 Add uploader_url column to StreamEntity 2021-08-13 16:44:50 +08:00
evermind-zz
a536311d56
name the regions according to the comments (#6854)
if a region is named android studio will show its name in the structure view.
2021-08-10 22:38:23 +00:00
litetex
5f3b8bea52 Fixed format 2021-08-06 22:12:49 +02:00
litetex
f9ab23bb4a Removed useless fiedl 2021-08-06 22:08:42 +02:00
litetex
9f8b2264a2 Use better pattern for matching timestamp in text and some reworks
Also extracted overhead code into ``TimestampExtractor``
2021-08-06 22:08:29 +02:00
litetex
1d61bb58f5
Set loglevel to error
Co-authored-by: Stypox <stypox@pm.me>
2021-08-05 20:26:17 +02:00
Stypox
a3440cc8ef
Merge pull request #6814 from Stypox/channel-grid-span-count
Fix channel item span count for SubscriptionFragment
2021-08-05 14:25:39 +02:00
litetex
51c60e5261 Catch errors while processing timestamp-links
Otherwise the complete app crashes, which is bad
2021-08-04 22:35:41 +02:00
Stypox
f8caed139a
Use custom cancel string everywhere
to fix missing somali translation for android.R.string.cancel
2021-08-04 18:58:35 +02:00
Stypox
a2297fb5b8
Fix play queue theme 2021-08-04 18:41:23 +02:00
Stypox
32dffb577c
Provide mime type to file picker to gray out unselectable files 2021-08-01 13:52:32 +02:00
Stypox
a9623f8e6a
Merge pull request #6550 from Douile/fix/clickthrough-feed-refresh
Disable feed click events while refresh overlay is shown
2021-08-01 13:11:24 +02:00
Isira Seneviratne
d32450255c Use NotificationChannelCompat. 2021-08-01 14:59:30 +05:30
Robin
896aec5295
Merge pull request #6719 from TacoTheDank/core-lifecycle-bump
Update some AndroidX libraries
2021-08-01 11:24:33 +02:00
Stypox
d42a534fc3
Merge pull request #6741 from KalleStruik/comment-hearts
Show hearts in comments
2021-08-01 11:12:58 +02:00
Stypox
551e8df8b8
Merge pull request #6773 from nschulzke/mark-as-played
Add ability to mark an item as played
2021-08-01 10:30:36 +02:00
Nathan Schulzke
dc0a28b93d Upsert the complete info if we fetch it for marking as watched 2021-07-31 09:50:41 -06:00
Stypox
644396149b
Fix channel item span count for SubscriptionFragment 2021-07-31 11:02:57 +02:00
Nathan Schulzke
0e12cdea7c Save the fetched duration to the database so that it can render the view correctly. 2021-07-29 20:59:23 -06:00
Tobi
cd713db029
Merge pull request #6778 from Stypox/invalid-storage-npe
Fix NullPointerException when checking if storage exists
2021-07-28 16:54:57 +02:00
Nathan Schulzke
bdd16e06e0 Add comments describing the purpose of the markAsWatched method 2021-07-28 08:25:39 -06:00
Nathan Schulzke
4c632810ec Fetch the stream info via a network request if no duration is found when attempting to mark as watched. 2021-07-27 15:21:56 -06:00
Nathan Schulzke
f451bdbfa4 Do not add Mark as Watched to a live stream. 2021-07-27 15:21:56 -06:00
Kalle Struik
bfac73b992 Make heart visible in android studio and move logic to the right file. 2021-07-27 22:34:59 +02:00
Nathan Schulzke
2b41f710a8 Change played to watched 2021-07-27 13:26:51 -06:00
Stypox
5ceec31adf
Merge pull request #6720 from TacoTheDank/alertdialog-edittext
Consolidate edittext alert dialogs into one common layout
2021-07-27 19:42:51 +02:00
TacoTheDank
50f3b08c59 Consolidate edittext alert dialogs into one layout 2021-07-27 13:31:58 -04:00
Stypox
2aebf6ceaf
Add log when existsAsFile() is called on an invalid StoredFileHelper 2021-07-27 17:56:41 +02:00
Stypox
0cb801179c
Merge pull request #6733 from Douile/fix/recaptcha-webview-background-activity
Prevent recaptcha webview from keeping youtube loaded in background
2021-07-27 11:41:17 +02:00
Stypox
1822d21676
Fix NullPointerException when checking if storage exists 2021-07-27 11:36:14 +02:00
Nathan Schulzke
7fd2ebc252 Add ability to mark an item as played 2021-07-26 20:51:41 -06:00
Kalle Struik
74173317de Change heart color to be red, add else clause for non hearted comments, and apply some code style suggestions. 2021-07-23 19:43:25 +02:00
Kalle Struik
3874e16187 Added support for showing when a comment has received a heart from the creator of a video. 2021-07-23 17:30:47 +02:00
Tom
52c136439e
Use loadUrl instead of loadData
Co-authored-by: Stypox <stypox@pm.me>
2021-07-22 10:47:47 +00:00
Douile
cd86ed3877
Prevent recaptcha webview from keeping youtube loaded in background
After the cookies are extracted from the recaptcha webview make it load an empty
page to prevent youtube being loaded unecessarily in the background.
2021-07-22 02:41:01 +01:00
TacoTheDank
1d85661ab9 Update some AndroidX libraries 2021-07-21 19:31:41 -04:00
Stypox
fa8630ddae
Use url comparison between queue items when disabling preloading
From #4562: Disable player stream preloading only if the current stream is going to be replaced for sure (see this). equals() was implemented for PlayQueueItems, so that (only) the url is compared when checking them.
2021-07-21 18:09:18 +02:00
Stypox
4a2bd7bd7b
Remove equals() method from PlayQueueItem 2021-07-21 18:09:18 +02:00
Tobi
63fdc100d6
Merge pull request #6705 from Stypox/big-text-info-items
Fix grid span count calculation
2021-07-19 22:45:48 +02:00
Tobi
9e2ece78dd
Merge pull request #6701 from Stypox/dismiss-download-dialog
Dismiss download dialog correctly
2021-07-19 21:47:12 +02:00
Stypox
4a242e43a7
Merge pull request #6689 from Isira-Seneviratne/Use_WindowInsetsCompat_getInsets
Use WindowInsetsCompat's getInsets() method.
2021-07-19 21:19:06 +02:00
Stypox
5ba3ef0a25
Fix grid span count calculation; remove duplicate methods 2021-07-19 20:47:50 +02:00
Isira Seneviratne
9458b9f37d Use PackageInfoCompat.getSignatures(). 2021-07-19 19:48:24 +05:30
Stypox
ca282f2be8
Merge pull request #6675 from Isira-Seneviratne/Use_Kotlin_methods
Use Kotlin methods in LicenseFragment.
2021-07-19 13:19:02 +02:00
Stypox
46e7da4e21
Merge pull request #6688 from litetex/fix-some-build-warnings
Fix some build warnings
2021-07-19 11:52:24 +02:00
Isira Seneviratne
1721817fdb Use WindowInsetsCompat's getInsets() method. 2021-07-19 15:17:44 +05:30
Stypox
d57bfde604
Merge pull request #6434 from litetex/playerSeekbarPreview
Player seekbar thumbnail preview
2021-07-19 11:42:10 +02:00
Stypox
8f559965f6
Call DownloadDialog dismiss() in the correct way 2021-07-19 10:59:45 +02:00
Stypox
35e005caaa
Improve method order in DownloadDialog and add separator comments 2021-07-18 14:23:38 +02:00
Stypox
baa12c7069
Merge pull request #6536 from TacoTheDank/moar-onactivityresult
More onActivityResult deprecation fixes
2021-07-18 10:24:00 +02:00
Isira Seneviratne
e2b044d2ee Use Kotlin methods in LicenseFragment. 2021-07-18 07:47:12 +05:30
litetex
621af8d812 Removed unused import (rebasing/merge problem) 2021-07-17 16:52:24 +02:00
litetex
a9b5ef3bd3 Set minWidth to 10dp so that the popup player works (mostly) correctly 2021-07-17 16:43:03 +02:00
litetex
384d964827 Added seekbarThumbnailPreview 2021-07-17 16:43:00 +02:00
litetex
36c198fc33
One textview is enough for disabled comments
Ref: https://github.com/TeamNewPipe/NewPipe/pull/6483#discussion_r654793920
2021-07-17 13:14:50 +02:00
litetex
81107df53f
Added comments disabled functionallity 2021-07-17 13:10:44 +02:00
Stypox
a932bc2503
Merge pull request #6637 from Isira-Seneviratne/Use_GestureDetectorCompat
Use GestureDetectorCompat.
2021-07-17 12:58:43 +02:00
litetex
f4e2eca256 Simplified code and adjusted the style so that it's similar to FeedFragment 2021-07-16 21:21:10 +02:00
litetex
08d5dfa49c Removed updateRelativeTimeViews when the activity is paused
We don't need to call ``updateRelativeTimeViews`` when the activity is paused, because the user likely won't  notice it.
Despite that onResume already calls ``updateRelativeTimeViews`` so there is no need to do that twice.
2021-07-16 21:04:32 +02:00
Tobi
dfa941a9e7
Merge pull request #6503 from evermind-zz/fixes-for-upstream
Prevent error msg: 'Unrecoverable player error occurred' while playin…
2021-07-14 09:53:30 +02:00
Tobi
1584028995
Merge pull request #6531 from XiangRongLin/immediat_pref_commit
Remove option to immediately commit pref changes on import
2021-07-14 09:48:58 +02:00
Tobi
14dab85ff0
Merge pull request #6566 from evermind-zz/various-fixes-for-upstream
Convert PlayerHolder to Singleton; cleanup in VideoDetailFragment; Player/MainPlayer do not call onDestroy() directly
2021-07-14 09:46:04 +02:00
Tobi
96f5cd9f17
Merge pull request #6463 from Stypox/metadata-tags
Improved metadata layout, better tags accessibility
2021-07-12 16:18:11 +02:00
Douile
2e053ea25a
Fix crash when refreshing feed 2021-07-11 03:00:32 +01:00
TobiGr
9ca2691a2c Add close() method to NewPipeDatabase 2021-07-10 14:46:51 +02:00
TobiGr
7c3f5a62c5 Fix crash when refreshing feed after importing database or subscriptions
The database was not closed correctly
2021-07-10 13:09:01 +02:00
Isira Seneviratne
6711dae4e0 Use GestureDetectorCompat. 2021-07-10 15:35:11 +05:30
evermind
f78d2a5ed8 Prevent error msg: 'Unrecoverable player error occurred' while playing video during rotation (#6502)
Playing a video in VideoDetailFragment and rotating the screen to landscape (back and forth more often)
can trigger this error message. Especially if rotation for whatever reason takes long or
playing a high resolution (1080p) video.

The underlying logcat error messages:
05-12 16:38:38.251 24920 26037 E Surface : getSlotFromBufferLocked: unknown buffer: 0x923fc810
05-12 16:38:38.251 24920 26037 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 35 to native window

The problem is that that Exoplayer is trying to write to our -- during rotation -- no longer existant
(VideoDetailFragment) SurfaceView.

Solution:
Implementing SurfaceHolder.Callback and using DummySurface we can now handle the lifecycle of the Surface.

How?: In case we are no longer able to write to the Surface eg. through rotation/putting in
background we can set a DummySurface. Although it only works on API >= 23.
Result: we get a little video interruption (audio is still fine) but we won't get the
'Unrecoverable player error occurred' error message.

This implementation is based on and more background information:
 'ExoPlayer stuck in buffering after re-adding the surface view a few time 2703'

 -> exoplayer fix suggestion link
  https://github.com/google/ExoPlayer/issues/2703#issuecomment-300599981
2021-07-06 12:49:56 +02:00
evermind
48c2c156cb convert PlayerHolder to Singleton, handle context within, bugfix ServiceConnection leak
- bugfix: have ServiceConnection created only once!

- select the context within the PlayerHolder to start, stop, bind or unbind the service
  -> we have to make sure the Service is started AND stopped within the same context
  -> so let PlayerHolder be the one to select the context

- remove removeListener() and replace the call with setListener(null)
- Compatibility: use ContextCompat.startForegroundService instead of startService()
2021-07-06 12:31:26 +02:00
evermind
435813355f use viewBinding correctly 2021-07-06 07:56:05 +02:00
evermind
e30a552b6c remove duplicated code for toggle Fullscreen 2021-07-06 07:56:00 +02:00
evermind
22a4a4b2df move null checks for player and playerService to helper methods
- code is easier to read
- duplication of code reduced
2021-07-06 07:55:52 +02:00
Robin
201e5ee09d Fix NPE when connecting via BT 2021-06-25 09:14:15 +02:00
evermind
aaa3e20c5a service.onDestroy() should only be called from the system and not manually
instead use service.stopService() which inturn calls stopSelf() and
triggers hopefully onDestroy() to be called. Eventually we have to make
sure that all ServiceConnections are closed to successfully stop the service
now!

Cleanup within stopService() and not only onDestroy()

So we make sure that all listeners can react to onServiceStopped()
and close their ServiceConnections. Afterwards the android framework
is ready to stop the Service.
2021-06-24 10:15:07 +02:00
bopol
0da8e28651
Merge pull request #6558 from Douile/fix/searchfragment-null-service
Fix null pointer exception when displaying SearchFragment
2021-06-24 09:16:00 +02:00
bopol
25cf8dc20a Refactoring by Android Studio 2021-06-23 14:30:01 +02:00
Douile
cb1a138140
#6081: Disable feed click handlers during refresh
This patch changes click handlers for feed (Whats new) so that they do
nothing while the feed is refreshing and the items being clicked are not
visible.
2021-06-22 19:42:20 +01:00
Douile
384ca66205
#6522: Fix null pointer exception when displaying SearchFragment
It seems due to #6394 updating the FragmentX library there was a
change to the order of lifecycle calls, as such onResume() was no longer
before onCreateOptionsMenu() creating a null pointer exception when
using service in onCreateOptionsMenu() as it is only set in onResume().

By moving the initialization of service to onStart() which still happens
before onCreateOptionsMenu() this crash can be avoided. This commit also
adds a check for a null service to prevent future crashes for similar
issues.
2021-06-22 16:52:02 +01:00
Mohammed Anas
62b4f333bb
Don't enable SAF on Fire TV (#6516) 2021-06-20 19:01:06 +00:00
TacoTheDank
ae39b31c68 Fix onActivityResult deprecation in DownloadDialog 2021-06-20 14:14:44 -04:00
TacoTheDank
e5a1438673 Fix onActivityResult deprecation in DownloadSettingsFragment 2021-06-20 14:11:00 -04:00
XiangRongLin
785c0376f8 Remove variable ContentSettingsFragment.lastImportExportDataUri
Instead pass the value through the methods as parameter
2021-06-20 09:30:59 +02:00
XiangRongLin
0bdf8de38e Resolve sonar issues in ContentSettingsFragment
https://sonarcloud.io/organizations/teamnewpipe/rules?open=java%3AS2885&rule_key=java%3AS2885

https://sonarcloud.io/organizations/teamnewpipe/rules?open=java%3AS112&rule_key=java%3AS112
2021-06-20 09:30:59 +02:00
XiangRongLin
9767e98e50 Remove option to immediately commit pref changes on import
System is now not restarted with `System.exit(0)`.
Instead it is done properly by finishing the activity and restarting the activity. This allows preference changes which are queued up asynchronously through `apply` to be applied.
2021-06-20 09:17:55 +02:00
TacoTheDank
79deff3261 Annotate some overridden methods and parameters as NonNull 2021-06-19 18:37:02 -04:00
Robin
f5d015e8f9 Use ExoPlayer default values for buffers 2021-06-18 20:18:24 +02:00
Stypox
74ad488f4a
Merge pull request #6394 from TacoTheDank/androidx-fragment-134
Update AndroidX Fragment to 1.3.4
2021-06-18 13:14:30 +02:00
Tobi
be676ad93c
Merge pull request #3371 from mauriciocolli/feed-hide-played-items
Add ability to hide played items in a feed
2021-06-18 09:18:48 +02:00
Robin
0803d9f2b5
Merge pull request #6504 from evermind-zz/fixes-choice-dialog
dismiss choice dialog in onStop() to avoid a leaked window Exception:
2021-06-17 21:17:35 +02:00
Stypox
841fb4cfc5
Merge pull request #6495 from danielmbutler/Replace-System.exit-calls
Replace the System.exit calls with getActivity.finishAffinity()
2021-06-17 21:07:48 +02:00
danielmbutler
90de75968d Replaced System.Exit calls with FinishAffinity and Start Activity calls
Implemented "RestartApp" method defined in NavigationHelper.java.
 This method is used in ExitActivity.java and ContentSettingsFragment.java
2021-06-17 17:18:15 +01:00
evermind
a9ab2f54ea dismiss choice dialog in onStop() to avoid a leaked window Exception:
E/WindowManager: android.view.WindowLeaked: Activity org.schabi.newpipe.RouterActivity has leaked window DecorView@d99fe3b[] that was originally added here
        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418)
2021-06-17 06:53:47 +02:00
TacoTheDank
a1432e939f Fix onActivityResult deprecation in SubscriptionFragment 2021-06-15 22:09:19 -04:00
TacoTheDank
cae160b5be Fix onActivityResult deprecation in SubscriptionsImportFragment 2021-06-15 22:09:07 -04:00
TacoTheDank
aa4e5da146 Fix onActivityResult deprecation in ContentSettingsFragment 2021-06-15 22:08:55 -04:00
TacoTheDank
1061fca6a3 Add super.onRequestPermissionsResult where missing 2021-06-15 22:08:41 -04:00
TacoTheDank
e4885e3c52 Fix some older deprecations from previous Fragment versions 2021-06-15 22:08:25 -04:00
Stypox
d6e0bd8c26
Merge pull request #6059 from Dakkaron/manual-tablet-mode-setting
Adds manual tablet mode setting
2021-06-15 21:46:19 +02:00
Dakkaron
e01ef42d31
Adds manual tablet mode setting
Co-authored-by: TiA4f8R <74829229+TiA4f8R@users.noreply.github.com>
2021-06-15 21:43:06 +02:00
Stypox
32df4d39a4
Reshow feed if grid/list view mode changed 2021-06-15 18:40:25 +02:00
Stypox
7145b117cc
Fix long press menu in feed 2021-06-14 19:02:57 +02:00
Stypox
4698d07323
Do not hide feed buttons (show/hide & help) behind three-dots menu 2021-06-14 19:02:57 +02:00
Stypox
2142f05a88
Fix hiding finished streams in groups; new stream state validity condition
Consider stream state valid also if >1/4 of video was watched
2021-06-14 19:01:01 +02:00
Stypox
40a2df847b
Move tags layout at the bottom, use multiple lines 2021-06-13 21:56:06 +02:00
TiA4f8R
4eef498d24
Only call addClickListenersOnTimestamps if relatedInfo is instance of StreamInfo 2021-06-11 14:08:08 +02:00
TiA4f8R
32b0bdb98c
Fix the compile error 2021-06-11 12:19:29 +02:00
Stypox
edfe0f9c30
Fix disposables handling for text linkifier
also use differently Markwon methods to convert plain text to markdown
2021-06-11 12:12:12 +02:00
Stypox
eef418a757
Improve text linkifier function parameters 2021-06-11 12:12:11 +02:00
TiA4f8R
218f25c171
Annotate params and methods with NonNull 2021-06-11 12:12:10 +02:00
TiA4f8R
f02df6d80c
Fix an error and add a new method in the ShareUtils class
Fix the error due to the rebase on the dev branch of this branch
Add a shareText method in the ShareUtils class which has 3 parameters and calls
the original shareText method with an empty string for the
imagePreviewUrl param.
2021-06-11 12:12:09 +02:00
TiA4f8R
da4d379b22
Initial work: use disposables for timestamps parsing in YouTube video descriptions and YouTube comments 2021-06-11 12:12:08 +02:00
TiA4f8R
f13f4cc5d2
Split handleUrl method into two methods
Split handleURL method, now private, into two methods:
handleUrlCommentsTimestamp and handleUrlDescriptionTimestamp. Code is
now more proper.
2021-06-11 12:12:07 +02:00
TiA4f8R
a79badd783
Adress requested changes and try some cleanup in handleUrl method of InternalUrlsHandler class 2021-06-11 12:12:06 +02:00
TiA4f8R
2702700d10
Don't use a chooser for other intents than opening a content in a browser or sharing a content to other apps
Use an ACTION_CHOOSER intent has a negative impact for user experience, because user cannot set as default an activity for an intent
2021-06-11 12:12:05 +02:00
TiA4f8R
267686fd37
Initial work: add support for opening hashtags in plain text descriptions
This commit adds supports for opening hashtags in plain text descriptions, using the same logic as timestamps.
Every hashtag opens a search on the current service with the text in the hashtag.
Also use a better regular expression for parsing timestamps.
2021-06-11 12:12:04 +02:00
TiA4f8R
e5df2f65b8
Move some classes to a new subpackage and adress requested changes
Rename URLHandler and KoreUtil classes to InternalUrlsHandler and KoreUtils.
Move InternalUrlsHandler, KoreUtils, TextLinkfier, ShareUtils classes to external_communication subpackage.
Remove unused param showPreviewText in shareText method of ShareUtils class.
Add initial work to be able to display an image preview of the content shared (not for downloads).
Use a better regular expression to parse timestamps in plain text descriptions.
2021-06-11 12:12:03 +02:00
TiA4f8R
d6decc05d7
Move some classes to a new subpackage and adress requested changes
Rename URLHandler and KoreUtil classes to InternalUrlsHandler and KoreUtils.
Move InternalUrlsHandler, KoreUtils, TextLinkfier, ShareUtils classes to external_communication subpackage.
Remove unused param showPreviewText in shareText method of ShareUtils class.
Add initial work to be able to display an image preview of the content shared (not for downloads).
Use a better regular expression to parse timestamps in plain text descriptions.
2021-06-11 12:12:02 +02:00
TiA4f8R
d85afd6435
Initial work to add the image of the content in the share sheet
Also do some fixes when sharing a file in downloads and some improvements in JavaDocs of ShareUtils class.
2021-06-11 12:12:00 +02:00