1
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-09-19 23:40:51 +02:00

Compare commits

...

1064 Commits

Author SHA1 Message Date
Tobias Groza
dd682013f9 Merge pull request #3267 from TeamNewPipe/release_0.19.0
Release 0.19.0
2020-03-29 18:57:28 +02:00
TobiGr
7f21975971 release version 0.19.0 (900) 2020-03-28 20:32:20 +01:00
TobiGr
bcd77031f3 Add changelog 2020-03-28 20:32:20 +01:00
Tobias Groza
505a689268 Merge pull request #3292 from vlt23/dev
Fix UI crash in Settings, Content (chinese language)
2020-03-28 20:31:47 +01:00
vlt23
3c3848d4f8 Fix UI crash in Settings, Content (chinese language) 2020-03-28 20:12:17 +01:00
TobiGr
949150f9ff Update extractor version 2020-03-28 19:18:37 +01:00
Tobias Groza
7c72f17fad Merge pull request #3279 from mauriciocolli/fix-not-found-handling
Handle content not available exception more comprehensively
2020-03-28 19:10:43 +01:00
Mauricio Colli
b4cabe23e3 Handle content not available exception more comprehensively 2020-03-28 14:54:52 -03:00
Tobias Groza
40de014732 Merge pull request #3283 from Stypox/fix-mute-button
Fix mute button inflation problems on API<21
2020-03-28 18:38:36 +01:00
Mauricio Colli
f9b718f1eb Use correct class for getting a vector drawable in older APIs 2020-03-28 14:30:47 -03:00
Tobias Groza
d051df9599 Merge pull request #3278 from mauriciocolli/fix-url-parsing-share
Fix url parsing from shared content
2020-03-28 18:15:26 +01:00
Mauricio Colli
4dc28989c8 Fix bug when searching for urls from shared content 2020-03-28 14:06:11 -03:00
Mauricio Colli
f133bbf499 Introduce a proper way to find urls in a string input 2020-03-28 14:06:09 -03:00
Tobias Groza
bbd8751f62 Merge pull request #3281 from mauriciocolli/fix-main-screen-menu-creation
Temporary fix for main screen menu visibility
2020-03-28 12:15:21 +01:00
Mauricio Colli
d8e83dabc6 Temporary: Fix menu visibility when restoring state in the pager adapter
When restoring the state of the adapter, all the fragments' menu
visibility were set to false, effectively disabling the menu from the
user until he switched pages or another event that triggered the menu to
be visible again happened.

FragmentStatePagerAdapter is deprecated and should be replaced with its
ViewPager2 counterpart, until then, this should do it.
2020-03-27 11:30:38 -03:00
TobiGr
c6eaed76f3 Translation fixes 2020-03-26 23:09:49 +01:00
TobiGr
6ce338b2d0 Weblate ... 2020-03-26 21:56:30 +01:00
TobiGr
aa87f10b6a Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-26 21:45:46 +01:00
Xiang Xu
9a980f9341 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:32 +01:00
MohammedSR Vevo
544751895e Translated using Weblate (Kurdish)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:30 +01:00
B0pol
082b7fa0ec Translated using Weblate (French)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:27 +01:00
wb9688
4d23cf7746 Translated using Weblate (Dutch)
Currently translated at 97.1% (544 of 560 strings)
2020-03-26 20:10:26 +01:00
pjammo
c687d832fa Translated using Weblate (Italian)
Currently translated at 99.6% (558 of 560 strings)
2020-03-26 20:10:21 +01:00
Yaron Shahrabani
4cd5afa3fb Translated using Weblate (Hebrew)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:20 +01:00
anonymous
39bb0f4c3e Translated using Weblate (Croatian)
Currently translated at 89.6% (502 of 560 strings)
2020-03-26 20:10:19 +01:00
Stjepan
aef673abd1 Translated using Weblate (Croatian)
Currently translated at 89.6% (502 of 560 strings)
2020-03-26 20:10:19 +01:00
zeritti
c4f58cb6e2 Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:10 +01:00
AioiLight
6e3170f5c7 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:09 +01:00
Enol P
782b983354 Translated using Weblate (Asturian)
Currently translated at 51.2% (287 of 560 strings)
2020-03-26 20:10:07 +01:00
B0pol
89dc5cec59 Translated using Weblate (Esperanto)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:06 +01:00
C. Rüdinger
1994dad972 Translated using Weblate (German)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:05 +01:00
nautilusx
8168445b4a Translated using Weblate (German)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:04 +01:00
anonymous
838f8cb2e2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.5% (535 of 560 strings)
2020-03-26 20:10:03 +01:00
Emin Tufan Çetin
2e3f240ac6 Translated using Weblate (Turkish)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:03 +01:00
Daniele Lira Mereb
c6de6e53b5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.5% (535 of 560 strings)
2020-03-26 20:09:58 +01:00
TobiGr
55c577e76e Seek duration should not be rounded up when opening the settings, even if inexact seek is disabled 2020-03-25 22:34:02 +01:00
TobiGr
93b75b6013 Update extractor version 2020-03-25 22:31:21 +01:00
Tobias Groza
452f258b17 Merge pull request #3273 from kapodamy/int-overflow-fix
fix #2790
2020-03-25 21:12:36 +01:00
kapodamy
5f940c40ed fix integer overflow 2020-03-25 16:13:36 -03:00
TobiGr
a19be79891 Remove unused "clear_finished_download" string 2020-03-25 12:45:37 +01:00
TobiGr
60252bbda8 Remove unused "playback_default" string 2020-03-25 12:44:04 +01:00
TobiGr
6ac52f241d Do not show nothing for some quantities for Chinese 2020-03-25 12:40:55 +01:00
TobiGr
6eeb22926a Fix what Weblate screwed up again 2020-03-25 12:36:43 +01:00
TobiGr
329047836b Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-25 12:26:54 +01:00
TobiGr
4524a69f99 Update extractor version 2020-03-25 12:04:16 +01:00
Tobias Groza
5a8b565199 Merge pull request #3252 from B0pol/mute_button
Change mute button color for more visibility
2020-03-23 23:10:48 +01:00
Hosted Weblate
da5369e902 Merge branch 'origin/dev' into Weblate. 2020-03-23 04:49:07 +01:00
Jeff Huang
a433e5b65f Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (560 of 560 strings)
2020-03-23 04:47:37 +01:00
B0pol
ebb1389133 Translated using Weblate (French)
Currently translated at 100.0% (560 of 560 strings)
2020-03-23 04:47:32 +01:00
JoC
b31fbc380f Translated using Weblate (Spanish)
Currently translated at 99.8% (559 of 560 strings)
2020-03-23 04:47:29 +01:00
Hemanta Sharma
a86912c8e7 Translated using Weblate (Nepali)
Currently translated at 95.3% (534 of 560 strings)
2020-03-23 04:47:27 +01:00
nautilusx
3e348f8c71 Translated using Weblate (German)
Currently translated at 98.0% (549 of 560 strings)
2020-03-23 04:47:25 +01:00
bopol
bb91b16863 use 8F instead of 6f for white hexadecimal, on @wb9688 advise 2020-03-21 22:07:39 +01:00
bopol
8d068b339a remove unused imports 2020-03-21 21:54:40 +01:00
bopol
c54ac32732 mute button color for queue 2020-03-21 21:51:11 +01:00
bopol
47c5008871 Change mute button color for more visibility 2020-03-21 16:58:53 +01:00
jonas-skywalker
0a412e2abb Remove search icon in search mode. Issue: #3183 (see PR #3193) 2020-03-20 11:59:34 +01:00
Tobias Groza
27156d74da Merge pull request #3220 from kapodamy/webm-seek-fix
fix for #3204
2020-03-20 11:49:39 +01:00
TobiGr
50fd10ecd6 Remove titles from issue templates and fix typo 2020-03-19 22:50:48 +01:00
Tobias Groza
cab104a60a Merge pull request #3132 from Poolitzer/templates
Updating issue and PR templates
2020-03-19 22:11:55 +01:00
Hosted Weblate
37f4469503 Merge branch 'origin/dev' into Weblate. 2020-03-19 21:42:11 +01:00
Allan Nordhøy
60bcd70718 Translated using Weblate (Norwegian Bokmål)
Currently translated at 88.7% (497 of 560 strings)
2020-03-19 21:42:08 +01:00
Marian Hanzel
ac9057bd23 Translated using Weblate (Slovak)
Currently translated at 91.9% (515 of 560 strings)
2020-03-19 21:42:07 +01:00
zmni
565a5abb55 Translated using Weblate (Indonesian)
Currently translated at 99.2% (556 of 560 strings)
2020-03-19 21:42:05 +01:00
Yaron Shahrabani
8b45256725 Translated using Weblate (Hebrew)
Currently translated at 99.1% (555 of 560 strings)
2020-03-19 21:42:03 +01:00
nautilusx
b4a5f29cd1 Translated using Weblate (German)
Currently translated at 97.1% (544 of 560 strings)
2020-03-19 21:42:02 +01:00
TobiGr
4d4fb9f435 Merge branch 'master' into dev 2020-03-19 21:13:43 +01:00
Tobias Groza
49c6aa2d74 Update .github/ISSUE_TEMPLATE/feature_request.md
Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-19 18:03:33 +01:00
Mauricio Colli
fb3290e870 Merge pull request #3230 from B0pol/seconds
Merge duplicated duration plurals and introduce new plurals for selected count
2020-03-19 09:56:57 -03:00
Mauricio Colli
27fc0d5900 Make duration plurals naming consistent 2020-03-19 09:44:13 -03:00
bopol
85e16afaa0 use val instead of val, make sentence more natural 2020-03-19 09:44:12 -03:00
bopol
0ae4d1369d use plural string for feed_group_dialog_selection_count 2020-03-19 09:44:11 -03:00
bopol
d0f2a02277 delete «seconds» plural string in favor of «dynamic_seek_duration_description» to avoid weblate conflicts 2020-03-19 09:44:10 -03:00
Mauricio Colli
b1c72bacc4 Merge remote-tracking branch 'weblate/dev' 2020-03-19 09:00:50 -03:00
poolitzer
02ef0b0818 a document is not nice 2020-03-18 19:44:37 -07:00
Poolitzer
e83e755fe1 dropping markdown links in comments
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-03-18 19:42:03 -07:00
TobiGr
c73f7dd2f8 Update extractor version
Update changelog
2020-03-18 18:00:54 +01:00
Hemanta Sharma
436b08ab05 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-17 08:32:09 +01:00
Tobias Groza
ce15697ceb Merge pull request #3234 from mauriciocolli/revert-manifest-removal
Revert manifest removal from debug build variant
2020-03-16 17:59:26 +01:00
TobiGr
95883b1e3c Release version 0.187 2020-03-16 17:34:11 +01:00
Hemanta Sharma
0f96f3bd43 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-16 13:36:24 +01:00
Mauricio Colli
df2a3837a9 Revert manifest removal from build variant
The file was responsible for making the app use the Debug application
class, which various debug tools depended on.
2020-03-15 17:37:40 -03:00
wb9688
be5654dbd7 Merge pull request #3233 from TeamNewPipe/delete-subscription-header
Delete subscription_header.xml
2020-03-15 18:06:47 +01:00
Stypox
0ab4b6d63d Delete subscription_header.xml
Unused file
2020-03-15 17:47:48 +01:00
Tobias Groza
c4a601b6f6 Merge pull request #3090 from B0pol/mediaccc
Links support for mediaccc and shortened invidious
2020-03-15 17:24:32 +01:00
bopol
eacd21b230 update extractor version 2020-03-15 17:17:18 +01:00
Hemanta Sharma
373ec96051 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:37:27 +01:00
Software In Interlingua
0876cdd697 Translated using Weblate (Interlingua)
Currently translated at 36.4% (195 of 535 strings)
2020-03-15 00:37:05 +01:00
anonymous
fcc806615e Translated using Weblate (Polish)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:37:01 +01:00
Darko Ristovski
0486ccb0d4 Translated using Weblate (Macedonian)
Currently translated at 73.4% (393 of 535 strings)
2020-03-15 00:37:00 +01:00
B0pol
dc1312d58a Translated using Weblate (Esperanto)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:36:56 +01:00
nautilusx
878a5dba60 Translated using Weblate (German)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:36:54 +01:00
Tobias Groza
f8cc3180e8 Merge pull request #2309 from mauriciocolli/feed
Feed order and subscriptions groups
2020-03-14 18:15:57 +01:00
Mauricio Colli
97f5490c13 Add help dialog to feed screen
Help to a possible confusion or simply awareness that NewPipe has both
ways to load the feed.
2020-03-14 13:24:25 -03:00
Tobias Groza
a4babc10c0 Merge pull request #3225 from mauriciocolli/improve-build-branch
Change share title to differentiate multiple builds
2020-03-14 10:18:36 +01:00
Mauricio Colli
6a9a0f1e73 Add tests for migrations in the Room database
Doing this increase the level of reliability of migrations, as we can be
pretty much more confident of avoiding problems with them.
2020-03-14 00:12:54 -03:00
Mauricio Colli
ac44ed0862 Localize duration strings used in feed settings using plurals 2020-03-14 00:12:53 -03:00
Mauricio Colli
b62142db82 Detect if the subscription list should be shown as a grid
Also used proper string keys for the preferences, left a TODO to fix it
in other places later.
2020-03-14 00:12:52 -03:00
Mauricio Colli
f01e40e671 Simplify screen handling in feed group dialog 2020-03-14 00:12:51 -03:00
Mauricio Colli
d8b9d353aa Add a confirmation dialog when deleting a feed group 2020-03-14 00:12:50 -03:00
Mauricio Colli
98c65d8ddb Don't expose MutableLiveData in view models 2020-03-14 00:12:48 -03:00
Mauricio Colli
597859eb23 Disable buttons when processing actions in the feed dialogs 2020-03-14 00:12:47 -03:00
Mauricio Colli
34082c40d3 Fix behavior of the feed group dialog under some screen sizes/scales 2020-03-14 00:12:46 -03:00
Mauricio Colli
d1d5f6821f Implement feed groups manual sorting
Now, the user can sort its groups to his liking even after he created
them.

Also updated the database diagram to reflect the table's new column.
2020-03-14 00:12:45 -03:00
Mauricio Colli
50714c3006 Add ability to cancel a feed update through a notification action
- Change prefetch value default so each parallel rail buffers less
items.
2020-03-14 00:12:44 -03:00
Mauricio Colli
18a40168d9 Add Groupie library to the credit list in the about page 2020-03-14 00:12:43 -03:00
Mauricio Colli
2c783ff911 Stick info header when selecting subscriptions in the feed group dialog
- Avoid creating plural translation by using a different wording
2020-03-14 00:12:42 -03:00
Mauricio Colli
3f32573638 Replace hardcoded value that represents the group "All" with a constant 2020-03-14 00:12:41 -03:00
Mauricio Colli
5ea323ce02 New option to use dedicated feed sources for services that support it
YouTube, for example, has a dedicated feed which was built to be used
like this. It comes with some caveats though, like lacking enough
information about the items and returning a limited amount of them.

Nonetheless, a nice option for users that like speedy updates but don't
mind this issue.
2020-03-14 00:12:39 -03:00
Mauricio Colli
b2f317ab7c Load only the selected group and customizable updated status timeout
Now only the subscriptions from the selected group by the user will be
loaded.

Also add an option to decide how much time have to pass since the last
refresh before the subscription is deemed as not up to date. This helps
when a subscription appear in multiple groups, since updating in one
will not require to be fetched again in the others.
2020-03-14 00:12:38 -03:00
Mauricio Colli
2948e4190b Change feed groups header title and icon from feed representing "All" 2020-03-14 00:12:37 -03:00
Mauricio Colli
f05b8c9542 Expand import/export options by default when subscriptions list is empty 2020-03-14 00:12:36 -03:00
Mauricio Colli
8b87893248 Update Groupie list library to v2.7.0 2020-03-14 00:12:35 -03:00
Mauricio Colli
a93e2cdc30 Quick fix for NPE when exiting the feed fragment 2020-03-14 00:12:34 -03:00
Mauricio Colli
f69b6c85f8 Fix alignment issues in group creator dialog 2020-03-14 00:12:33 -03:00
Mauricio Colli
20a4bb0936 Implement new feed and subscriptions groups
- Introduce Groupie for easier lists implementations
- Use some of the new components of the Android Architecture libraries
- Add a bunch of icons for groups, using vectors, which still is
compatible with older APIs through the compatibility layer
2020-03-14 00:12:31 -03:00
Mauricio Colli
e8ab5aacc7 Setup initial database for feed implementation
- Update the database diagram
- Add new migration for the new tables and fields
- Enable schema exports
2020-03-14 00:12:30 -03:00
Mauricio Colli
0e2f062148 Disable database destructive migration fallback
This really shouldn't be enabled, as this database is not just a temp
one. Making the mistake of shipping the app without a proper migration
would cause a big problem.

Really hard to happen but an error is far better than data loss.
2020-03-14 00:12:29 -03:00
Mauricio Colli
d247d32221 Change share title as well to differentiate multiple builds 2020-03-13 20:11:24 -03:00
Mauricio Colli
89e3292ced Move code with lower priority to the bottom of the file 2020-03-13 20:11:22 -03:00
Tobias Groza
c2535d7764 Merge pull request #3195 from B0pol/second
Fix seek duration not showing
2020-03-13 23:27:37 +01:00
bopol
200121477c Fix seek duration not showing 2020-03-13 23:12:10 +01:00
Tobias Groza
d23b63ca83 Merge pull request #3177 from wb9688/yt-music
Accept music.youtube.com in manifest
2020-03-13 23:02:48 +01:00
TobiGr
9f91043131 Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-13 22:50:15 +01:00
Tobias Groza
c668620c97 Merge pull request #3196 from mauriciocolli/fix-app-glitch
Fix visual glitch when exiting the app
2020-03-13 22:39:52 +01:00
Tobias Groza
0ee78769a1 Merge pull request #3224 from B0pol/buttons_player
Fix captions overtaking mute button
2020-03-13 22:16:30 +01:00
bopol
95f0e60343 fix captions overtaking mute button 2020-03-13 19:50:11 +01:00
Hosted Weblate
c35b13b3e2 Merge branch 'origin/dev' into Weblate. 2020-03-12 10:50:06 +01:00
Igor Nedoboy
1f42491284 Translated using Weblate (Russian)
Currently translated at 100.0% (536 of 536 strings)
2020-03-12 10:50:04 +01:00
kapodamy
ca8f8e0ee9 misc changes
* read "SeekPreRoll" from the source track (if available)
* use the longest track duration as segment duration, instead of the video track duration
* do not hardcode the "Cue" reserved space behavior
* do not hardcode the "EBML Void" element, unreported issue. The size was not properly calculated
* rewrite the key-frame picking
* remove writeInt(), writeFloat() and writeShort() methods, use inline code
* set "SeekPreRoll" and "CodecDelays" values on output tracks (if available)
* rewrite the "Cluster" maker
* rewrite the code of how "Cluster" sizes are written

Fix encode() method (the reason of this commit/pull-request):
* Use the unsigned shift operator instead of dividing the value, due precession lost
2020-03-12 00:50:14 -03:00
Tobias Groza
f7822a448e Merge pull request #3133 from Stypox/gradle-app-id-suffix
Change app id based on current git branch
2020-03-11 22:41:52 +01:00
Hosted Weblate
29edb8c8a1 Merge branch 'origin/dev' into Weblate. 2020-03-11 22:16:47 +01:00
Xiang Xu
d2403d1b34 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:47 +01:00
Jeff Huang
c296634168 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
anonymous
ead22fa325 Translated using Weblate (French)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
JoC
3265cdc3e5 Translated using Weblate (Spanish)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
Software In Interlingua
8806981e64 Translated using Weblate (Interlingua)
Currently translated at 26.6% (143 of 536 strings)
2020-03-11 22:16:45 +01:00
random r
04c7a66eb4 Translated using Weblate (Italian)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:38 +01:00
WaldiS
0a32314156 Translated using Weblate (Polish)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:37 +01:00
Yaron Shahrabani
6cdf97dfed Translated using Weblate (Hebrew)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:37 +01:00
zeritti
17c140c03d Translated using Weblate (Czech)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:36 +01:00
AioiLight
dcdabe4551 Translated using Weblate (Japanese)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:36 +01:00
Enol P
a0823b2fda Translated using Weblate (Asturian)
Currently translated at 51.1% (274 of 536 strings)
2020-03-11 22:16:35 +01:00
Olexandr Nesterenko
afcda3774c Translated using Weblate (Ukrainian)
Currently translated at 93.2% (500 of 536 strings)
2020-03-11 22:16:34 +01:00
nautilusx
f895e225d4 Translated using Weblate (German)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 22:16:33 +01:00
anonymous
d0a5f757ad Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:33 +01:00
Eduardo Caron
b43bc7f8e3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:32 +01:00
Florian
c09e833627 Translated using Weblate (French)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 22:16:29 +01:00
Tobias Groza
33475ef403 Merge pull request #3197 from mauriciocolli/fix-main-tabs
Fix bug in main screen tabs state management
2020-03-11 22:03:16 +01:00
undeadfox
73e14af1e3 Translated using Weblate (Russian)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 21:57:38 +01:00
undeadfox
158cd83d17 Translated using Weblate (Russian)
Currently translated at 99.6% (534 of 536 strings)
2020-03-11 21:56:58 +01:00
Igor Nedoboy
d1b1b77a4c Translated using Weblate (Russian)
Currently translated at 99.6% (534 of 536 strings)
2020-03-11 21:56:58 +01:00
Hosted Weblate
bc6ecd4101 Merge branch 'origin/dev' into Weblate. 2020-03-08 17:33:06 +01:00
Xiang Xu
9c0d44ed9c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
Jeff Huang
ed5e99cfee Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
Éfrit
6ef75b3645 Translated using Weblate (French)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
IQBAL AL FATAH
8143783cc5 Translated using Weblate (Indonesian)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:57 +01:00
Sylke Vicious
454efa5426 Translated using Weblate (Italian)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:55 +01:00
WaldiS
51e3905cd4 Translated using Weblate (Polish)
Currently translated at 99.6% (532 of 534 strings)
2020-03-08 17:32:55 +01:00
Yaron Shahrabani
b61c8d5a9e Translated using Weblate (Hebrew)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:54 +01:00
Milo Ivir
583451ee02 Translated using Weblate (Croatian)
Currently translated at 82.0% (438 of 534 strings)
2020-03-08 17:32:53 +01:00
Krysa Czech
8e779c9ad1 Translated using Weblate (Czech)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:53 +01:00
Vojtěch Šamla
b0c631709f Translated using Weblate (Czech)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:53 +01:00
Osoitz
225d7dca7e Translated using Weblate (Basque)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:52 +01:00
nautilusx
5c5f4ad29f Translated using Weblate (German)
Currently translated at 99.8% (533 of 534 strings)
2020-03-08 17:32:52 +01:00
Emin Tufan Çetin
cb2cb2eab5 Translated using Weblate (Turkish)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:51 +01:00
Stypox
64c289c014 Merge pull request #3184 from opusforlife2/relocate_settings
Relocate two settings from Appearance to Content
2020-03-08 17:12:38 +01:00
Mauricio Colli
f2526ed5a8 Fix bug in main screen tabs state management
Tabs were not being destroyed/restored correctly due to a call to a
method that populated the view pager before it even had a chance of
restoring itself.

The solution was to null out the adapter before calling that method so
the view pager will postpone the populating process.
2020-03-08 09:09:04 -03:00
Stypox
8fa29ffc19 Merge pull request #3165 from karkaminski/mute_button
Mute button
2020-03-08 10:29:25 +01:00
Stypox
029758fdff Merge pull request #3046 from XiangRongLin/shareDownload
Fix bug causing crashes when sharing a downloaded file.
2020-03-08 09:44:04 +01:00
Tobias Groza
9db2197be1 Improve code style
Co-Authored-By: B0pol <bopol@e.email>
2020-03-07 20:09:05 +01:00
yausername
3e1e07e468 refactor checkpointing 2020-03-07 20:09:05 +01:00
yausername
c6b062a698 checkpoint db before export 2020-03-07 20:09:05 +01:00
Mauricio Colli
ecb1b45280 Fix visual glitch when exiting the app 2020-03-07 15:55:55 -03:00
karol
55d7be0b2f null risk issue 2020-03-05 19:07:46 +01:00
poolitzer
4e37a762d2 Further minor improvements 2020-03-04 20:31:36 -08:00
Poolitzer
2ca580dc16 minor improvements of sentences
Co-Authored-By: Stypox <stypox@pm.me>
2020-03-04 20:21:44 -08:00
karol
83c7c4a68e mute/unmute text change in action bar 2020-03-04 18:53:17 +01:00
karol
1ae8a72ba6 mute icon change in action bar 2020-03-04 18:37:04 +01:00
opusforlife2
7da11206da Relocate two settings from Appearance to Content 2020-03-04 18:41:41 +05:30
Hosted Weblate
4cd9e0f97e Merge branch 'origin/dev' into Weblate. 2020-03-04 10:09:59 +01:00
Isak Holmström
5c559e4cc6 Translated using Weblate (Swedish)
Currently translated at 86.8% (463 of 533 strings)
2020-03-04 10:09:59 +01:00
IQBAL AL FATAH
371280ff76 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:58 +01:00
Mohd. A
ebdf48899f Translated using Weblate (Arabic)
Currently translated at 98.3% (524 of 533 strings)
2020-03-04 10:09:58 +01:00
Sylke Vicious
6962882e75 Translated using Weblate (Italian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:57 +01:00
AioiLight
e1fb8831de Translated using Weblate (Japanese)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:57 +01:00
IQBAL AL FATAH
e421d47b23 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:51 +01:00
Dani Pragustia
9b65b000db Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:50 +01:00
Stypox
d5c29bf1b5 Merge pull request #3160 from XiangRongLin/b3127
Hide 5, 15, 25 second seek options if inexact seek is enabled
2020-03-03 21:58:18 +01:00
Stypox
4bb6a146e8 Update app/src/main/res/values/strings.xml 2020-03-03 21:51:46 +01:00
XiangRongLin
f7ef7a18ac Update app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java
Co-Authored-By: Stypox <stypox@pm.me>
2020-03-03 21:41:15 +01:00
Stypox
0a87f13ceb Merge pull request #3107 from comradekingu/patch-11
Spelling: Some devices are incompatible
2020-03-03 21:08:30 +01:00
Xiang Rong Lin
efb67b0fd4 Change toast string resource to be useable with different languages 2020-03-03 19:50:50 +01:00
Xiang Rong Lin
e3fff4356a Show a toast when seek duration was rounded up 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
7d3b21582c Use DateUtils constant for 1000 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
6a42714326 Round seek duration up instead of setting it to 10 seconds 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
288a61895c Update inexact seek summary 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
4463804338 Update seek options on inexact seek option change.
Reset to 10 seconds when previous value is not valid anymore
2020-03-03 19:40:10 +01:00
Xiang Rong Lin
57504acd00 If inexact seekt is used, hide 5,15,25 seconds seek duration options when opening settings 2020-03-03 19:40:10 +01:00
Poolitzer
3f118a7239 appending dots
Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-02 21:08:34 -08:00
Poolitzer
d265382ddf missed this
because GitHub thought its funny to hide it for a reason.

Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-02 20:56:03 -08:00
poolitzer
08dffad160 opus4improvements 2020-03-02 20:52:50 -08:00
poolitzer
afebd9b724 improvements 2020-03-02 16:38:23 -08:00
karol
840bb29c54 icon color change in action bar 2020-03-03 00:01:19 +01:00
karol
c79f09c119 mute button in actionbar, no color change 2020-03-02 22:52:58 +01:00
bopol
124340175a remove redundant code 2020-03-02 22:50:52 +01:00
bopol
07d1faf544 Links support for mediaccc and shortened invidious 2020-03-02 22:50:33 +01:00
karol
92ee51b8db resolved issues 2020-03-02 21:12:02 +01:00
Stypox
92f4010e8e Add more checks to prevent build failures in gradle branch suffix
- Add function `getGitWorkingBranch` that returns the current working branch, and "" if it could not be determined (either because git is not installed or because the directory is not a git repo).
- Make sure normalizedWorkingBranch is not empty (leading to an invalid app id terminating with `.`)
- Make normalizedWorkingBranch lowercase
- Add comments
2020-03-02 20:50:35 +01:00
Dani Pragustia
667a52427e Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-02 18:59:04 +01:00
KOK ASiiK
e7063b2c69 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-02 18:59:04 +01:00
wb9688
add08ead14 Accept music.youtube.com in manifest 2020-03-02 17:58:48 +01:00
poolitzer
5d7eba30a6 Merge remote-tracking branch 'upstream/dev' into templates 2020-03-01 12:36:32 -08:00
Hosted Weblate
7e2bec85ee Merge branch 'origin/dev' into Weblate. 2020-03-01 20:58:25 +01:00
B0pol
ca2e9d4afa Translated using Weblate (French)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:21 +01:00
Igor Nedoboy
deafe93e6c Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:20 +01:00
B0pol
5257c5a0a8 Translated using Weblate (Esperanto)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:19 +01:00
karol
a6fcb70d12 fix typo 2020-03-01 16:42:46 +01:00
TobiGr
4674431829 Release 0.18.6 (860) 2020-03-01 15:43:12 +01:00
TobiGr
2b9c7fee20 Update extractor version 2020-03-01 15:37:47 +01:00
karol
ee75909c80 set mute button in main player from other player 2020-03-01 13:02:20 +01:00
TobiGr
fbab80145e Merge remote-tracking branch 'Weblate/dev' into dev 2020-02-29 21:50:45 +01:00
Éfrit
95d8b12065 Translated using Weblate (French)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 18:51:26 +01:00
Hosted Weblate
9f8b7a180f Merge branch 'origin/dev' into Weblate. 2020-02-29 17:04:56 +01:00
Allan Nordhøy
7f62f56661 Translated using Weblate (Norwegian Bokmål)
Currently translated at 91.9% (490 of 533 strings)
2020-02-29 17:04:56 +01:00
Xiang Xu
28ecf98fa6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:55 +01:00
Jeff Huang
68f55e6639 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:55 +01:00
Isak Holmström
83e7af4503 Translated using Weblate (Swedish)
Currently translated at 81.4% (434 of 533 strings)
2020-02-29 17:04:55 +01:00
Éfrit
fbfaa8d25f Translated using Weblate (French)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:54 +01:00
Erik Peeremand
b46d199086 Translated using Weblate (Dutch)
Currently translated at 82.1% (438 of 533 strings)
2020-02-29 17:04:54 +01:00
pjammo
64c6aac0cf Translated using Weblate (Italian)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:54 +01:00
WaldiS
f3c64edf6e Translated using Weblate (Polish)
Currently translated at 99.8% (532 of 533 strings)
2020-02-29 17:04:52 +01:00
Vojtěch Šamla
61673cda70 Translated using Weblate (Czech)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:52 +01:00
Enol P
d71e6b18c0 Translated using Weblate (Asturian)
Currently translated at 50.8% (271 of 533 strings)
2020-02-29 17:04:52 +01:00
Nicu Borta
19fe47f71e Translated using Weblate (Romanian)
Currently translated at 74.1% (395 of 533 strings)
2020-02-29 17:04:50 +01:00
Gontzal Manuel Pujana Onaindia
720bcbf8ac Translated using Weblate (Basque)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:49 +01:00
nautilusx
bb3b7d68c1 Translated using Weblate (German)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:47 +01:00
Eduardo Caron
eb4b6d2a7f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:46 +01:00
Daniele Lira Mereb
abc3e8d59c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:45 +01:00
Oğuz Ersen
9f05f360f9 Translated using Weblate (Turkish)
Currently translated at 100.0% (533 of 533 strings)
2020-02-29 17:04:44 +01:00
Lucas Thuries
9b2dc1b263 Translated using Weblate (French)
Currently translated at 99.8% (532 of 533 strings)
2020-02-29 17:04:41 +01:00
Alexandre Hô
50777d8d2c Translated using Weblate (French)
Currently translated at 99.8% (532 of 533 strings)
2020-02-29 17:04:41 +01:00
Florian
63e85fe4be Translated using Weblate (French)
Currently translated at 99.8% (532 of 533 strings)
2020-02-29 17:04:40 +01:00
poolitzer
e2cb927e1f Merge branch 'templates' of https://github.com/Poolitzer/NewPipe into templates 2020-02-28 15:32:20 -08:00
poolitzer
46165f4a4f adding version section to bug report 2020-02-28 15:32:14 -08:00
Tobias Groza
b1eaf5616a Merge pull request #3154 from B0pol/round
Round at one place for Localization.shortCount()
2020-02-29 00:08:20 +01:00
bopol
22aa6d16a2 public Utils.round() moved to private Localization.round() 2020-02-28 17:04:25 +01:00
bopol
dfaa5675b6 Round at one place for Localization.shortCount() 2020-02-28 17:04:25 +01:00
karol
0400fcb106 mute icon in main refactored 2020-02-27 23:30:17 +01:00
karol
40f54aea53 mute intent send between main-bckgrnd-popup players 2020-02-27 22:30:18 +01:00
Poolitzer
d9a8e4d797 NewPipe is an app though :(
And its our app!

Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-02-26 19:50:11 -08:00
Tobias Groza
ab4e1819c1 Merge pull request #2967 from moneytoo/cutout
Support display cutout
2020-02-26 20:05:57 +01:00
Marcel Dopita
91aa65e717 Support display cutout
Fixes #2682
2020-02-26 17:47:22 +01:00
TobiGr
ec684434dc Merge branch 'master' into dev 2020-02-26 17:46:59 +01:00
TobiGr
3b5b9d7dab Release 0.18.5 (850) and update extractor version
Update User-Agent
2020-02-25 23:38:51 +01:00
TobiGr
e7082baaff Exception is ignored in SearchFragment 2020-02-25 23:12:12 +01:00
poolitzer
1d9ffffc49 Minor improvements 2020-02-24 14:18:48 -08:00
poolitzer
01c1fa0393 B0pol suggested improvements 2020-02-23 16:16:18 -08:00
karol
c4d5886059 icon change implemented in queque 2020-02-23 23:44:16 +01:00
karol
2a63f2a3a6 mute-buton in queue layout and logic, but no icon change 2020-02-23 23:31:30 +01:00
karol
cc559dc9ce isMuted() added 2020-02-23 22:55:34 +01:00
karol
4415888324 mute-button implementation in main player 2020-02-23 22:32:23 +01:00
karol
dc6a0e3eec mute-button added to activity_main_player.xml's 2020-02-23 21:28:40 +01:00
Stypox
3434ff4d45 Merge branch 'gradle-app-id-suffix' of github.com:Stypox/NewPipe into gradle-app-id-suffix 2020-02-23 20:57:50 +01:00
Stypox
030e5ab894 Add comment to gradle 2020-02-23 20:56:56 +01:00
Hosted Weblate
1caafac89a Merge branch 'origin/dev' into Weblate. 2020-02-23 20:37:42 +01:00
chr56
26e2fc6d91 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 20:37:39 +01:00
JoC
740fa67a4e Translated using Weblate (Spanish)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 20:37:37 +01:00
ButterflyOfFire
d468423db3 Translated using Weblate (Arabic)
Currently translated at 97.1% (518 of 533 strings)
2020-02-23 20:37:36 +01:00
Yaron Shahrabani
84664ebcdc Translated using Weblate (Hebrew)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 20:37:34 +01:00
Stypox
d46cd265f5 Merge branch 'dev' into gradle-app-id-suffix 2020-02-23 10:04:19 +01:00
Stypox
a3bce7f7ca Change app id based on current git branch
This enables to install multiple builds from different branches at once
2020-02-23 09:46:42 +01:00
Poolitzer
30f66d012e Update PULL_REQUEST_TEMPLATE.md 2020-02-22 20:16:14 -08:00
poolitzer
495b495f27 deleting old template 2020-02-22 20:03:38 -08:00
poolitzer
e8f28ebc43 Merge branch 'templates' of https://github.com/Poolitzer/NewPipe into templates 2020-02-22 20:02:11 -08:00
Poolitzer
01dcf550cf Update issue templates 2020-02-22 19:56:56 -08:00
Tobias Groza
987078fab5 Merge pull request #3043 from Stypox/unhook-save-restore
Save and restore whether pitch and tempo are unhooked or not
2020-02-23 00:36:10 +01:00
Tobias Groza
7da28f28e5 Merge branch 'dev' into unhook-save-restore 2020-02-23 00:19:44 +01:00
Hosted Weblate
3c9af84ea2 Merge branch 'origin/dev' into Weblate. 2020-02-23 00:10:49 +01:00
chr56
286fd19ba2 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:49 +01:00
MohammedSR Vevo
39dce71c28 Translated using Weblate (Kurdish)
Currently translated at 99.8% (532 of 533 strings)
2020-02-23 00:10:49 +01:00
zmni
b3b1d6d706 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:48 +01:00
Yaron Shahrabani
c04040468e Translated using Weblate (Hebrew)
Currently translated at 99.4% (530 of 533 strings)
2020-02-23 00:10:48 +01:00
Vojtěch Šamla
aee7777478 Translated using Weblate (Czech)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:48 +01:00
Igor Nedoboy
09c1e21560 Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:47 +01:00
nautilusx
60e9f56b0f Translated using Weblate (German)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:47 +01:00
Oğuz Ersen
302e4ab664 Translated using Weblate (Turkish)
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:46 +01:00
chr56
484c3aa320 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (533 of 533 strings)
2020-02-23 00:10:41 +01:00
TobiGr
0bc769b971 Fix regression: Unable to find explicit activity class
See https://github.com/TeamNewPipe/NewPipe/issues/3114#issuecomment-589940878 for info on this crash.
This reverts ef90493c27 partly.
2020-02-22 20:43:38 +01:00
TobiGr
5b98d41637 Merge branch 'dev' 2020-02-22 14:09:26 +01:00
Tobias Groza
e14b7851b1 Merge pull request #3128 from Stypox/drawer-fix
Reintroduce "Settings" button in app bar
2020-02-22 14:08:37 +01:00
Hosted Weblate
13d2334a45 Merge branch 'origin/dev' into Weblate. 2020-02-22 12:07:27 +01:00
Jeff Huang
9864e04aae Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (532 of 532 strings)
2020-02-22 12:07:26 +01:00
B0pol
4d6bbbf004 Translated using Weblate (French)
Currently translated at 97.9% (521 of 532 strings)
2020-02-22 12:07:26 +01:00
C. Rüdinger
44305b4ccd Translated using Weblate (German)
Currently translated at 99.4% (529 of 532 strings)
2020-02-22 12:07:23 +01:00
Igor Nedoboy
7f86b13d93 Translated using Weblate (Russian)
Currently translated at 100.0% (532 of 532 strings)
2020-02-22 12:07:19 +01:00
Stypox
d65b8d7d18 Address @mauriciocolli suggestions in #2960
Simplify code to enable history button
2020-02-22 11:34:08 +01:00
Stypox
6968dd266a Remove empty about menu 2020-02-22 11:30:57 +01:00
Stypox
8754cbb38f Remove Settings button from download activity 2020-02-22 11:12:22 +01:00
Stypox
c7b4705538 Implement Settings buttons 2020-02-22 10:36:10 +01:00
Stypox
065faf31b6 Add settings button back in dot menu 2020-02-22 10:23:01 +01:00
Stypox
da4b27f606 Merge branch 'dev' of github.com:TeamNewPipe/NewPipe into dev 2020-02-22 10:01:11 +01:00
Tobias Groza
e1cc84ab5f Merge pull request #3113 from TeamNewPipe/dev
Release v0.18.4
2020-02-22 00:44:21 +01:00
TobiGr
533aede80f Update bump version to 0.18.4 (840) 2020-02-22 00:37:46 +01:00
TobiGr
e84d5311f9 Update extractor version to latest release 2020-02-22 00:37:46 +01:00
TobiGr
476b3f804b Add changelog 2020-02-22 00:37:46 +01:00
TobiGr
9445e8e8a0 Remove 'duration_live_button' string from translations 2020-02-22 00:37:46 +01:00
TobiGr
e539753279 Clean translations 2020-02-21 21:59:36 +01:00
TobiGr
f5f81be6fe Merge remote-tracking branch 'Weblate/dev' into dev 2020-02-21 21:31:17 +01:00
Tobias Groza
3b8a55f0d3 Merge pull request #3098 from B0pol/localisation
Multiple localization fixes
2020-02-21 21:29:03 +01:00
Stypox
b1dd6cbb6e Merge branch 'B0pol-localisation' into dev 2020-02-21 20:31:52 +01:00
Hosted Weblate
431724f637 Merge branch 'origin/dev' into Weblate. 2020-02-21 16:58:08 +01:00
Brikkho
6e5851aea8 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.5% (152 of 532 strings)
2020-02-21 16:58:08 +01:00
chr56
30e5e58178 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.0% (495 of 532 strings)
2020-02-21 16:58:07 +01:00
Jeff Huang
40207b515d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:58:07 +01:00
MohammedSR Vevo
95a6aaac76 Translated using Weblate (Kurdish)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:58:06 +01:00
zmni
da43f47487 Translated using Weblate (Indonesian)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:58:05 +01:00
WaldiS
ae5360fb27 Translated using Weblate (Polish)
Currently translated at 99.6% (530 of 532 strings)
2020-02-21 16:58:03 +01:00
Karol Kosek
47d2ae5c5e Translated using Weblate (Polish)
Currently translated at 99.6% (530 of 532 strings)
2020-02-21 16:58:03 +01:00
Yaron Shahrabani
e1101dd6f1 Translated using Weblate (Hebrew)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:58:01 +01:00
Oğuz Ersen
d460351da2 Translated using Weblate (Turkish)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:58:00 +01:00
zeritti
fd076f5a58 Translated using Weblate (Czech)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:57:57 +01:00
Vojtěch Šamla
f7d73fc21b Translated using Weblate (Czech)
Currently translated at 100.0% (532 of 532 strings)
2020-02-21 16:57:56 +01:00
Stypox
5680b7c477 Merge branch 'dev' into localisation 2020-02-21 14:34:40 +01:00
bopol
9f9b53c067 remove unecessary «few» and «many» for plural string in english 2020-02-20 18:55:22 +01:00
Tobias Groza
18d986a57d Merge pull request #3117 from kapodamy/fixup
fixup for #3081
2020-02-20 18:15:21 +01:00
kapodamy
61632b3d9d fixup for #3081
* dont write the "sbpg" box in video tracks
2020-02-20 13:20:20 -03:00
Hosted Weblate
f1688fb8b1 Merge branch 'origin/dev' into Weblate. 2020-02-20 00:07:22 +01:00
mk3z
f0e85b31aa Translated using Weblate (Finnish)
Currently translated at 64.8% (345 of 532 strings)
2020-02-20 00:07:19 +01:00
B0pol
316871714a Update app/.gitignore
Co-Authored-By: Stypox <stypox@pm.me>
2020-02-19 17:40:03 +01:00
Stypox
12c72842ff Merge pull request #3102 from vhsw/dev
Fix initial brightness value
2020-02-19 15:26:40 +01:00
Alexey Dubrov
4230e11c4d Merge branch 'dev' into dev 2020-02-19 15:05:42 +03:00
Tobias Groza
c76ff8d367 Merge pull request #3109 from spk/fix-androidx-nonnull
Migrate annotation to androidx on ReCaptchaActivity
2020-02-18 22:40:29 +01:00
Laurent Arnoud
831e9985e2 Migrate annotation to androidx on ReCaptchaActivity 2020-02-18 21:50:28 +01:00
bopol
9912ee8199 give info if content language is system on crash 2020-02-18 18:35:13 +01:00
Allan Nordhøy
91bd0be39e Spelling: Some devices are incompatible 2020-02-17 14:54:45 +01:00
bopol
55d17b556a added all the .iml files in gitignore, not only app.iml
if somehow your module name isn't app, it will create a module-name.iml file, and isn't needed
2020-02-17 10:18:20 +01:00
Alexey Dubrov
5495be749b Merge branch 'dev' into dev 2020-02-17 12:14:07 +03:00
bopol
54f71c623a use plural string for dynamic_seek_duration_description 2020-02-17 10:12:08 +01:00
Alexey Dubrov
e3a891688b Get brightness from settings if screenBrightness is set to auto 2020-02-17 12:11:00 +03:00
B0pol
09d36a5dbc Merge branch 'dev' into localisation 2020-02-17 09:27:03 +01:00
Tobias Groza
ff493406cf Merge pull request #2938 from comradekingu/patch-10
Spelling: Language reworked 2
2020-02-17 08:41:39 +01:00
Tobias Groza
fbcee61e04 Apply suggestions from code review
Co-Authored-By: Stypox <stypox@pm.me>
2020-02-16 22:41:56 +01:00
bopol
e62e34fd5c created default_localization_key 2020-02-16 22:41:32 +01:00
Stypox
3b57135a6e Merge branch 'dev' into patch-10 2020-02-16 21:58:44 +01:00
Alexey Dubrov
69934dee52 Merge branch 'dev' into dev 2020-02-16 16:11:56 +03:00
Alexey Dubrov
51f2efd48c Fix initial brightness value 2020-02-16 16:08:53 +03:00
B0pol
4de2cfdcc6 Added translation using Weblate (Chuvash) 2020-02-16 10:12:55 +01:00
Hosted Weblate
7845b7678d Merge branch 'origin/dev' into Weblate. 2020-02-16 05:21:17 +01:00
B0pol
6f9543b9cf Translated using Weblate (Esperanto)
Currently translated at 100.0% (532 of 532 strings)
2020-02-16 05:21:15 +01:00
bopol
5b541cc9fb resolve merge conflicts 2020-02-15 14:53:05 +01:00
B0pol
ea54520e0b Merge branch 'dev' into localisation 2020-02-15 14:14:33 +01:00
Tobias Groza
00b6bd517a Merge pull request #2865 from chr56/dev
Fix wrong lang code of Chinese,and clean up useless strings.xml
2020-02-15 13:31:56 +01:00
TobiGr
9fb5aa4b46 Merge remote-tracking branch 'Weblate/dev' into dev 2020-02-15 13:28:30 +01:00
bopol
f089cd027e Multiple localization fixes
With the extractor PR, fixes title & description shown in the wrong language.
Fixed views / spectators counts possibly in the wrong language
Fixed live spectators not showing full count on detail page
Fixed LIVE shown on players, it shows translated instead

Fixed Videos string in search / three dots not available in Weblate
(because it was videos, but there already was a plural string named videos, in Weblate)

Subscriber count is always giving the short count.
We can't get exact number since this YouTube update: https://support.google.com/youtube/thread/6543166
But only short count (B, M, k), so showing full number, eg for 1.9M: 1,900,000, is wrong because the number could be 1,923,490 or 1,897,789…

Added a « sytem default » option to content language and country language selector.
It's the one selected by default (not en-GB anymore then), and correspond to the
language of the system / country of the system
By system I mean phone, tablet, TV…

Fixed russian showing - before time ago (eg 19hrs ago)
This is a workaround fix, I opened an issue on prettytime library repo.

Fixed russian plurals:
other was used instead of many for videos and subscribers

Fixed seek_duration english only
2020-02-15 12:40:23 +01:00
chr56
5151c6cb54 fix wrong langcode of Chinesein settings_keys.xml 2020-02-15 18:39:41 +08:00
chr56
9407ac8c24 fix reCaptcha strings in zh-rCN 2020-02-15 13:07:34 +08:00
chr56
6a91a3a947 reapply changes after merging 2020-02-15 12:52:19 +08:00
chr56
ac0bcea371 Merge branch 'TeamNewPipe-dev' into dev 2020-02-15 12:46:44 +08:00
chr56
302a6ff4e8 Merge branch 'dev' of https://github.com/TeamNewPipe/NewPipe into TeamNewPipe-dev 2020-02-15 12:45:09 +08:00
B0pol
0d89667428 Translated using Weblate (French)
Currently translated at 100.0% (532 of 532 strings)
2020-02-15 01:57:32 +01:00
B0pol
dbb6848a9b Translated using Weblate (Esperanto)
Currently translated at 100.0% (532 of 532 strings)
2020-02-15 01:57:31 +01:00
TobiGr
a843e808d1 Merge branch 'master' into dev 2020-02-15 00:53:05 +01:00
Tobias Groza
67af05e504 Use "Report error" instead of "Report Error"
Co-Authored-By: Stypox <stypox@pm.me>
2020-02-14 19:12:59 +01:00
Milo Ivir
c995c6fda5 Translated using Weblate (Croatian)
Currently translated at 88.2% (469 of 532 strings)
2020-02-14 04:17:43 +01:00
Nogooduser
3b5cf0e37c Translated using Weblate (Portuguese)
Currently translated at 100.0% (532 of 532 strings)
2020-02-14 04:17:40 +01:00
Daniele Lira Mereb
c7a9847e66 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (532 of 532 strings)
2020-02-14 04:17:38 +01:00
burstw0w
3624f1b9a2 Translated using Weblate (Serbian)
Currently translated at 46.6% (248 of 532 strings)
2020-02-12 02:50:24 +01:00
Adolfo Jayme Barrientos
aecc908152 Translated using Weblate (Spanish)
Currently translated at 100.0% (532 of 532 strings)
2020-02-12 02:50:24 +01:00
Shafiq Jamzuri
9f9c6eff00 Translated using Weblate (Malay)
Currently translated at 84.2% (448 of 532 strings)
2020-02-12 02:50:23 +01:00
zeritti
99400fa570 Translated using Weblate (Czech)
Currently translated at 100.0% (532 of 532 strings)
2020-02-12 02:50:22 +01:00
vkhomenk
17d00837bd Translated using Weblate (Ukrainian)
Currently translated at 99.2% (528 of 532 strings)
2020-02-12 02:50:21 +01:00
Ali Demirtas
0882d9d66b Translated using Weblate (Turkish)
Currently translated at 100.0% (532 of 532 strings)
2020-02-12 02:50:19 +01:00
TobiGr
0df81409bf Update extractor and release 0.18.3 (830) 2020-02-10 22:32:10 +01:00
Allan Nordhøy
a75deb6ba2 Reverted changes 2020-02-09 16:29:51 +01:00
Stypox
4b8474b0ac Merge branch 'dev' into unhook-save-restore 2020-02-09 13:10:35 +01:00
Hosted Weblate
7478e96a15 Merge branch 'origin/dev' into Weblate. 2020-02-09 04:54:59 +01:00
pjammo
c1d9a253b0 Translated using Weblate (Italian)
Currently translated at 100.0% (532 of 532 strings)
2020-02-09 04:54:57 +01:00
AioiLight
eb7d9f76e5 Translated using Weblate (Japanese)
Currently translated at 100.0% (532 of 532 strings)
2020-02-09 04:54:56 +01:00
Tobias Groza
ec45d4a729 Merge pull request #2959 from kapodamy/m4a-stsc-stco
mp4 muxer fix
2020-02-09 00:27:57 +01:00
Tobias Groza
07544cd198 Merge pull request #3044 from B0pol/tubepeer
Description fix and some PeerTube fixes
2020-02-09 00:11:49 +01:00
bopol
3f3d1bfccf update extractor version 2020-02-09 00:00:14 +01:00
kapodamy
d3cb887ff0 Merge branch 'dev' into m4a-stsc-stco 2020-02-08 16:04:28 -03:00
B0pol
88c68315f6 Merge branch 'dev' into tubepeer 2020-02-08 10:54:05 +01:00
bopol
2d62fa401d real markdown support for descriptions
and update third-party licences in about page
2020-02-08 10:48:36 +01:00
TobiGr
3ff85c2ab7 Make report error title in snackbar uppercase again 2020-02-07 22:22:27 +01:00
Hosted Weblate
13f5d3b5ac Merge branch 'origin/dev' into Weblate. 2020-02-07 21:15:53 +01:00
Allan Nordhøy
9eb55e1be5 Translated using Weblate (Norwegian Bokmål)
Currently translated at 98.1% (522 of 532 strings)
2020-02-07 21:15:50 +01:00
Jeff Huang
6adbfade2b Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:50 +01:00
MohammedSR Vevo
7568616f8e Translated using Weblate (Kurdish)
Currently translated at 99.8% (531 of 532 strings)
2020-02-07 21:15:49 +01:00
B0pol
c93be13dfe Translated using Weblate (French)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:49 +01:00
JoC
e9dc96944b Translated using Weblate (Spanish)
Currently translated at 99.8% (531 of 532 strings)
2020-02-07 21:15:48 +01:00
zmni
06e536eb45 Translated using Weblate (Indonesian)
Currently translated at 99.6% (530 of 532 strings)
2020-02-07 21:15:48 +01:00
thami simo
72e90b4d57 Translated using Weblate (Arabic)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:47 +01:00
WaldiS
83d43f845f Translated using Weblate (Polish)
Currently translated at 99.8% (531 of 532 strings)
2020-02-07 21:15:47 +01:00
Yaron Shahrabani
5ed5a81708 Translated using Weblate (Hebrew)
Currently translated at 99.8% (531 of 532 strings)
2020-02-07 21:15:46 +01:00
Vojtěch Šamla
ce003d2683 Translated using Weblate (Czech)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:46 +01:00
Osoitz
75248d7a12 Translated using Weblate (Basque)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:45 +01:00
B0pol
06eff256f3 Translated using Weblate (Esperanto)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:44 +01:00
B0pol
a476f332f7 Translated using Weblate (German)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:43 +01:00
Oğuz Ersen
6d49148c32 Translated using Weblate (Turkish)
Currently translated at 100.0% (532 of 532 strings)
2020-02-07 21:15:43 +01:00
Allan Nordhøy
85acc53d40 Spelling: Video thumbnail shown 2020-02-07 18:06:09 +01:00
Allan Nordhøy
f319e3e75a Spelling: Treat the NewPipe makers to something you like 2020-02-07 18:01:45 +01:00
Allan Nordhøy
3abc660eb3 Spelling: Install the fresh NewPipe version. 2020-02-07 17:57:38 +01:00
Allan Nordhøy
4c13dda1f9 Spelling: Could not establish secure connection 2020-02-07 17:55:37 +01:00
Allan Nordhøy
294c35b2fb Spelling: the settings
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-02-07 17:51:14 +01:00
bopol
badaff8ebc refactor Description 2020-02-07 14:14:55 +01:00
bopol
7045f9711c fix thumbnail for PeerTube, and description changes
description:
- PeerTube: it's now full description (it cut at 250 characters before), and it displays ok (newlines are ok, but markdown isn't)
- MediaCCC: descriptions are now displayed well (newlines added)
- YouTube: timestamps in descriptions are clickable and work

more PeerTube fixes:
thumbnail is now high quality
age limit is now handled
upload date in «recently added» feed is good now (it was one hour delayed)
all fixes come from https://github.com/TeamNewPipe/NewPipeExtractor/pull/239, so it need to be merged before this PR
2020-02-06 22:42:09 +01:00
kapodamy
aaf5d7b89c Update DataReader.java
make rewind() method fully rewind the stream
2020-02-06 17:00:32 -03:00
Tobias Groza
487952f52e Merge pull request #3053 from harshlele/copy-comment-long-press
added ability to copy comments on long press
2020-02-06 20:35:30 +01:00
harshlele
34e31807fc removed empty line 2020-02-06 18:33:06 +05:30
harshlele
21184f8755 Update CommentsMiniInfoItemHolder.java
Co-Authored-By: yausername <5203007+yausername@users.noreply.github.com>
2020-02-05 14:48:39 +05:30
nautilusx
2bac66b5fe Translated using Weblate (German)
Currently translated at 99.8% (531 of 532 strings)
2020-02-05 01:01:07 +01:00
Igor Nedoboy
b5f069d080 Translated using Weblate (Russian)
Currently translated at 100.0% (532 of 532 strings)
2020-02-04 19:16:46 +01:00
Harshal Lele
bc393e6bcd removed settings entry 2020-02-04 18:01:39 +05:30
Harshal Lele
af411a61ae added ability to copy comments on long press 2020-02-04 16:40:57 +05:30
Hosted Weblate
2805850711 Merge branch 'origin/dev' into Weblate. 2020-02-03 21:20:50 +01:00
Jeff Huang
0f0a367174 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:48 +01:00
MohammedSR Vevo
7009dc574f Translated using Weblate (Kurdish)
Currently translated at 99.8% (529 of 530 strings)
2020-02-03 21:20:48 +01:00
Marian Hanzel
6941917c75 Translated using Weblate (Slovak)
Currently translated at 98.5% (522 of 530 strings)
2020-02-03 21:20:47 +01:00
Isak Holmström
9560cf59be Translated using Weblate (Swedish)
Currently translated at 87.9% (466 of 530 strings)
2020-02-03 21:20:35 +01:00
B0pol
0a2374892c Translated using Weblate (French)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:35 +01:00
JoC
5d5c2ae2ed Translated using Weblate (Spanish)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:34 +01:00
WaldiS
2cceb048e3 Translated using Weblate (Polish)
Currently translated at 99.8% (529 of 530 strings)
2020-02-03 21:20:33 +01:00
Yaron Shahrabani
ed9c85b25a Translated using Weblate (Hebrew)
Currently translated at 99.8% (529 of 530 strings)
2020-02-03 21:20:32 +01:00
Vojtěch Šamla
bb8bcf3c33 Translated using Weblate (Czech)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:31 +01:00
B0pol
b5684ee7df Translated using Weblate (Esperanto)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:30 +01:00
Oğuz Ersen
2c27f784f7 Translated using Weblate (Turkish)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:29 +01:00
Emin Tufan Çetin
46c1155c64 Translated using Weblate (Turkish)
Currently translated at 100.0% (530 of 530 strings)
2020-02-03 21:20:29 +01:00
Xiang Rong Lin
cf377c2591 Fix bug causing crashes when sharing a downloaded file. 2020-02-03 10:43:08 +01:00
Tobias Groza
471ce4a24b Merge pull request #3035 from Stypox/recaptcha
Fix ReCaptcha activity and correctly save obtained cookies
2020-02-02 22:16:21 +01:00
Stypox
b6841158df Remove unused imports and clean up comment style 2020-02-02 21:48:45 +01:00
Stypox
3372bacc62 Merge branch 'dev' into recaptcha 2020-02-02 21:36:15 +01:00
Stypox
6da9096176 Fix addYoutubeCookies functions (Yt changed things lately) 2020-02-02 21:33:07 +01:00
Stypox
244009a1cd Change "Unlink" to "Unhook" in unhook_checkbox string
"Unlink" is not an english word, and "Unhook" is used everywhere in the code
2020-02-02 15:54:31 +01:00
Stypox
0f22833ad5 Save and restore whether pitch and tempo are unhooked or not
Fixes #1536
2020-02-02 15:52:35 +01:00
Stypox
b589ee6c26 Merge pull request #2954 from XiangRongLin/1907renamePlaylist
Rename local playlist by long-clicking in BookmarkFragment.
2020-02-02 14:34:54 +01:00
Emin Tufan Çetin
9f0efdd544 Translated using Weblate (Turkish)
Currently translated at 100.0% (530 of 530 strings)
2020-02-02 13:43:18 +01:00
Oğuz Ersen
07c7398a96 Translated using Weblate (Turkish)
Currently translated at 100.0% (530 of 530 strings)
2020-02-02 13:43:18 +01:00
Xiang Rong Lin
a117e459b0 Use AlertDialog.Builder instead of BookmarkDialog class for the same look.
Use "rename" string instead of "save" string.
2020-02-02 12:54:43 +01:00
chr_56
7568af408a fix wrong strings in Simplified Chinese 2020-02-02 09:42:56 +08:00
kapodamy
d1801e1dbc Merge branch 'dev' into m4a-stsc-stco 2020-02-01 18:59:22 -03:00
Igor Nedoboy
38d193899c Translated using Weblate (Russian)
Currently translated at 100.0% (530 of 530 strings)
2020-02-01 20:18:24 +01:00
Stypox
f95d51b307 Merge branch 'dev' of github.com:TeamNewPipe/NewPipe into recaptcha 2020-02-01 18:27:00 +01:00
Stypox
1bf55c2139 Remove left-behind Log 2020-02-01 18:24:16 +01:00
Stypox
9b09028440 Try to extract cookies just before closing recaptcha activity
Even if the page didn't auto-close
2020-02-01 18:24:16 +01:00
Stypox
0cc890a1d1 Move "Done" button and make it theme conpliant in ReCaptcha 2020-02-01 18:24:16 +01:00
Stypox
fe138f6d61 Improve formatting 2020-02-01 18:24:16 +01:00
Stypox
4e1638f86e Remove space between "Done" button and ReCaptchaActivity title 2020-02-01 18:24:16 +01:00
Stypox
daa4fd5103 Fix ReCaptchaActivity crash and save cookies correctly 2020-02-01 18:24:16 +01:00
Stypox
a3d8848825 Add "Done" drawable (only white since it is used on toolbar) 2020-02-01 18:24:16 +01:00
Stypox
61d102dc75 Change recaptcha string names to match style 2020-02-01 18:24:16 +01:00
Markus Richter
c0519d8313 fixes #3021, see also https://github.com/TeamNewPipe/NewPipe-legacy/pull/21 2020-02-01 18:24:16 +01:00
Hosted Weblate
48a2d2d24b Merge branch 'origin/dev' into Weblate. 2020-02-01 17:48:01 +01:00
Isak Holmström
fb0d626cb2 Translated using Weblate (Swedish)
Currently translated at 88.2% (465 of 527 strings)
2020-02-01 17:47:58 +01:00
B0pol
766326ad8c Translated using Weblate (French)
Currently translated at 100.0% (527 of 527 strings)
2020-02-01 17:47:57 +01:00
C. Rüdinger
2a903f66dd Translated using Weblate (German)
Currently translated at 99.8% (526 of 527 strings)
2020-02-01 17:47:55 +01:00
Xiang Rong Lin
8712310ad9 Move more log statements into "if (DEBUG)" 2020-02-01 16:36:45 +01:00
XiangRongLin
e8c3ab87c4 Merge branch 'dev' into 1907renamePlaylist 2020-02-01 16:29:21 +01:00
Xiang Rong Lin
90c20f124b Move log statement into "if (DEBUG)" 2020-02-01 16:27:53 +01:00
chr56
cd225eb5fe Merge branch 'dev' into dev 2020-02-01 23:14:00 +08:00
Tobias Groza
14e852237f Merge pull request #2921 from B0pol/dev
Add language selector to change the app language
2020-02-01 15:47:13 +01:00
TobiGr
d36ac7a5de Improve formatting 2020-02-01 15:35:33 +01:00
bopol
55a138e8da fix toast on app language change
I forgot to change the key here when I renamed it
2020-02-01 15:30:51 +01:00
bopol
c5e6bb58bc Merge remote-tracking branch 'upstream/dev' into dev
merging dev
2020-02-01 15:11:01 +01:00
TobiGr
2642d6f5f0 Merge remote-tracking branch 'Weblate/dev' into dev 2020-02-01 14:32:21 +01:00
Tobias Groza
bcb3cb9125 Merge pull request #3004 from harshlele/ask-overlay-perm-settings
ask for display over other apps permission in settings
2020-02-01 14:28:02 +01:00
TobiGr
f7203d4ac9 Fix formatting and use lamda functions 2020-02-01 13:41:03 +01:00
bopol
6be23a0a6f fix wrong language shown many popup dialogs
Changed android.R.string.ok, which is "OK", into R.string.finish, which is also OK, but from our strings
Then for a small amount of languages that don't have Android translation, it will show the good string.
2020-02-01 09:44:49 +01:00
nautilusx
089a9f1a9c Translated using Weblate (German)
Currently translated at 100.0% (527 of 527 strings)
2020-01-31 18:06:46 +01:00
Abu Sarim Hindi
2977de1df2 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-30 22:00:38 +01:00
Hosted Weblate
eab3f8b3ff Merge branch 'origin/dev' into Weblate. 2020-01-29 22:50:16 +01:00
Abu Sarim Hindi
d686a2c9dc Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-29 22:50:13 +01:00
Gergely Szarka
d34e5f78a9 Translated using Weblate (Hungarian)
Currently translated at 67.4% (355 of 527 strings)
2020-01-29 22:50:11 +01:00
bopol
edc9d47da7 app language: refactoring
renamed NewPipe's language into App language, and same for all the
concerning thing (keys, comments…)

we now call assureCorrectAppLanguage(CONTEXT) in activities needing it
instead of changeAppLanguage(getAppLocale(CONTEXT), RESOURCES)
changeAppLanguage becomes private.
2020-01-29 21:21:00 +01:00
kapodamy
0c5608506e typo fixup 2020-01-29 16:06:40 -03:00
kapodamy
bda6139f42 Merge branch 'dev' into m4a-stsc-stco 2020-01-29 15:58:20 -03:00
kapodamy
1ae8ca1e21 Merge branch 'm4a-stsc-stco' of https://github.com/kapodamy/NewPipe into m4a-stsc-stco 2020-01-29 16:08:32 -03:00
kapodamy
342377e69a restore offset after writting lastest CTTS entries 2020-01-29 16:04:24 -03:00
Tobias Groza
0447e4e664 Merge pull request #3032 from mqus/fix_subtitles
Fixes #3021
2020-01-29 15:10:05 +01:00
Markus Richter
fd3d61c6a0 fixes #3021, see also https://github.com/TeamNewPipe/NewPipe-legacy/pull/21 2020-01-29 13:48:02 +01:00
chr56
69bf1c5d81 Merge branch 'dev' into dev 2020-01-29 12:14:21 +08:00
Abu Sarim Hindi
fbf6351b99 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-28 22:01:31 +01:00
Harshal Lele
a78762756a reformatted code 2020-01-28 20:54:24 +05:30
Harshal Lele
1f24c18614 reformatted and commented code 2020-01-28 20:14:35 +05:30
Igor Nedoboy
153790d80a Translated using Weblate (Russian)
Currently translated at 100.0% (527 of 527 strings)
2020-01-28 12:49:24 +01:00
Hosted Weblate
e98f27cb66 Merge branch 'origin/dev' into Weblate. 2020-01-28 04:20:51 +01:00
Abu Sarim Hindi
c17d80948c Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-28 04:20:45 +01:00
Ryan
c486368b9b Translated using Weblate (Korean)
Currently translated at 100.0% (527 of 527 strings)
2020-01-28 04:20:44 +01:00
Laura Arjona Reina
42bb96af23 Translated using Weblate (Spanish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-28 04:20:41 +01:00
Sithananthan
e082976914 Translated using Weblate (Tamil)
Currently translated at 43.3% (228 of 527 strings)
2020-01-28 04:20:41 +01:00
bopol
156a2eb4ff update prettytime dependency
see https://github.com/TeamNewPipe/NewPipe/pull/2921#issuecomment-572601812
It will add Esperanto, add bengali, update vietnamese
pretty time is the library used in the home page: … days ago
2020-01-27 19:32:40 +01:00
B0pol
e94981e6f7 Merge branch 'dev' into dev 2020-01-27 19:24:18 +01:00
Tobias Groza
be92921034 Merge pull request #2310 from christophehenry/add-kodi-share-player
Add send to Kodi button to player next to share button
2020-01-27 10:46:59 +01:00
Christophe
94403a9c3c Add send to Kodi button to player next to share button 2020-01-27 10:27:24 +01:00
XiangRongLin
b5ea61a079 Merge branch 'dev' into 1907renamePlaylist 2020-01-26 20:36:18 +01:00
Hosted Weblate
af9e2420a6 Merge branch 'origin/dev' into Weblate. 2020-01-26 20:21:35 +01:00
Ian Emmanuel M. Enanoria
14b3cf7ccd Translated using Weblate (Filipino)
Currently translated at 12.7% (67 of 527 strings)
2020-01-26 20:21:29 +01:00
AioiLight
9c58a07a72 Translated using Weblate (Japanese)
Currently translated at 99.8% (526 of 527 strings)
2020-01-26 20:21:28 +01:00
Tobias Groza
609855f774 Merge pull request #2917 from raphj/patch-1
Allow a BasePlayer to start paused
2020-01-26 17:39:39 +01:00
XiangRongLin
37409e7d90 Merge branch 'dev' into 1907renamePlaylist 2020-01-26 15:34:12 +01:00
Tobias Groza
cc83991d8d Merge pull request #2958 from kapodamy/android5-temp-dir-issue
fix #2889
2020-01-26 11:04:45 +01:00
Tobias Groza
bf5e94fc1a Merge pull request #2957 from kapodamy/subtitles
Rewrite ttml conversion
2020-01-26 11:03:13 +01:00
harshlele
52420d4bf1 Merge branch 'dev' into ask-overlay-perm-settings 2020-01-26 09:57:30 +05:30
Tobias Groza
7f7bf8474e Add link to FAQ in README 2020-01-25 21:35:07 +01:00
Harshal Lele
e1145f16f2 ask for display over other apps permission in settings 2020-01-25 22:30:49 +05:30
XiangRongLin
b430a23df1 Merge branch 'dev' into 1907renamePlaylist 2020-01-25 14:24:07 +01:00
Hosted Weblate
fa7173b3d5 Merge branch 'origin/dev' into Weblate. 2020-01-24 21:41:36 +01:00
Abu Sarim Hindi
b2d78786c2 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-24 21:41:31 +01:00
B0pol
489420e855 Merge branch 'dev' into dev 2020-01-24 20:19:51 +01:00
TobiGr
5bc0d2c31b Merge branch 'master' into dev 2020-01-24 19:20:26 +01:00
Allan Nordhøy
e9fda96aa1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 98.3% (518 of 527 strings)
2020-01-24 09:26:04 +01:00
Abu Sarim Hindi
64b0ccd574 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-24 09:26:04 +01:00
B0pol
d3aadc71b1 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-24 09:26:03 +01:00
B0pol
c21ccef7bc Translated using Weblate (Esperanto)
Currently translated at 100.0% (527 of 527 strings)
2020-01-24 09:26:03 +01:00
TobiGr
2152375227 Bump version to 0.18.2 [hotfix release] 2020-01-24 02:30:08 +01:00
TobiGr
10d57afaac Update extractor version 2020-01-24 02:29:21 +01:00
Abu Sarim Hindi
e224f8ca28 Translated using Weblate (Urdu)
Currently translated at 100.0% (527 of 527 strings)
2020-01-24 01:13:33 +01:00
Allan Nordhøy
1f975c0a3a Translated using Weblate (Norwegian Bokmål)
Currently translated at 98.1% (517 of 527 strings)
2020-01-23 00:33:15 +01:00
MohammedSR Vevo
ce075395a1 Translated using Weblate (Kurdish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-23 00:33:13 +01:00
chr56
167653ac60 fix wrong strings in values-zh-rCN. 2020-01-22 13:00:00 +08:00
chr56
ee0f94c232 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (527 of 527 strings)
2020-01-22 04:52:39 +01:00
Xiang Rong Lin
0ed3354cee Use custom dialog to edit and delete local playlists at once 2020-01-21 20:56:06 +01:00
kapodamy
b8f726153f Merge branch 'dev' into subtitles 2020-01-20 23:23:51 -03:00
kapodamy
afc362d2b6 readability changes 2020-01-20 23:33:30 -03:00
kapodamy
776d8a4406 Merge branch 'dev' into android5-temp-dir-issue 2020-01-20 23:23:44 -03:00
kapodamy
7718581882 Merge branch 'dev' into m4a-stsc-stco 2020-01-20 23:23:39 -03:00
Hosted Weblate
ba245c49da Merge branch 'origin/dev' into Weblate. 2020-01-19 20:41:20 +01:00
Allan Nordhøy
cf60033424 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.4% (508 of 527 strings)
2020-01-19 20:41:14 +01:00
B0pol
0e39071b5e Translated using Weblate (Urdu)
Currently translated at 94.3% (497 of 527 strings)
2020-01-19 20:41:14 +01:00
MohammedSR Vevo
b6028cef5b Translated using Weblate (Kurdish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:13 +01:00
Jeff Huang
62906fb84a Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:13 +01:00
Matsuri
4797cd9184 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (519 of 527 strings)
2020-01-19 20:41:12 +01:00
B0pol
366c55c8f4 Translated using Weblate (Polish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:12 +01:00
zmni
7e93456805 Translated using Weblate (Indonesian)
Currently translated at 99.8% (526 of 527 strings)
2020-01-19 20:41:12 +01:00
thami simo
de1a92539a Translated using Weblate (Arabic)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:11 +01:00
zeritti
84dd1a688e Translated using Weblate (Czech)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:10 +01:00
B0pol
36c4063db6 Translated using Weblate (Esperanto)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:08 +01:00
Osoitz
9c9a432ea0 Translated using Weblate (Basque)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:07 +01:00
ssantos
1c53b22239 Translated using Weblate (Portuguese)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:06 +01:00
pjammo
5dbab85505 Translated using Weblate (Italian)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:06 +01:00
Igor Nedoboy
2873f723e8 Translated using Weblate (Russian)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:04 +01:00
B0pol
6b7043fb9d Translated using Weblate (French)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:04 +01:00
B0pol
9d5612d104 Translated using Weblate (German)
Currently translated at 100.0% (527 of 527 strings)
2020-01-19 20:41:03 +01:00
B0pol
e58088d290 Merge branch 'dev' into dev 2020-01-19 18:09:17 +01:00
Xiang Rong Lin
77aa12dd81 Rename local playlist by long-clicking in BookmarkFragment.
After long clicking on a local playlist, show a dialog with 2 options for "rename" and "delete"
Rename shows another dialog to let the user rename the playlist.
Delete lets the user delete a playlist like before.
2020-01-19 14:39:40 +01:00
Stypox
8c3be2c9df Merge pull request #2960 from karkaminski/issue-#2254
Issue #2254
2020-01-19 12:55:55 +01:00
Stypox
266c3d03fc Merge branch 'dev' into issue-#2254 2020-01-19 12:50:08 +01:00
Tobias Groza
42ff60ce85 Merge pull request #2956 from TeamNewPipe/release_v0.18.1
Release v0.18.1
2020-01-19 09:54:05 +01:00
bopol
e08e724573 upload date in description now matches newpipe's language 2020-01-18 10:46:53 +01:00
bopol
b155f23d27 fix: wrong language shown in playback parameters dialog
This is a hardly reproduceable bug that I hopefully fixed. After a long time of watching videos, you could have your system language shown in playback parameters dialog.
Calling changeAppLanguage(getAppLocale(…),…) onCreate will most certainly fix this bug
2020-01-18 09:46:38 +01:00
kapodamy
a2d3e2c7e0 2 typo fixup
* add missing namespace of StandardCharsets
* use an unused constructor argument
2020-01-18 01:10:25 -03:00
kapodamy
ed18466c3b Merge branch 'dev' into subtitles 2020-01-18 00:35:48 -03:00
kapodamy
845767e2f8 StandardCharsets.UTF_8 instead of Charset.forName("utf-8") 2020-01-18 00:43:38 -03:00
kapodamy
a0548fdbf8 Merge branch 'dev' into android5-temp-dir-issue 2020-01-18 00:35:38 -03:00
kapodamy
b837912e75 Merge branch 'dev' into m4a-stsc-stco 2020-01-18 00:35:35 -03:00
B0pol
0cd9fb32a8 Merge branch 'dev' into dev 2020-01-18 00:26:04 +01:00
TobiGr
fd62411b35 Bump version to 0.18.1 and version code to 810 2020-01-18 00:09:40 +01:00
TobiGr
134850aa04 Add changelog for 0.18.1 2020-01-18 00:09:27 +01:00
TobiGr
0795135f2f Merge remote-tracking branch 'Weblate/dev' into dev 2020-01-18 00:01:55 +01:00
Tobias Groza
85eb1dc436 Merge pull request #2966 from B0pol/c_links_support
[YouTube] /c/ channel links support & update extractor version
2020-01-17 23:59:41 +01:00
B0pol
2f2b8784f9 update extractor version 2020-01-17 23:07:45 +01:00
bopol
181658e5a4 support for opening /c/ channel links 2020-01-17 22:59:51 +01:00
Raphaël Jakse
7dbb2b206c Simplify an if expression 2020-01-17 11:49:33 +01:00
Raphaël Jakse
ef90493c27 Deduplicate code switching to another player into a function 2020-01-17 11:49:20 +01:00
WaldiS
d949894511 Translated using Weblate (Polish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-17 10:02:16 +01:00
Raphaël Jakse
570dded8d6 Add field START_PAUSED to the Player Intent
This allows fixing spurious playback resume when minimizing to the background player.
2020-01-16 20:57:55 +01:00
Igor Nedoboy
235ead9222 Translated using Weblate (Russian)
Currently translated at 100.0% (527 of 527 strings)
2020-01-16 20:57:01 +01:00
nautilusx
3ee6788753 Translated using Weblate (German)
Currently translated at 100.0% (527 of 527 strings)
2020-01-16 14:15:09 +01:00
Deleted User
e3dfab5078 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.4% (508 of 527 strings)
2020-01-16 06:28:38 +01:00
Allan Nordhøy
5f232a059d Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.4% (508 of 527 strings)
2020-01-16 06:28:38 +01:00
Loís B
1b708d261d Translated using Weblate (Occitan)
Currently translated at 18.8% (99 of 527 strings)
2020-01-15 20:36:11 +01:00
Yaron Shahrabani
3341742f66 Translated using Weblate (Hebrew)
Currently translated at 100.0% (527 of 527 strings)
2020-01-15 20:36:11 +01:00
Oğuz Ersen
b731c79339 Translated using Weblate (Turkish)
Currently translated at 100.0% (527 of 527 strings)
2020-01-15 20:36:10 +01:00
Igor Nedoboy
29b12c2f84 Translated using Weblate (Russian)
Currently translated at 100.0% (527 of 527 strings)
2020-01-15 20:36:09 +01:00
chr56
ba53f6611c Translated using Weblate (Chinese (Simplified))
Currently translated at 97.3% (513 of 527 strings)
2020-01-15 10:10:31 +01:00
Hosted Weblate
6eeed50418 Merge branch 'origin/dev' into Weblate. 2020-01-15 09:42:51 +01:00
Loís B
8caf9f87a1 Translated using Weblate (Occitan)
Currently translated at 17.9% (94 of 525 strings)
2020-01-15 09:42:49 +01:00
B0pol
2e6089088b Translated using Weblate (Urdu)
Currently translated at 95.0% (499 of 525 strings)
2020-01-15 09:42:46 +01:00
Matsuri
40eaa166ae Translated using Weblate (Chinese (Simplified))
Currently translated at 97.3% (511 of 525 strings)
2020-01-15 09:42:45 +01:00
B0pol
41e2e5f951 Translated using Weblate (Esperanto)
Currently translated at 100.0% (525 of 525 strings)
2020-01-15 09:42:44 +01:00
B0pol
ac3938d529 Translated using Weblate (French)
Currently translated at 100.0% (525 of 525 strings)
2020-01-15 09:42:43 +01:00
DodoLeDev
515ec4d66d Translated using Weblate (French)
Currently translated at 100.0% (525 of 525 strings)
2020-01-15 09:42:43 +01:00
Nehemias Feliz
5adc27ea2b Translated using Weblate (Spanish)
Currently translated at 100.0% (525 of 525 strings)
2020-01-15 09:42:42 +01:00
C. Rüdinger
ab089a5f93 Translated using Weblate (German)
Currently translated at 100.0% (525 of 525 strings)
2020-01-15 09:42:41 +01:00
B0pol
9d8fcbbffe fix: wrong language shown when rotating screen in popup player 2020-01-15 08:33:57 +01:00
chr56
590722d929 manually update the Simplified Chinese lang file.
/values-b+zh+HANS+CN was updated.
Action: copy file in /values-b+zh+HANS+CN to /values-zh-rCN
2020-01-15 12:30:17 +08:00
karkaminski
a0ee1b1653 Merge branch 'dev' into issue-#2254 2020-01-14 22:23:32 +01:00
Karol Kaminski
b965f88eb2 removed main_menu.xml 2020-01-14 22:08:07 +01:00
Karol Kaminski
a228e702da menu-item History visibility accordingly to settings 2020-01-14 19:30:36 +01:00
bopol
105981b2eb made system translatable + renamed it to system's language 2020-01-14 19:11:46 +01:00
bopol
055365a449 added Occitan to the selector 2020-01-14 14:26:53 +01:00
bopol
f8a7aac40d fixed indonesian, see https://stackoverflow.com/questions/13291578/how-to-localize-an-android-app-in-indonesian-language 2020-01-14 14:15:42 +01:00
chr56
6712ea5e6f Merge branch 'dev' into dev 2020-01-14 21:00:40 +08:00
B0pol
382e69273e Merge branch 'dev' into dev 2020-01-14 11:11:45 +01:00
kapodamy
9b71828b97 implement sgpd and sbgp boxes in audio tracks 2020-01-14 01:08:46 -03:00
kapodamy
00eddcb237 android 5 (lollipop) fixup
this commit attempts to fix the pickAvailableTemporalDir() method in ROMS that not are CTS compliant.
2020-01-14 00:05:34 -03:00
kapodamy
49cc643dcc decrease the size of samples per chunk 2020-01-14 00:04:53 -03:00
kapodamy
42ec6f0810 ttml to srt conversion
rewrite SubtitleConverter (use JSoup library instead, remove unused methods)
2020-01-14 00:04:16 -03:00
TobiGr
9f47a274a8 Update extractor version
TeamNewPipe/NewPipeExtractor@bdbfa26835
2020-01-13 20:40:11 +01:00
TobiGr
1f8c0a9e5e Merge remote-tracking branch 'Weblate/dev' into dev 2020-01-13 20:33:24 +01:00
Tobias Groza
cef9ccd937 Merge pull request #2717 from kszczek/delete-finished-downloads
Add option to delete files when clearing finished downloads
2020-01-13 20:32:18 +01:00
Karol Kaminski
9d773d6e8a removed dot menu where its no longer needed 2020-01-13 20:28:32 +01:00
TobiGr
3d93ecd6ec Use Integer value directly for formatted string
a
2020-01-13 20:25:32 +01:00
Loís B
36e38e50e9 Translated using Weblate (Occitan)
Currently translated at 10.1% (53 of 525 strings)
2020-01-13 15:49:01 +01:00
Software In Interlingua
1a8be2bbf5 Translated using Weblate (Interlingua)
Currently translated at 11.4% (60 of 525 strings)
2020-01-13 15:48:59 +01:00
Allan Nordhøy
92b1fa5743 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.2% (505 of 525 strings)
2020-01-13 15:48:58 +01:00
MohammedSR Vevo
335e5c05db Translated using Weblate (Kurdish)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:58 +01:00
Yaron Shahrabani
bfead79c07 Translated using Weblate (Hebrew)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:57 +01:00
Jeff Huang
bd8014bcbd Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:57 +01:00
Matsuri
948d57d3d1 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.3% (511 of 525 strings)
2020-01-13 15:48:56 +01:00
Daniele Lira Mereb
31b830d6d0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:56 +01:00
WaldiS
2038df976c Translated using Weblate (Polish)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:54 +01:00
Oğuz Ersen
46cc215120 Translated using Weblate (Turkish)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:53 +01:00
zmni
3afce82aa7 Translated using Weblate (Indonesian)
Currently translated at 99.6% (523 of 525 strings)
2020-01-13 15:48:52 +01:00
B0pol
88e5be237e Translated using Weblate (Esperanto)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:51 +01:00
Petros Grammatikopoulos
7c4b9d8843 Translated using Weblate (Greek)
Currently translated at 97.7% (513 of 525 strings)
2020-01-13 15:48:50 +01:00
Osoitz
b83e1716fe Translated using Weblate (Basque)
Currently translated at 99.4% (522 of 525 strings)
2020-01-13 15:48:49 +01:00
ssantos
c3e41e2427 Translated using Weblate (Portuguese)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:49 +01:00
B0pol
3f67b3b73c Translated using Weblate (French)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:48 +01:00
nautilusx
78c9e4e1ad Translated using Weblate (German)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:48 +01:00
C. Rüdinger
69c090b5a1 Translated using Weblate (German)
Currently translated at 100.0% (525 of 525 strings)
2020-01-13 15:48:47 +01:00
Kamil Szczęk
2c8222fd55 Style corrected 2020-01-11 15:19:24 +01:00
Kamil Szczęk
d071891b2a Add a snackbar to allow user to undo file deletion 2020-01-11 15:09:01 +01:00
Kamil Szczęk
986acc5fc5 Reorder buttons in clear downloads dialog 2020-01-11 15:09:01 +01:00
Kamil Szczęk
e4295fb3fa Use a dialog option instead of a checkbox 2020-01-11 15:09:01 +01:00
Kamil Szczęk
cfad3fb5de Fix inconsistent style 2020-01-11 15:09:01 +01:00
Kamil Szczęk
b18236a27e Put call to forget finished downloads in an else statement to prevent potential bugs 2020-01-11 15:09:01 +01:00
Kamil Szczęk
f6bbc69cf9 Remove unnecessary import 2020-01-11 15:09:01 +01:00
Kamil Szczęk
707e4f7167 Add option to remove downloaded files when clearing finished downloads 2020-01-11 15:09:01 +01:00
bopol
11d06dc86d remove todo as it's already done 2020-01-10 16:03:24 +01:00
bopol
8f46432391 fixed some activities where the wrong languages would be set 2020-01-10 15:50:15 +01:00
TobiGr
99cdaec40e Translated using Weblate (German)
Currently translated at 99.0% (520 of 525 strings)
2020-01-09 17:23:02 +01:00
bopol
b32935a1b0 app language now changes time formatting (3hrs ago), was system language b4 2020-01-09 15:51:41 +01:00
bopol
ed9a3517c6 removed unused imports 2020-01-09 12:15:01 +01:00
B0pol
e0a39efa2b Merge branch 'dev' into dev 2020-01-09 10:07:22 +01:00
bopol
3ad0e313ca changed the way to change language, now is «NewPipe's language» selector 2020-01-09 09:40:05 +01:00
Allan Nordhøy
bca547ce44 \'Storage Access Framework\' 2020-01-09 04:38:47 +01:00
Allan Nordhøy
6bc697f926 Continue ending playback queue 2020-01-09 04:36:39 +01:00
Igor Nedoboy
bff5371e41 Translated using Weblate (Russian)
Currently translated at 100.0% (525 of 525 strings)
2020-01-09 02:51:05 +01:00
Allan Nordhøy
694013c9df Spelling: Language reworked 2 2020-01-08 21:55:17 +01:00
Hosted Weblate
a76398efd0 Merge branch 'origin/dev' into Weblate. 2020-01-08 20:51:08 +01:00
Allan Nordhøy
99bcd8d043 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.0% (501 of 522 strings)
2020-01-08 20:51:04 +01:00
Software In Interlingua
1602ecbaf9 Translated using Weblate (Interlingua)
Currently translated at 11.1% (58 of 522 strings)
2020-01-08 20:51:04 +01:00
Tobias Groza
7e17bdf369 Merge pull request #2935 from comradekingu/patch-9
Spelling: Could not, PeerTube, HTTPS, URL
2020-01-08 19:09:43 +01:00
Allan Nordhøy
d316bbad44 Select your favorite
Co-Authored-By: Stypox <stypox@pm.me>
2020-01-08 18:22:17 +01:00
Tobias Groza
72151c8c0c Merge pull request #2906 from kapodamy/opus-fixup
add opus file extension
2020-01-08 18:19:23 +01:00
Allan Nordhøy
e2e0a9bfa2 Spelling: Could not, PeerTube, HTTPS, URL 2020-01-08 17:51:35 +01:00
kapodamy
8d53b07167 fixup
* [DownloadDialog.java] use *.opus extension instead of *.webm (bad change from 844f80a5f1)
* [StreamItemAdapter.java] show "opus" in format label instead of "WebM Opus"
2020-01-08 12:42:34 -03:00
Tobias Groza
1df852171d Merge pull request #2837 from decarvalhobo/dev
Playlist thumbnail updates
2020-01-07 23:02:42 +01:00
TobiGr
399e2626fb Fix code style and improve imports 2020-01-07 22:48:35 +01:00
decarvalhobo
752a76eb44 Usage of drawable instead of remote image + refactor the append to an empty playlist by just updating the thumbnail before adding the item in it. 2020-01-07 22:33:45 +01:00
De Carvalho Marcio Antonio
8feee05eec remove comments 2020-01-07 22:33:45 +01:00
De Carvalho Marcio Antonio
e9a4caaf0b remove comments 2020-01-07 22:33:45 +01:00
decarvalhobo
8de367e03f fix issue: thumbnail update when element deleted + thumbnail update when element added and no thumbnail 2020-01-07 22:33:45 +01:00
TobiGr
dad88b83fb Fix Arabic translation 2020-01-07 22:33:30 +01:00
TobiGr
846f7f2f05 Merge remote-tracking branch 'Weblate/dev' into dev 2020-01-07 22:28:15 +01:00
pjammo
41e18ae694 Translated using Weblate (Italian)
Currently translated at 100.0% (522 of 522 strings)
2020-01-07 17:21:22 +01:00
Daniele Lira Mereb
deeac118a1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.3% (508 of 522 strings)
2020-01-07 17:21:21 +01:00
MohammedSR Vevo
594d77e713 Translated using Weblate (Kurdish)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:31 +01:00
JoC
2ea404659b Translated using Weblate (Spanish)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:28 +01:00
Software In Interlingua
e2ec95e6ff Translated using Weblate (Interlingua)
Currently translated at 10.9% (57 of 522 strings)
2020-01-06 00:21:28 +01:00
pietrasagh
db87df743d Translated using Weblate (Polish)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:27 +01:00
ssantos
23f9ffdab7 Translated using Weblate (Portuguese)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:26 +01:00
Enol P
28063c35c2 Translated using Weblate (Asturian)
Currently translated at 49.2% (257 of 522 strings)
2020-01-06 00:21:25 +01:00
Иван
21a39b06e7 Translated using Weblate (Ukrainian)
Currently translated at 98.1% (512 of 522 strings)
2020-01-06 00:21:23 +01:00
Osoitz
8fb29ae6c2 Translated using Weblate (Basque)
Currently translated at 99.8% (521 of 522 strings)
2020-01-06 00:21:22 +01:00
B0pol
21895caa3a Translated using Weblate (Esperanto)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:20 +01:00
THANOS SIOURDAKIS
f17b92512c Translated using Weblate (Greek)
Currently translated at 97.9% (511 of 522 strings)
2020-01-06 00:21:19 +01:00
ssantos
014682664d Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2020-01-06 00:21:18 +01:00
Tobias Groza
5bf1df9f14 Merge pull request #2690 from K1rakishou/(#1570)-lock-screen-video-thumbnail
Show video thumbnail on the lock screen
2020-01-05 10:36:38 +01:00
bopol
dea1e0dcb9 Update localizations settings
1) now, on « content language » change, it will also change the app language
2) added Esperanto to the list of language in content language
2020-01-04 21:38:27 +01:00
k1rakishou
eb5fb42da9 Couple more code review changes 2020-01-03 16:29:04 +03:00
k1rakishou
c46a0f7b2e Code-review changes 2020-01-03 13:00:53 +03:00
k1rakishou
835476870b Merge remote-tracking branch 'push_here/(#1570)-lock-screen-video-thumbnail' into (#1570)-lock-screen-video-thumbnail
# Conflicts:
#	app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java
#	app/src/main/java/org/schabi/newpipe/player/helper/MediaSessionManager.java
#	app/src/main/java/org/schabi/newpipe/util/BitmapUtils.java
#	app/src/main/res/xml/video_audio_settings.xml
2020-01-03 12:56:01 +03:00
TobiGr
718acb5059 Code improvements 2020-01-02 15:00:31 +01:00
TobiGr
1aa763e86c Enable lockscreen video thumbnail by default 2020-01-02 15:00:31 +01:00
k1rakishou
0395dc6e9e Add a setting for the lock screen thumbnail feature 2020-01-02 15:00:31 +01:00
k1rakishou
96de70b71e Rebase onto the latest dev, update appcompat dependencies to use androidx 2020-01-02 15:00:31 +01:00
k1rakishou
f44883e79f Show video thumbnail on the lock screen 2020-01-02 15:00:31 +01:00
Tobias Groza
c56fb8cec2 Merge pull request #2871 from atpamat/main-window-tabs
make main page tabs scrollable and hide when there is only a single tab
2020-01-02 13:22:01 +01:00
Paweł Matuszewski
3625a38a23 improve code consistency in ScrollableTabLayout 2020-01-02 13:02:14 +01:00
Paweł Matuszewski
1393d3ad7f fix ScrollableTabLayout content width calculation
fix bug where only minimum width requested by tab was counted even if actual content was wider
2020-01-02 13:02:14 +01:00
Paweł Matuszewski
b674cfec24 simplify ScrollableTabLayout tabs width checking 2020-01-02 13:02:14 +01:00
Paweł Matuszewski
f0f0c43b72 hide main page tab selector with single tab 2020-01-02 13:02:14 +01:00
Paweł Matuszewski
33caad4690 make main page tabs scrollable 2020-01-02 13:02:14 +01:00
Tobias Groza
0afc8005d0 Merge pull request #2771 from atpamat/background-player-notif-lag
Limit amount of notification thumbnail updates in background player
2020-01-01 23:01:11 +01:00
Yaron Shahrabani
f04d2e76fa Translated using Weblate (Hebrew)
Currently translated at 100.0% (522 of 522 strings)
2020-01-01 19:12:04 +01:00
Igor Nedoboy
8e1d7f162d Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2020-01-01 19:12:01 +01:00
Paweł Matuszewski
ee65e89230 limit amount of notification thumbnail updates
limits amount of calls to updateNotificationThumbnail in background player
2020-01-01 16:38:46 +01:00
Matsuri
a8e26238a8 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (515 of 522 strings)
2020-01-01 13:26:15 +01:00
MohammedSR Vevo
a3dc95bef1 Translated using Weblate (Kurdish)
Currently translated at 99.8% (521 of 522 strings)
2020-01-01 13:26:15 +01:00
Software In Interlingua
a29df9a2dd Translated using Weblate (Interlingua)
Currently translated at 9.4% (49 of 522 strings)
2020-01-01 13:26:14 +01:00
Yaron Shahrabani
cc17d268fc Translated using Weblate (Hebrew)
Currently translated at 100.0% (522 of 522 strings)
2020-01-01 13:26:11 +01:00
Ariel Shulman
22a9a06b87 Translated using Weblate (Hebrew)
Currently translated at 100.0% (522 of 522 strings)
2020-01-01 13:26:09 +01:00
chr56
d063d39dbc Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (515 of 522 strings)
2019-12-31 19:01:41 +01:00
Jeff Huang
87e29dbd84 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:40 +01:00
MohammedSR Vevo
2227a7a6bd Translated using Weblate (Kurdish)
Currently translated at 99.8% (521 of 522 strings)
2019-12-31 19:01:39 +01:00
ButterflyOfFire
867f633d16 Translated using Weblate (French)
Currently translated at 99.4% (519 of 522 strings)
2019-12-31 19:01:34 +01:00
ButterflyOfFire
b9de3c202a Translated using Weblate (Arabic)
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:33 +01:00
pjammo
56364c4a2c Translated using Weblate (Italian)
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:32 +01:00
WaldiS
b1fd2c007d Translated using Weblate (Polish)
Currently translated at 99.2% (518 of 522 strings)
2019-12-31 19:01:27 +01:00
Yaron Shahrabani
741a872c39 Translated using Weblate (Hebrew)
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:26 +01:00
Igor Nedoboy
e1e2add616 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:25 +01:00
C. Rüdinger
0c664e346a Translated using Weblate (German)
Currently translated at 99.2% (518 of 522 strings)
2019-12-31 19:01:25 +01:00
Oğuz Ersen
7ddb856ccd Translated using Weblate (Turkish)
Currently translated at 100.0% (522 of 522 strings)
2019-12-31 19:01:24 +01:00
Software In Interlingua
17c0b981d1 Added translation using Weblate (Interlingua) 2019-12-31 19:01:20 +01:00
Tobias Groza
7f0a9904ff Merge pull request #2913 from yausername/fixTranslatableUrl
made instance list url non translatable
2019-12-31 15:51:27 +01:00
yausername
2b4190d85d made instance list url non translatable 2019-12-31 20:10:51 +05:30
Tobias Groza
57e89babf1 Merge pull request #2879 from Louis-Berlic/dev
Add support for Occitan language
2019-12-31 11:02:14 +01:00
Tobias Groza
209dc5ace9 Merge pull request #2912 from mauriciocolli/fix-wrong-thread-access
Fix for player access out of its creation thread
2019-12-31 10:55:12 +01:00
chr56
ab7f3c7399 Merge branch 'dev' into dev 2019-12-31 17:29:46 +08:00
Mauricio Colli
1e7e8d4121 Fix for player access out of its creation thread 2019-12-31 02:52:16 -03:00
Tobias Groza
04b75ef05f Merge pull request #2636 from dotvirus/longpress-on-custom-playlists
Add local playlist to queue when long clicking on 'Background/Popup'
2019-12-31 01:50:52 +01:00
dotvirus
de19421de1 Update LocalPlaylistFragment.java 2019-12-31 01:42:41 +01:00
Tobias Groza
61f64a7349 Merge pull request #2875 from Nico-late/Issue#2838
Fixed issues #2838 #2797 #2773
2019-12-31 01:23:24 +01:00
Nico-late
6fb16bad85 Update app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java
Space added for more clarity

Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2019-12-31 00:52:01 +01:00
Nico-late
694813ac90 Fixed issue #2838 2019-12-31 00:52:01 +01:00
C. Rüdinger
6f3fd50ed8 Translated using Weblate (German)
Currently translated at 99.2% (518 of 522 strings)
2019-12-30 14:06:08 +01:00
TobiGr
c1e1c191d0 Translated using Weblate (German)
Currently translated at 99.2% (518 of 522 strings)
2019-12-30 14:06:08 +01:00
Igor Nedoboy
f4c8fdaf07 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2019-12-29 23:20:25 +01:00
MohammedSR Vevo
457ebe3aa2 Translated using Weblate (Kurdish)
Currently translated at 78.5% (410 of 522 strings)
2019-12-29 22:55:19 +01:00
MohammedSR Vevo
8da8ce0a0a Translated using Weblate (Kurdish)
Currently translated at 70.9% (360 of 508 strings)
2019-12-29 13:59:23 +01:00
Igor Nedoboy
cc869b98a3 Translated using Weblate (Russian)
Currently translated at 100.0% (508 of 508 strings)
2019-12-29 13:59:01 +01:00
winqooq
f9e7873e54 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (508 of 508 strings)
2019-12-27 17:26:55 +01:00
Hosted Weblate
c4cba8aa37 Merge branch 'origin/dev' into Weblate. 2019-12-27 09:21:15 +01:00
Jaewoi
22e4ef4034 Translated using Weblate (Korean)
Currently translated at 98.6% (501 of 508 strings)
2019-12-27 09:21:12 +01:00
thami simo
708cdc4c62 Translated using Weblate (Arabic)
Currently translated at 100.0% (522 of 522 strings)
2019-12-24 08:21:11 +01:00
Hosted Weblate
94931df60b Merge branch 'origin/dev' into Weblate. 2019-12-22 23:21:13 +01:00
Éfrit
b3605fe6d4 Translated using Weblate (French)
Currently translated at 100.0% (508 of 508 strings)
2019-12-22 23:21:11 +01:00
justanidea
11e0ed7c4f Translated using Weblate (French)
Currently translated at 100.0% (508 of 508 strings)
2019-12-22 23:21:11 +01:00
WaldiS
34e89448b1 Translated using Weblate (Polish)
Currently translated at 100.0% (508 of 508 strings)
2019-12-22 23:21:09 +01:00
TobiGr
9a6e936996 Add SoundCloud audio stream extraction fix to changelog 2019-12-22 00:59:39 +01:00
TobiGr
5ed58b8609 Update extractor to fix SoundCloud audio stream extraction 2019-12-22 00:50:16 +01:00
Tobias Groza
0d7d610127 Merge pull request #2862 from TeamNewPipe/release_0.18.0
Release 0.18.0
2019-12-21 19:47:54 +01:00
chr56
9f789167da Merge branch 'dev' into dev 2019-12-21 17:31:50 +08:00
TobiGr
92a42235a1 Add changelog 2019-12-21 01:14:11 +01:00
TobiGr
3f52938f08 Bump version to 0.18.0 and version code to 800 2019-12-21 01:14:11 +01:00
Louis-Berlic
a08cd4ce6a Move to values-oc 2019-12-19 16:11:17 +01:00
Louis-Berlic
46b12ed819 Added initial strings.xml for Occitan language 2019-12-19 16:10:09 +01:00
TobiGr
e7ef193da6 Merge remote-tracking branch 'Weblate/dev' into dev 2019-12-18 23:12:31 +01:00
WaldiS
2ebe5aa878 Translated using Weblate (Polish)
Currently translated at 100.0% (508 of 508 strings)
2019-12-18 14:21:09 +01:00
Adolfo Jayme Barrientos
f58f6639f8 Translated using Weblate (Spanish)
Currently translated at 99.8% (507 of 508 strings)
2019-12-17 08:31:15 +01:00
Tobias Groza
f995ba115c Merge pull request #2868 from yausername/fix-add-instance-dialog
fix add instance dialog
2019-12-15 11:01:13 +01:00
Tobias Groza
755dff343d Merge pull request #2792 from mqus/dev
Enabling TLS1.1/1.2 on Android 4.4 devices (API 19/KitKat)
2019-12-15 00:17:37 +01:00
yausername
c8c7d23971 fix add instance dialog 2019-12-15 01:30:47 +05:30
chr_56
9309159c38 copy file in /values-b+zh+HANS+CN to /values-zh-rCN ,in order to manually update the lang file. 2019-12-14 21:25:19 +08:00
chr_56
8e45296826 remove values-cmn/strings.xml (useless) 2019-12-14 21:16:40 +08:00
Markus
559bcfc6a5 Remove commented-out code and hide stacktraces in release mode 2019-12-13 21:46:19 +01:00
Markus
23c2f748d6 Add trying out some more cipher suites which may be supported on non-standard Android 4.4.2 devices 2019-12-13 21:46:12 +01:00
Markus
3e409b9cc1 Fix formatting and remove unused code 2019-12-13 21:43:03 +01:00
Markus Richter
c0453065e4 Enable TLS v1.1/1.2 for KitKat devices
This enables modern TLS versions in the collection browser, the Downloader and the Player.
This is neccessary because media.ccc.de rejects all older TLS connection attempts, see issue #2777.
2019-12-13 21:42:58 +01:00
Tobias Groza
88a6e5981f Merge pull request #2744 from XiangRongLin/seek
Adjustable seek duration
2019-12-13 08:47:02 +01:00
Xiang Rong Lin
8970a663ec Rename "seek_duration_default_key" and use it in BasePlayer 2019-12-13 07:14:17 +01:00
Xiang Rong Lin
334437137e Remove local variable for seek duration 2019-12-13 07:14:17 +01:00
Xiang Rong Lin
949c01b37f Extract getting of seek duration into a function 2019-12-13 07:14:17 +01:00
Xiang Rong Lin
17146c2c13 Rename adjustable seek duration setting
Change from "Seek duration" to "Fast-forward/-rewind seek duration"
2019-12-13 07:14:17 +01:00
Xiang Rong Lin
dcd35b038e Adjust BasePlayer to use seek duration of preferences.
Changes behaviour when double-tapping in video and clicking fast forward/rewind in background mode.
2019-12-13 07:14:17 +01:00
Xiang Rong Lin
550364906d Add new preference for seek duration.
Add new ListPreference under settings/ video & audio for the duration of a seek.
With options for 5, 10, 15, 20, 25, 30 seconds.
2019-12-13 07:14:17 +01:00
Tobias Groza
fa8483bbb6 Merge pull request #2860 from spk/fix-cannot-resolv-symbol
Migrate annotation to androidx
2019-12-12 21:44:49 +01:00
TobiGr
b976e40439 Delete view_history_deleted translation 2019-12-12 21:32:38 +01:00
TobiGr
6fcae39fe2 Delete toggle_leak_canary translation 2019-12-12 21:32:03 +01:00
Laurent Arnoud
ec1de9824a Migrate annotation to androidx
release build is failing without this on android studio 3.5.3
2019-12-12 21:31:23 +01:00
TobiGr
8f83c210ad Delete overwrite_warning translations 2019-12-12 21:31:19 +01:00
TobiGr
d68009ff7e Delete msg_pending_downloads translations 2019-12-12 21:30:19 +01:00
TobiGr
bac2045111 Delete error_http_requested_range_not_satisfiable translations 2019-12-12 21:29:37 +01:00
TobiGr
bbf3c37978 Delete direct_on_background translations 2019-12-12 21:29:22 +01:00
TobiGr
901c63d1f2 Rename default_kiosk_page_sumatry to default_kiosk_page_summary
Remove duplicates
2019-12-12 21:25:31 +01:00
TobiGr
13306b5c1b Merge remote-tracking branch 'Weblate/dev' into dev 2019-12-12 20:58:22 +01:00
TobiGr
b883ad1657 Update extractor to TeamNewPipe/NewPipeExtractor@8cb3250
Fix soundcloud client id extraction
Improve handling of missing uploader in playlist
2019-12-12 18:47:26 +01:00
Tobias Groza
6029e18980 Merge pull request #2569 from marcovr/dev
Black navigation bar for black theme
2019-12-12 18:32:49 +01:00
Mitesh Sanjay Mutha
a81b791ee3 Translated using Weblate (Hindi)
Currently translated at 100.0% (508 of 508 strings)
2019-12-11 22:59:56 +01:00
THANOS SIOURDAKIS
7e5aaabadf Translated using Weblate (Greek)
Currently translated at 99.8% (507 of 508 strings)
2019-12-11 22:59:55 +01:00
chr56
e01e0d5aed Translated using Weblate (Chinese (Simplified))
Currently translated at 98.8% (502 of 508 strings)
2019-12-11 13:55:38 +01:00
pjammo
db07b81c3c Translated using Weblate (Italian)
Currently translated at 100.0% (508 of 508 strings)
2019-12-11 13:55:27 +01:00
Helios
d660e4ac9d Translated using Weblate (Tamil)
Currently translated at 43.5% (221 of 508 strings)
2019-12-11 13:55:26 +01:00
Marco vR
d90588ce6b Fix style version 2019-12-11 10:04:57 +01:00
Marco vR
7e78197b37 Avoid duplicated code & dark navbar for DarkTheme 2019-12-11 10:04:57 +01:00
Marco vR
06af26f1f2 Black navigation bar for black theme
See: https://github.com/TeamNewPipe/NewPipe/issues/1494
2019-12-11 10:04:57 +01:00
Tobias Groza
d0e07276dd Merge pull request #2856 from TeamNewPipe/Stypox-patch-1
Add PeerTube to README
2019-12-10 22:34:15 +01:00
Stypox
59c19614ea Add PeerTube to README.md 2019-12-10 22:19:54 +01:00
Stypox
0f04dd6dae Merge pull request #2724 from PeterHindes/dev
[Bug Fixed] Playlists With No Uploader No Longer Crash The App When Added To Users Library
2019-12-10 22:12:47 +01:00
Peter Hindes
b365973ac6 fix last recomendation. syntax and imports 2019-12-10 12:18:49 -07:00
Peter Hindes
19fb8cfbfe Update app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java
Co-Authored-By: Redirion <redirion@web.de>
2019-12-10 12:13:04 -07:00
Peter Hindes
d8e6a5cb33 Merge branch 'dev' into dev 2019-12-10 09:59:12 -07:00
Peter Hindes
f4c6a49339 Revert "Merge branch 'dev' of https://github.com/PeterHindes/NewPipe into dev"
This reverts commit 23ee22566d, reversing
changes made to ea70a1f334.
2019-12-10 09:50:53 -07:00
Peter Hindes
23ee22566d Merge branch 'dev' of https://github.com/PeterHindes/NewPipe into dev 2019-12-10 09:50:47 -07:00
Peter Hindes
ea70a1f334 no change 2019-12-10 09:50:33 -07:00
Peter Hindes
68a1407314 Dont update this 2019-12-10 09:48:16 -07:00
Peter Hindes
881efb9be8 Merge branch 'dev' of https://github.com/PeterHindes/NewPipe into dev 2019-12-10 09:44:21 -07:00
Peter Hindes
7844547e4f not used 2019-12-10 09:44:02 -07:00
Peter Hindes
054279d553 Update app/src/main/res/values/strings.xml
Co-Authored-By: Stypox <stypox@pm.me>
2019-12-10 09:37:57 -07:00
Tobias Groza
b2bbdc656a Merge pull request #2201 from yausername/peertube-ui
PeerTube support
2019-12-10 14:39:38 +01:00
yausername
a0151f2a68 more grammar fix 2019-12-10 12:36:56 +05:30
yausername
fd5f4d9840 merged upstream/dev 2019-12-10 01:37:33 +05:30
Peter Hindes
98d7e6bcc6 Merge branch 'dev' into dev 2019-12-09 09:13:18 -07:00
Tobias Groza
e92ca5e572 Merge pull request #2820 from Redirion/remember-subtitles
Remember caption option in player, closes #2811
2019-12-09 17:01:30 +01:00
Tobias Groza
27ca9ed8b8 Merge branch 'dev' into remember-subtitles 2019-12-09 16:55:37 +01:00
Tobias Groza
c2b1d45fc4 Merge pull request #2679 from kapodamy/dl-last-features
more dl features
2019-12-07 09:10:53 +01:00
kapodamy
03939555ac add missing change after updating NPE
use +webm_opus instead of +opus
2019-12-07 00:16:01 -03:00
kapodamy
5a2cd93d13 remove netbeans editor-fold comments 2019-12-06 16:30:07 -03:00
Peter Hindes
ef69625cd2 Merge branch 'dev' into dev 2019-12-06 08:57:43 -07:00
Peter Hindes
ae88b4c697 remove unused code pt2 2019-12-06 08:38:15 -07:00
Peter Hindes
693756bdd6 Removed redundant. Related to last merge 2019-12-06 08:36:57 -07:00
Peter Hindes
c05633979c Update app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java
Co-Authored-By: Redirion <redirion@web.de>
2019-12-06 08:35:14 -07:00
Peter Hindes
7d80d04f34 Remove unused code pt1 2019-12-06 08:32:45 -07:00
dgarciabad
3ff2da3b20 Translated using Weblate (Spanish)
Currently translated at 99.8% (507 of 508 strings)
2019-12-06 03:58:06 +01:00
Rex_sa
eb15bc97a7 Translated using Weblate (Arabic)
Currently translated at 99.4% (505 of 508 strings)
2019-12-06 03:58:05 +01:00
dgarciabad
c6cd2dd854 Translated using Weblate (Basque)
Currently translated at 99.8% (507 of 508 strings)
2019-12-06 03:58:04 +01:00
kapodamy
aae8865bdd remove unused imports 2019-12-05 14:04:48 -03:00
ozyc
c15cead9e2 Translated using Weblate (Esperanto)
Currently translated at 100.0% (508 of 508 strings)
2019-12-05 06:05:18 +01:00
Daniele Lira Mereb
0ccd30b12e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (508 of 508 strings)
2019-12-05 06:05:17 +01:00
yausername
d2a59ecc62 grammar fix 2019-12-05 05:11:05 +05:30
yausername
7a67d192c3 updated extractor 2019-12-03 07:22:14 +05:30
yausername
d32ad36f3d reorder peertube settings entry 2019-12-03 07:16:25 +05:30
Allan Nordhøy
f587d79cd8 Translated using Weblate (Norwegian Bokmål)
Currently translated at 98.8% (502 of 508 strings)
2019-12-03 01:05:20 +01:00
Osoitz
9e290ce91a Translated using Weblate (Basque)
Currently translated at 98.2% (499 of 508 strings)
2019-12-03 01:05:19 +01:00
yausername
0c40a45075 use plurals 2019-12-03 02:08:59 +05:30
yausername
17c5e73994 null check on share 2019-12-03 02:04:52 +05:30
yausername
890d1cb50b update extractor, kiosk names and icons 2019-12-03 01:50:23 +05:30
yausername
4c89d1a6e5 Merge remote-tracking branch 'upstream/dev' into peertube-ui 2019-12-03 01:21:25 +05:30
Rex_sa
77d3a1ef45 Translated using Weblate (Arabic)
Currently translated at 99.4% (505 of 508 strings)
2019-11-30 19:22:13 +01:00
Hosted Weblate
6e289b44c7 Merge branch 'origin/dev' into Weblate. 2019-11-29 20:05:27 +01:00
Jeff Huang
8039055a87 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:25 +01:00
Florian
6c0f5bef21 Translated using Weblate (French)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:24 +01:00
Lucas Galello
7dd7ea1a32 Translated using Weblate (Spanish)
Currently translated at 99.6% (506 of 508 strings)
2019-11-29 20:05:24 +01:00
JoC
3bce9a8ead Translated using Weblate (Spanish)
Currently translated at 99.6% (506 of 508 strings)
2019-11-29 20:05:23 +01:00
narayaan
da82e3f5d1 Translated using Weblate (Dutch)
Currently translated at 90.7% (461 of 508 strings)
2019-11-29 20:05:23 +01:00
Stefano Panzeri
0df5d7a934 Translated using Weblate (Italian)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:22 +01:00
WaldiS
27f38f329f Translated using Weblate (Polish)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:21 +01:00
zeritti
c4707978c4 Translated using Weblate (Czech)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:20 +01:00
BennyBeat
2ad0792581 Translated using Weblate (Catalan)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:16 +01:00
naofum
8741856234 Translated using Weblate (Japanese)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:05:00 +01:00
ssantos
e37a86efc2 Translated using Weblate (German)
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:04:59 +01:00
Geoflly Adonias
baee238a2c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (508 of 508 strings)
2019-11-29 20:04:59 +01:00
k1rakishou
e8437052d8 Add a setting for the lock screen thumbnail feature 2019-11-28 21:47:15 +03:00
k1rakishou
cf13f5ca56 Rebase onto the latest dev, update appcompat dependencies to use androidx 2019-11-28 21:47:15 +03:00
k1rakishou
52f82ed228 Show video thumbnail on the lock screen 2019-11-28 21:47:15 +03:00
kapodamy
84ec320df4 commit
* rebase fixup, add null check
* better ETA string
* drop connection read timeout, for HSDPA networks
* bump NPE version
2019-11-26 13:41:16 -03:00
kapodamy
0033843bc2 Merge branch 'dl-last-features' of https://github.com/kapodamy/NewPipe into dl-last-features 2019-11-26 10:46:59 -03:00
kapodamy
3ca461413e Merge branch 'dev' into dl-last-features 2019-11-26 10:46:32 -03:00
kapodamy
e6d9d8e26d code cleanup
* migrate few annotations to androidx
* mission recovery: better error handling (except StreamExtractor.getErrorMessage() method always returns an error)
* post-processing: more detailed progress

[file specific changes]

DownloadMission.java
* remove redundant/boilerplate code (again)
* make few variables volatile
* better file "length" approximation
* use "done" variable to count the amount of bytes downloaded (simplify percent calc in UI code)

Postprocessing.java
* if case of error use "ERROR_POSTPROCESSING" instead of "ERROR_UNKNOWN_EXCEPTION"
* simplify source stream init

DownloadManager.java
* move all "service message sending" code to DownloadMission
* remove not implemented method "notifyUserPendingDownloads()" also his unused strings

DownloadManagerService.java
* use START_STICKY instead of START_NOT_STICKY
* simplify addMissionEventListener()/removeMissionEventListener() methods (always are called from the main thread)

Deleter.java
* better method definition

MissionAdapter.java
* better method definition
* code cleanup
* the UI is now refreshed every 750ms
* simplify download progress calculation
* indicates if the download is actually recovering
* smooth download speed measure
* show estimated remain time

MainFragment.java:
* check if viewPager is null (issued by "Apply changes" feature of Android Studio)
2019-11-26 10:46:31 -03:00
kapodamy
763995d4c9 update DownloadDialog.java
keep *.opus extension
2019-11-26 10:46:29 -03:00
kapodamy
8a992d4c47 update WebMWriter.java
fix wrong cue generation
2019-11-26 10:46:29 -03:00
kapodamy
da052df106 update DownloadManager.java
* check if the directory pending_downloads was created
2019-11-26 10:46:29 -03:00
kapodamy
60d4c8a55d fallback for pending downloads directory 2019-11-26 10:46:29 -03:00
kapodamy
4292ca94ff misc changes
* OggFromWebMWriter: rewrite (again), reduce iterations over the input. Works as-is (video streams are not supported)
* WebMReader: use int for SimpleBlock.dataSize instead of long
* Download Recovery: allow recovering uninitialized downloads
* check range-requests using HEAD method instead of GET
* DownloadRunnableFallback: add workaround for 32kB/s issue, unknown issue origin, wont fix
* reporting downloads errors now include the source url with the selected quality and format
2019-11-26 10:46:28 -03:00
kapodamy
570738190d Mp4FromDashWriter fixes
* correct calculation of "co64" box and usage of 64bits offsets
* generate one chunk for audio streams like ffmpeg does, attempt to fix cut-off audio
* misc. cleanup
2019-11-26 10:46:26 -03:00
kapodamy
86dafdd92b long-term downloads resume
* recovery infrastructure
* bump serialVersionUID of DownloadMission
* misc cleanup in DownloadMission.java
* remove unused/redundant from strings.xml
2019-11-26 10:46:26 -03:00
kapodamy
dab53450c1 rewrite OggFromWebMWriter
* reduce the number of iterations over the output file (less seeking)
* fix audio samples with size of 255 do not handled correctly in the segment table (allows writing audio streams with 70kbps and 160kbps bitrate)
* add support for VORBIS codec metadata
* write packets based on the timestamp
2019-11-26 10:46:26 -03:00
kapodamy
773aa1eff0 implement webm to ogg demuxer
* used for opus audio stream
* update WebMReader and WebMWriter
* new post-processing algorithm
2019-11-26 10:46:26 -03:00
kapodamy
14de2f289f Merge branch 'dev' into dl-last-features 2019-11-26 10:38:47 -03:00
Tobias Groza
eeeeeef3a7 Merge pull request #2720 from haggaie/hebrew-translation
Fix Hebrew translation on some devices
2019-11-24 21:26:52 +01:00
kapodamy
ea1be11a80 Merge branch 'dev' into dl-last-features 2019-11-24 14:03:34 -03:00
yausername
309fd3fb7d white space changes 2019-11-24 21:42:05 +05:30
yausername
6a24dcec73 Merge remote-tracking branch 'upstream/dev' into peertube-ui 2019-11-24 21:20:45 +05:30
yausername
3e2dba2fd5 merged origin/peertube-ui 2019-11-24 21:19:23 +05:30
yausername
527c38adf9 easily switch between multiple peertube instances 2019-11-24 21:08:06 +05:30
kapodamy
f62a7919a5 code cleanup
* migrate few annotations to androidx
* mission recovery: better error handling (except StreamExtractor.getErrorMessage() method always returns an error)
* post-processing: more detailed progress

[file specific changes]

DownloadMission.java
* remove redundant/boilerplate code (again)
* make few variables volatile
* better file "length" approximation
* use "done" variable to count the amount of bytes downloaded (simplify percent calc in UI code)

Postprocessing.java
* if case of error use "ERROR_POSTPROCESSING" instead of "ERROR_UNKNOWN_EXCEPTION"
* simplify source stream init

DownloadManager.java
* move all "service message sending" code to DownloadMission
* remove not implemented method "notifyUserPendingDownloads()" also his unused strings

DownloadManagerService.java
* use START_STICKY instead of START_NOT_STICKY
* simplify addMissionEventListener()/removeMissionEventListener() methods (always are called from the main thread)

Deleter.java
* better method definition

MissionAdapter.java
* better method definition
* code cleanup
* the UI is now refreshed every 750ms
* simplify download progress calculation
* indicates if the download is actually recovering
* smooth download speed measure
* show estimated remain time

MainFragment.java:
* check if viewPager is null (issued by "Apply changes" feature of Android Studio)
2019-11-24 12:27:16 -03:00
kapodamy
844f80a5f1 update DownloadDialog.java
keep *.opus extension
2019-11-24 12:24:59 -03:00
kapodamy
94e23142a5 update WebMWriter.java
fix wrong cue generation
2019-11-24 12:24:59 -03:00
kapodamy
9339fc80b4 update DownloadManager.java
* check if the directory pending_downloads was created
2019-11-24 12:24:58 -03:00
kapodamy
d092e39c56 fallback for pending downloads directory 2019-11-24 12:24:57 -03:00
kapodamy
160a33e8c8 misc changes
* OggFromWebMWriter: rewrite (again), reduce iterations over the input. Works as-is (video streams are not supported)
* WebMReader: use int for SimpleBlock.dataSize instead of long
* Download Recovery: allow recovering uninitialized downloads
* check range-requests using HEAD method instead of GET
* DownloadRunnableFallback: add workaround for 32kB/s issue, unknown issue origin, wont fix
* reporting downloads errors now include the source url with the selected quality and format
2019-11-24 12:24:57 -03:00
kapodamy
429ee7eb93 Mp4FromDashWriter fixes
* correct calculation of "co64" box and usage of 64bits offsets
* generate one chunk for audio streams like ffmpeg does, attempt to fix cut-off audio
* misc. cleanup
2019-11-24 12:24:54 -03:00
kapodamy
c891f2f1ed long-term downloads resume
* recovery infrastructure
* bump serialVersionUID of DownloadMission
* misc cleanup in DownloadMission.java
* remove unused/redundant from strings.xml
2019-11-24 12:24:53 -03:00
Robin
3108c903dd squashed commit 2019-11-24 16:24:39 +01:00
kapodamy
0cdfa6e377 rewrite OggFromWebMWriter
* reduce the number of iterations over the output file (less seeking)
* fix audio samples with size of 255 do not handled correctly in the segment table (allows writing audio streams with 70kbps and 160kbps bitrate)
* add support for VORBIS codec metadata
* write packets based on the timestamp
2019-11-24 12:21:02 -03:00
kapodamy
52a21e4a24 implement webm to ogg demuxer
* used for opus audio stream
* update WebMReader and WebMWriter
* new post-processing algorithm
2019-11-24 12:21:01 -03:00
Robin
8e152df46d Remember caption option in player, closes #2811 2019-11-24 11:10:50 +01:00
Igor Nedoboy
a68c8ceebe Translated using Weblate (Russian)
Currently translated at 100.0% (508 of 508 strings)
2019-11-24 01:56:56 +01:00
Igor Nedoboy
1ce44b31e2 Translated using Weblate (Russian)
Currently translated at 100.0% (508 of 508 strings)
2019-11-24 01:50:24 +01:00
Hosted Weblate
8f52f918db Merge branch 'origin/dev' into Weblate. 2019-11-23 20:19:07 +01:00
chr56
55f5f76275 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.9% (487 of 508 strings)
2019-11-23 20:19:07 +01:00
Yaron Shahrabani
f122d73754 Translated using Weblate (Hebrew)
Currently translated at 100.0% (508 of 508 strings)
2019-11-23 20:19:06 +01:00
ssantos
8227d85feb Translated using Weblate (Portuguese)
Currently translated at 100.0% (508 of 508 strings)
2019-11-23 20:19:06 +01:00
Oğuz Ersen
46e2f4e579 Translated using Weblate (Turkish)
Currently translated at 100.0% (508 of 508 strings)
2019-11-23 20:19:05 +01:00
Igor Nedoboy
0c65f73180 Translated using Weblate (Russian)
Currently translated at 100.0% (508 of 508 strings)
2019-11-23 20:19:02 +01:00
TobiGr
0fb7eab2f9 Fix code formatting 2019-11-23 20:04:40 +01:00
Tobias Groza
2b2de8811e Merge pull request #2772 from mitosagi/popup-player-gestures
Fix popup player gestures
2019-11-23 19:41:55 +01:00
chr56
5e87463125 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.9% (487 of 508 strings)
2019-11-23 06:26:16 +01:00
Hosted Weblate
424d3fdcd7 Merge branch 'origin/dev' into Weblate. 2019-11-23 06:19:04 +01:00
narayaan
6452c7e08c Translated using Weblate (Flemish)
Currently translated at 90.4% (459 of 508 strings)
2019-11-23 06:19:03 +01:00
Mattias Münster
e21257b786 Translated using Weblate (Swedish)
Currently translated at 91.3% (464 of 508 strings)
2019-11-23 06:19:02 +01:00
narayaan
0f70aeb910 Translated using Weblate (Dutch)
Currently translated at 90.2% (458 of 508 strings)
2019-11-23 06:19:02 +01:00
Igor Nedoboy
cedfbf5f67 Translated using Weblate (Russian)
Currently translated at 100.0% (508 of 508 strings)
2019-11-23 06:19:01 +01:00
chr56
31fab60701 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.1% (483 of 508 strings)
2019-11-23 06:18:58 +01:00
yausername
afef8d8d0b removed extra white spaces 2019-11-23 00:53:14 +05:30
yausername
ac2543d0a1 validate peertube instance. changed peertube color 2019-11-23 00:31:35 +05:30
yausername
81658de08f merged upstream/dev 2019-11-22 22:41:59 +05:30
mitosagi
2ad0d47f61 Fix popup player gestures 2019-11-22 11:41:10 +01:00
Tobias Groza
b9d6d55aa4 Merge pull request #2742 from mauriciocolli/fix-mess-tabs
Fix tab handling and enable ignored tests again
2019-11-21 22:23:40 +01:00
Jeff Huang
719d8651b3 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:20 +01:00
ozyc
f3988c37b6 Translated using Weblate (French)
Currently translated at 99.8% (507 of 508 strings)
2019-11-21 15:37:19 +01:00
zmni
912f09c83e Translated using Weblate (Indonesian)
Currently translated at 99.8% (507 of 508 strings)
2019-11-21 15:37:19 +01:00
WaldiS
27330951aa Translated using Weblate (Polish)
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:18 +01:00
Yaron Shahrabani
84089453e7 Translated using Weblate (Hebrew)
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:17 +01:00
naofum
59f76ef304 Translated using Weblate (Japanese)
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:17 +01:00
ozyc
4061145933 Translated using Weblate (Esperanto)
Currently translated at 99.8% (507 of 508 strings)
2019-11-21 15:37:16 +01:00
nautilusx
e900a69a26 Translated using Weblate (German)
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:16 +01:00
Oğuz Ersen
9cdec5de50 Translated using Weblate (Turkish)
Currently translated at 100.0% (508 of 508 strings)
2019-11-21 15:37:15 +01:00
yausername
ceabfd1a8b updated extractor 2019-11-21 05:41:14 +05:30
Mauricio Colli
bc283bce4e Make the KioskFragment aware of changes in the preferred content country 2019-11-20 00:23:35 -03:00
Mauricio Colli
544cae4fb4 Use tab position from parameters instead of relying on the view pager 2019-11-20 00:23:34 -03:00
Mauricio Colli
38a0395d45 Enable toolbar title visibility when setting a new one 2019-11-20 00:23:33 -03:00
Mauricio Colli
a5b7666188 Clear the item list when starting loading 2019-11-20 00:23:31 -03:00
Mauricio Colli
58a626dedb Fix broken view pager tabs implementation
- Fragments were being recreated from scratch (losing their state) every
time some configuration change occurred (e.g. screen rotation).
- Use `FragmentStatePagerAdapter` instead, as it is built to work with
them and manage their states.
2019-11-20 00:23:30 -03:00
Mauricio Colli
7e311e5567 Fix mess with tab handling and enable ignored tests again
- Fix typo in a string resource
- Reorder tabs so the default kiosk is on top of the others
2019-11-20 00:23:29 -03:00
yausername
596005c69e merged upstream/dev 2019-11-20 03:48:56 +05:30
Hosted Weblate
14ee7d53d7 Merge branch 'origin/dev' into Weblate. 2019-11-19 21:58:36 +01:00
Allan Nordhøy
2f575c13f1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.0% (503 of 508 strings)
2019-11-19 21:58:36 +01:00
ozyc
82738e23ce Translated using Weblate (French)
Currently translated at 100.0% (508 of 508 strings)
2019-11-19 21:58:36 +01:00
ssantos
93e99d096a Translated using Weblate (Portuguese)
Currently translated at 99.8% (507 of 508 strings)
2019-11-19 21:58:35 +01:00
Marc Riera
784b9cf207 Translated using Weblate (Catalan)
Currently translated at 95.5% (485 of 508 strings)
2019-11-19 21:58:34 +01:00
Александр
7b56244c8b Translated using Weblate (Russian)
Currently translated at 99.8% (507 of 508 strings)
2019-11-19 21:58:34 +01:00
Allan Nordhøy
44192d6e49 Translated using Weblate (English)
Currently translated at 100.0% (508 of 508 strings)
2019-11-19 21:58:34 +01:00
ozyc
4ded3adadb Translated using Weblate (Esperanto)
Currently translated at 100.0% (508 of 508 strings)
2019-11-19 21:58:33 +01:00
ozyc
3798d5228c Translated using Weblate (German)
Currently translated at 99.8% (507 of 508 strings)
2019-11-19 21:58:33 +01:00
Oğuz Ersen
0491c4af9c Translated using Weblate (Turkish)
Currently translated at 99.8% (507 of 508 strings)
2019-11-19 21:58:32 +01:00
nautilusx
69799613aa Translated using Weblate (German)
Currently translated at 99.6% (506 of 508 strings)
2019-11-19 21:58:29 +01:00
TobiGr
c0cbec700c Merge remote-tracking branch 'Weblate/dev' into dev 2019-11-19 21:49:14 +01:00
Tobias Groza
e9c9dfcd8c Merge pull request #2799 from Ozyc/patch-1
Make reCAPTCHA string untranslatable
2019-11-19 21:16:25 +01:00
Tobias Groza
c9cbb1e6f1 Merge pull request #2816 from Redirion/patch-3
Bump ExoPlayer to 2.10.8
2019-11-19 18:11:38 +01:00
Hosted Weblate
3ea8841e3a Merge branch 'origin/dev' into Weblate. 2019-11-19 15:04:49 +01:00
chr56
8b26e5b106 Translated using Weblate (Chinese (Simplified))
Currently translated at 32.9% (165 of 501 strings)
2019-11-19 15:04:47 +01:00
Éfrit
495fa170a9 Translated using Weblate (French)
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:37 +01:00
oskamuelller4fs
406d02fd28 Translated using Weblate (German)
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:34 +01:00
Geoflly Adonias
3ad8883999 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:33 +01:00
Redirion
dcd7055a9d Bump ExoPlayer to 2.10.8
Here we go again.
Minor update.
ExoPlayer Changelog: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
2019-11-19 14:25:40 +01:00
Tobias Groza
a8e326ceea Merge pull request #2713 from mauriciocolli/compatibility-extractor
Use new Localization and Downloader implementations from extractor
2019-11-18 10:05:45 +01:00
Mauricio Colli
b125ff702a Show parsed relative times instead of whatever the service gives us
Before, the direct value was given to the user, now it uses the parsed
date so we can match the device's language.

To get the relative time from the parsed dates, we use the PrettyTime
library.

Also introduces a debug option to check the service's original value.
2019-11-17 23:58:55 -03:00
Mauricio Colli
6e546703a9 Show proper text for live streams watching/listening count 2019-11-17 23:58:54 -03:00
Mauricio Colli
71f1bbdcc1 Use new Localization and Downloader implementations from extractor 2019-11-17 23:58:52 -03:00
chr56
bdb86a7fde Translated using Weblate (Chinese (Simplified))
Currently translated at 19.2% (96 of 501 strings)
2019-11-16 23:06:09 +01:00
Pekka Ristola
8ac8258400 Translated using Weblate (Finnish)
Currently translated at 67.7% (339 of 501 strings)
2019-11-16 23:06:01 +01:00
Mattias Münster
0338ff8d51 Translated using Weblate (Swedish)
Currently translated at 91.2% (457 of 501 strings)
2019-11-16 23:06:00 +01:00
Éfrit
d694e61006 Translated using Weblate (French)
Currently translated at 100.0% (501 of 501 strings)
2019-11-16 23:05:53 +01:00
yausername
b6be586766 merged upstream/dev 2019-11-16 04:37:14 +05:30
thami simo
9915287a5a Translated using Weblate (Arabic)
Currently translated at 100.0% (501 of 501 strings)
2019-11-15 20:04:27 +01:00
WaldiS
cb19f792da Translated using Weblate (Polish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-15 20:04:26 +01:00
winqooq
f449aee901 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (501 of 501 strings)
2019-11-15 20:04:26 +01:00
Jeff Huang
b665122c3c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:30 +01:00
Koo Hyomin
f4dbd5c9bd Translated using Weblate (Korean)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:30 +01:00
Pekka Ristola
cb6d7e6dd7 Translated using Weblate (Finnish)
Currently translated at 67.3% (337 of 501 strings)
2019-11-14 01:03:27 +01:00
ozyc
4d4a86f889 Translated using Weblate (French)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:26 +01:00
Adolfo Jayme Barrientos
e3829303f9 Translated using Weblate (Spanish)
Currently translated at 99.8% (500 of 501 strings)
2019-11-14 01:03:26 +01:00
Mitesh Sanjay Mutha
86d4cf3dfc Translated using Weblate (Hindi)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:25 +01:00
naofum
ed4196f732 Translated using Weblate (Japanese)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:23 +01:00
ozyc
af70fdd7a6 Translated using Weblate (Esperanto)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:03:22 +01:00
Oğuz Ersen
0ee6c1e47e Translated using Weblate (Turkish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-14 01:02:57 +01:00
Ozyc
0886c6b216 Make reCAPTCHA string untranslatable
I updated reCaptchaActivity string and made it untranslatable, because it's causing "Failed check: Unchanged translation" on Weblate.
2019-11-11 15:24:06 +00:00
Hosted Weblate
754fe3adfb Merge branch 'origin/dev' into Weblate. 2019-11-10 00:04:35 +01:00
Deleted User
b5058f99ce Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.2% (497 of 501 strings)
2019-11-10 00:04:32 +01:00
Jeff Huang
f7be693470 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:31 +01:00
Deleted User
b772afeeab Translated using Weblate (Slovak)
Currently translated at 88.2% (442 of 501 strings)
2019-11-10 00:04:31 +01:00
Adolfo Jayme Barrientos
f0c7cb9f94 Translated using Weblate (Spanish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:29 +01:00
zmni
1561c210fb Translated using Weblate (Indonesian)
Currently translated at 99.8% (500 of 501 strings)
2019-11-10 00:04:28 +01:00
thami simo
727fb27ad0 Translated using Weblate (Arabic)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:27 +01:00
gold.ris90
ceb1d70551 Translated using Weblate (Macedonian)
Currently translated at 75.6% (379 of 501 strings)
2019-11-10 00:04:25 +01:00
Yaron Shahrabani
720bff02aa Translated using Weblate (Hebrew)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:16 +01:00
ssantos
f82dd3e152 Translated using Weblate (Portuguese)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:15 +01:00
naofum
a3dff2c608 Translated using Weblate (Japanese)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:15 +01:00
ssantos
28f87dcb2b Translated using Weblate (German)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:14 +01:00
Oguz Ersen
4daae95979 Translated using Weblate (Turkish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-10 00:04:13 +01:00
Tobias Groza
577bfab366 Merge pull request #2791 from Redirion/patch-2
Bump ExoPlayer to 2.10.7
2019-11-09 11:44:50 +01:00
Igor Nedoboy
655993d8f2 Translated using Weblate (Russian)
Currently translated at 100.0% (501 of 501 strings)
2019-11-08 23:18:51 +01:00
Redirion
3e079a6858 Bump ExoPlayer to 2.10.7
Little dependency update.
ExoPlayer Changelog: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
2019-11-07 16:36:45 +01:00
Thomas Johansen
e5afffdced Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.6% (489 of 501 strings)
2019-11-06 23:26:56 +01:00
Allan Nordhøy
a43c434376 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.6% (489 of 501 strings)
2019-11-06 23:26:55 +01:00
Laura Arjona Reina
225647cf65 Translated using Weblate (Spanish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-06 11:30:36 +01:00
Swyter
fdab92c92b Translated using Weblate (Spanish)
Currently translated at 100.0% (501 of 501 strings)
2019-11-06 11:30:35 +01:00
Igor Nedoboy
72adb7a53b Translated using Weblate (Russian)
Currently translated at 100.0% (501 of 501 strings)
2019-11-05 21:47:34 +01:00
Igor Nedoboy
f84907e2c9 Translated using Weblate (Russian)
Currently translated at 100.0% (501 of 501 strings)
2019-11-05 13:15:15 +01:00
Igor Nedoboy
ab3b8d0a14 Translated using Weblate (Russian)
Currently translated at 100.0% (501 of 501 strings)
2019-11-05 09:07:26 +01:00
Hosted Weblate
5e7b635006 Merge branch 'origin/dev' into Weblate. 2019-11-04 17:52:01 +01:00
gold.ris90
58181ee37f Translated using Weblate (Macedonian)
Currently translated at 65.9% (315 of 478 strings)
2019-11-04 17:52:01 +01:00
Igor Nedoboy
4db4b3af86 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-11-04 17:52:00 +01:00
Adolfo Jayme Barrientos
504f45efa6 Translated using Weblate (Spanish)
Currently translated at 100.0% (478 of 478 strings)
2019-11-04 17:51:57 +01:00
TobiGr
114a7ccdd4 Make "Default Kiosk" string translatable
Closes #2778
2019-11-04 11:21:41 +01:00
Tobias Groza
1a9b3c9d7c Merge pull request #2714 from mauriciocolli/introduce-kotlin
Update Gradle and introduce Kotlin to NewPipe
2019-11-03 13:48:10 +01:00
Mauricio Colli
137fabee0e Update Gradle and introduce Kotlin 2019-11-03 13:33:13 +01:00
TobiGr
2d41022ee4 Merge remote-tracking branch 'Weblate/dev' into dev 2019-11-03 13:01:55 +01:00
Allan Nordhøy
2ce0caa943 Translated using Weblate (Spanish)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 17:50:03 +01:00
Joseph Kim
2839154b68 Translated using Weblate (Korean)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:46 +01:00
Éfrit
e25c5544ba Translated using Weblate (French)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:45 +01:00
Adolfo Jayme Barrientos
7c70033f19 Translated using Weblate (Spanish)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:45 +01:00
WaldiS
59f90fcdfe Translated using Weblate (Polish)
Currently translated at 99.8% (477 of 478 strings)
2019-11-02 15:17:41 +01:00
Allan Nordhøy
e05def491f Translated using Weblate (Hindi)
Currently translated at 92.3% (441 of 478 strings)
2019-11-02 15:17:41 +01:00
Mitosagi
19738c0c1b Translated using Weblate (Japanese)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:41 +01:00
Enol P
0790a43aa2 Translated using Weblate (Asturian)
Currently translated at 47.1% (225 of 478 strings)
2019-11-02 15:17:40 +01:00
Igor Nedoboy
fd4a4d979a Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:36 +01:00
Adolfo Jayme Barrientos
6011dec272 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (478 of 478 strings)
2019-11-02 15:17:36 +01:00
Mitesh Sanjay Mutha
98ae78eb06 Translated using Weblate (Hindi)
Currently translated at 92.3% (441 of 478 strings)
2019-11-02 15:17:33 +01:00
Igor Nedoboy
0a66f54487 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-29 22:27:46 +01:00
ssantos
5e2f373a57 Translated using Weblate (Portuguese)
Currently translated at 100.0% (478 of 478 strings)
2019-10-29 22:08:59 +01:00
Oguz Ersen
ae8f47500f Translated using Weblate (Turkish)
Currently translated at 100.0% (478 of 478 strings)
2019-10-29 22:08:58 +01:00
Igor Nedoboy
36c1e19ef0 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-29 22:08:55 +01:00
Allan Nordhøy
dc933a5e66 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.5% (466 of 478 strings)
2019-10-28 16:31:50 +01:00
Jeff Huang
c7699a5a3b Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (478 of 478 strings)
2019-10-28 16:31:49 +01:00
naofum
0f656aa7a9 Translated using Weblate (Japanese)
Currently translated at 100.0% (478 of 478 strings)
2019-10-28 16:31:48 +01:00
Allan Nordhøy
1af8481fff Translated using Weblate (English)
Currently translated at 99.8% (477 of 478 strings)
2019-10-28 16:31:48 +01:00
Deleted User
3787c6ec70 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.7% (467 of 478 strings)
2019-10-27 06:12:50 +01:00
Enol P
3e7ff96445 Translated using Weblate (Asturian)
Currently translated at 40.6% (194 of 478 strings)
2019-10-25 21:29:55 +02:00
Hosted Weblate
558e3b1032 Merge branch 'origin/dev' into Weblate. 2019-10-22 03:31:44 +02:00
Allan Nordhøy
65279b3364 Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.0% (454 of 478 strings)
2019-10-22 03:31:42 +02:00
Muhammad Sharjeel
d3ca184570 Translated using Weblate (Urdu)
Currently translated at 100.0% (478 of 478 strings)
2019-10-22 03:31:42 +02:00
01QueN10
40a2322e09 Translated using Weblate (Korean)
Currently translated at 99.0% (473 of 478 strings)
2019-10-22 03:31:08 +02:00
Mattias Münster
0b593b343e Translated using Weblate (Swedish)
Currently translated at 79.7% (381 of 478 strings)
2019-10-22 03:31:06 +02:00
ozyc
83dc62239f Translated using Weblate (French)
Currently translated at 100.0% (478 of 478 strings)
2019-10-22 03:31:05 +02:00
Igor Nedoboy
34cb44f2be Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-22 03:31:04 +02:00
ozyc
55a82b631e Translated using Weblate (Esperanto)
Currently translated at 58.4% (279 of 478 strings)
2019-10-22 03:31:03 +02:00
Igor Nedoboy
b358231b20 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-19 00:23:12 +02:00
Igor Nedoboy
4579fa52ac Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-19 00:11:46 +02:00
Igor Nedoboy
b4449e4998 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-19 00:07:21 +02:00
Goudarz Jafari
d5b1dceb66 Translated using Weblate (Persian)
Currently translated at 98.5% (471 of 478 strings)
2019-10-18 20:52:50 +02:00
Peter Hindes
8f46757c0d New no uploader, still needs a way to programaticly switch
preferably they can both be the same file and modified at runtime
2019-10-16 20:32:12 -06:00
Peter Hindes
87378fc79c Fixed library showing null 2019-10-16 19:56:31 -06:00
朱程宇
95f44cbe9a Translated using Weblate (Chinese (Simplified))
Currently translated at 1.7% (8 of 478 strings)
2019-10-16 05:20:38 +02:00
Jeff Huang
8849ddab81 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:35 +02:00
Nathan
9a47714645 Translated using Weblate (French)
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:34 +02:00
zmni
b1396b98a3 Translated using Weblate (Indonesian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:33 +02:00
WaldiS
c3433baf0c Translated using Weblate (Polish)
Currently translated at 99.8% (477 of 478 strings)
2019-10-16 05:20:32 +02:00
zeritti
fab692c386 Translated using Weblate (Czech)
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:32 +02:00
naofum
834f599fb1 Translated using Weblate (Japanese)
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:31 +02:00
Enol P
701207dcc5 Translated using Weblate (Asturian)
Currently translated at 38.9% (186 of 478 strings)
2019-10-16 05:20:31 +02:00
Daniele Lira Mereb
19ba37dfad Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:29 +02:00
Oguz Ersen
284228ef16 Translated using Weblate (Turkish)
Currently translated at 100.0% (478 of 478 strings)
2019-10-16 05:20:27 +02:00
Peter Hindes
ad2de3a828 only use TextUtils.equals (fixes more crashes) 2019-10-15 17:22:17 -06:00
Peter Hindes
797e1a105d Comment out debuging code 2019-10-15 14:02:37 -06:00
Peter Hindes
9c00e7f45c Using Strings
still need to find out why its null on the library
2019-10-15 12:49:24 -06:00
Tushar Pandey
26a1b1377d Added translation using Weblate (Pirate) 2019-10-15 17:13:04 +02:00
Peter Hindes
df2bb228c5 Much Simpler Fix 2019-10-15 09:11:04 -06:00
Peter Hindes
49db47c12c describe what "Auto-Generated" Means 2019-10-15 09:01:30 -06:00
Peter Hindes
cc1e5edaec Revert "Merge branch 'dev-all-changes' into dev"
This reverts commit f6060261a1, reversing
changes made to 8c73253a52.
2019-10-15 08:52:51 -06:00
Peter Hindes
f6060261a1 Merge branch 'dev-all-changes' into dev 2019-10-15 08:51:30 -06:00
Peter Hindes
8c73253a52 follow stye on debug 2019-10-15 08:48:36 -06:00
Peter Hindes
4106645d6e Polished Results 2019-10-15 08:40:51 -06:00
Peter Hindes
c68c35e084 Better FIx, Improved Comment Style 2019-10-15 07:19:11 -06:00
Peter Hindes
fd34b1a291 Fixes Improved 2019-10-15 07:18:06 -06:00
Peter Hindes
bfc987f81b Revert "Revert "Added a restart song button to signle track expanded notification""
This reverts commit 646e327ed2.
2019-10-14 18:01:15 -06:00
Peter Hindes
c93c52a58c Wrap in multiline comment so it colapses 2019-10-14 16:55:16 -06:00
Peter Hindes
e72c6eed24 Explain What we did in the code itself 2019-10-14 16:48:44 -06:00
Peter Hindes
646e327ed2 Revert "Added a restart song button to signle track expanded notification"
This reverts commit cb5c219ffe.
2019-10-14 16:41:38 -06:00
Peter Hindes
cb5c219ffe Added a restart song button to signle track expanded notification
... and some comments to the code
2019-10-14 16:37:58 -06:00
Peter Hindes
3794002c7b much simpler, "uploader" will never change on a playlist 2019-10-14 14:56:04 -06:00
Peter Hindes
bd2b32bfbc Fixed Playlists With No Uploader Crashing The App 2019-10-14 11:55:55 -06:00
Haggai Eran
884528927e Fix Hebrew translation on some devices
Hebrew on android uses two locale codes (iw and he).
See details here: https://stackoverflow.com/a/8470980

For example, Nexus 7 (2013) uses iw, so it shows the English UI even when configuring the tablet to use Hebrew.

Add a symbolic link from values-iw to values-he so both use the same strings.
2019-10-12 12:21:01 +03:00
Igor Nedoboy
4688b1fe23 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-12 07:08:12 +02:00
Hosted Weblate
dfd558f848 Merge branch 'origin/dev' into Weblate. 2019-10-11 16:00:20 +02:00
ssantos
d2e065d273 Translated using Weblate (Portuguese)
Currently translated at 100.0% (478 of 478 strings)
2019-10-11 16:00:20 +02:00
AntonAkovP
84a52342ab Translated using Weblate (Bulgarian)
Currently translated at 80.5% (385 of 478 strings)
2019-10-11 16:00:19 +02:00
Igor Nedoboy
6f3d5e9fb8 Translated using Weblate (Russian)
Currently translated at 100.0% (478 of 478 strings)
2019-10-11 16:00:18 +02:00
朱程宇
7d18eb8b02 Translated using Weblate (Chinese (Hong Kong))
Currently translated at 28.0% (134 of 478 strings)
2019-10-11 16:00:17 +02:00
朱程宇
7e3eb5e14d Added translation using Weblate (Chinese (Simplified)) 2019-10-11 16:00:09 +02:00
yausername
039a8e0b87 reordered services 2019-03-23 19:49:37 +05:30
Ritvik Saraf
a8b5534838 darker color for peertube 2019-03-10 19:08:08 +05:30
Ritvik Saraf
2581fa4176 init services in app onCreate 2019-03-10 17:30:21 +05:30
Ritvik Saraf
d90b1ca5be merged upstream/dev, changes for peertube support 2019-03-10 01:02:25 +05:30
Ritvik Saraf
845663f80f added themeing for peertube, change peertube instance 2018-12-29 23:06:39 +05:30
Ritvik Saraf
9530af95f4 Merge branch 'dev' into peertube 2018-12-25 20:18:39 +05:30
Ritvik Saraf
c1efa78820 Merge branch 'dev' into peertube 2018-12-25 20:00:56 +05:30
Ritvik Saraf
d61797fa3a merged dev 2018-12-25 19:31:25 +05:30
Ritvik Saraf
cc6989b4f9 updated extractor 2018-10-12 13:16:16 +05:30
Ritvik Saraf
fc31458cc4 added peertube 2018-10-12 02:34:30 +05:30
417 changed files with 20882 additions and 7267 deletions

View File

@@ -1,3 +0,0 @@
- [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them.
- [ ] I checked if the issue/feature exists in the latest version.
- [ ] I did use the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/) to paste bug reports.

44
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,44 @@
---
name: Bug report
about: Create a bug report to help us improve
labels: bug
assignees: ''
---
<!--
Oh no, a bug! It happens. Thanks for reporting an issue with NewPipe.
Use this template to notify us if you found a bug.
To make it easier for us to help you please enter detailed information below.
Please note, we only support the latest version of NewPipe and the master branch. Make sure you have that version installed. If you don't, upgrade & reproduce the problem before opening the issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is the go-to place to get this version. In order to check your app version, open the left drawer and click on "About".
P.S.: Our contribution guidelines might be a nice document to read before you fill out the report :) You can find it at https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md
-->
### Version
<!-- Which version are you using? -->
-
### Steps to reproduce the bug
<!-- If you can't reproduce it, please try to give as many details as possible on how you think you got to the bug. -->
Steps to reproduce the behavior:
1. Go to '...'
2. Press on '....'
3. Swipe down to '....'
### Expected behavior
Tell us what you expected to happen.
### Actual behaviour
Tell us what happens instead.
### Screenshots/Screen records
If applicable, add screenshots or a screen recording to help explain your problem. GitHub should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from an image/video hoster here instead.
### Logs
If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it here:
<!-- That's right, here! -->

View File

@@ -0,0 +1,28 @@
---
name: Feature request
about: Suggest an idea for this project
labels: enhancement
assignees: ''
---
<!-- Hey. Our contribution guidelines (https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be an appropriate
document to read before you fill out the request :) -->
#### Is your feature request related to a problem? Please describe it
A clear and concise description of what the problem is.
Example: *I want to do X, but there is no way to do it.*
#### Describe the solution you'd like
A clear and concise description of what you want to happen.
Example: *I think it would be nice if you add feature Y which makes X possible.*
#### (Optional) Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Example: *I considered Z, but that didn't turn out to be a good idea because...*
#### Additional context
Add any other context or screenshots about the feature request here.
Example: *Here's a photo of my cat!*
#### How will you/everyone benefit from this feature?
Convince us! How does it change your NewPipe experience and/or your life?
The better this paragraph is, the more likely a developer will think about working on it.

View File

@@ -1 +1,26 @@
<!-- Hey there. Thank you so much for improving NewPipe. Please take a moment to fill out the following suggestion on how to structure this PR description. Having roughly the same layout helps everyone considerably :)-->
#### What is it?
- [ ] Bug fix
- [ ] Feature
#### Long description of the changes in your PR
<!-- While bullet points are the norm in this section, feel free to write a text instead if you can't fit it in a list -->
- record videos
- create clones
- take over the world
#### Fixes the following issue(s)
<!-- Also add reddit or other links which are relevant to your change. -->
-
#### Relies on the following changes
<!-- Delete this if it doesn't apply to you. -->
-
#### Testing apk
<!-- Ensure that you have your changes on a new branch which has a meaningful name. This name will be used as a suffix for the app ID to allow installing and testing multiple versions of NewPipe. Do NOT name your branches like "patch-0" and "feature-1". For example, if your PR implements a bug fix for comments, an appropriate branch name would be "commentfix". -->
debug.zip
#### Agreement
- [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them.

View File

@@ -13,7 +13,7 @@
</p>
<hr>
<p align="center"><a href="#screenshots">Screenshots</a> &bull; <a href="#description">Description</a> &bull; <a href="#features">Features</a> &bull; <a href="#updates">Updates</a> &bull; <a href="#contribution">Contribution</a> &bull; <a href="#donate">Donate</a> &bull; <a href="#license">License</a></p>
<p align="center"><a href="https://newpipe.schabi.org">Website</a> &bull; <a href="https://newpipe.schabi.org/blog/">Blog</a> &bull; <a href="https://newpipe.schabi.org/press/">Press</a></p>
<p align="center"><a href="https://newpipe.schabi.org">Website</a> &bull; <a href="https://newpipe.schabi.org/blog/">Blog</a> &bull; <a href="https://newpipe.schabi.org/FAQ/">FAQ</a> &bull; <a href="https://newpipe.schabi.org/press/">Press</a></p>
<hr>
<b>WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.</b>
@@ -81,6 +81,7 @@ NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/doc
* YouTube
* SoundCloud \[beta\]
* media.ccc.de \[beta\]
* PeerTube instances \[beta\]
## Updates
When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can:

2
app/.gitignore vendored
View File

@@ -1,3 +1,3 @@
.gitignore
/build
app.iml
*.iml

View File

@@ -1,4 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 28
@@ -6,13 +9,20 @@ android {
defaultConfig {
applicationId "org.schabi.newpipe"
resValue "string", "app_name", "NewPipe"
minSdkVersion 19
targetSdkVersion 28
versionCode 790
versionName "0.17.4"
versionCode 900
versionName "0.19.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
buildTypes {
@@ -25,7 +35,18 @@ android {
debug {
multiDexEnabled true
debuggable true
applicationIdSuffix ".debug"
// suffix the app id and the app name with git branch name
def workingBranch = getGitWorkingBranch()
def normalizedWorkingBranch = workingBranch.replaceAll("[^A-Za-z]+", "").toLowerCase()
if (normalizedWorkingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") {
// default values when branch name could not be determined or is master or dev
applicationIdSuffix ".debug"
resValue "string", "app_name", "NewPipe Debug"
} else {
applicationIdSuffix ".debug." + normalizedWorkingBranch
resValue "string", "app_name", "NewPipe " + workingBranch
}
}
}
@@ -40,24 +61,38 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// Required and used only by groupie
androidExtensions {
experimental = true
}
sourceSets {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
}
}
ext {
androidxLibVersion = '1.0.0'
exoPlayerLibVersion = '2.10.6'
exoPlayerLibVersion = '2.10.8'
roomDbLibVersion = '2.1.0'
leakCanaryLibVersion = '1.5.4' //1.6.1
okHttpLibVersion = '3.12.6'
icepickLibVersion = '3.2.0'
stethoLibVersion = '1.5.0'
markwonVersion = '4.2.1'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation "android.arch.persistence.room:testing:1.1.1"
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
exclude module: 'support-annotations'
})
implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.17.4'
implementation 'com.github.TeamNewPipe:NewPipeExtractor:69e0624e3'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.23.0'
@@ -69,6 +104,13 @@ dependencies {
implementation "androidx.cardview:cardview:${androidxLibVersion}"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.xwray:groupie:2.7.0'
implementation 'com.xwray:groupie-kotlin-android-extensions:2.7.0'
implementation 'androidx.lifecycle:lifecycle-livedata:2.0.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
// Originally in NewPipeExtractor
implementation 'com.grack:nanojson:1.1'
implementation 'org.jsoup:jsoup:1.9.2'
@@ -89,17 +131,37 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
implementation 'org.ocpsoft.prettytime:prettytime:4.0.3.Final'
implementation "androidx.room:room-runtime:${roomDbLibVersion}"
implementation "androidx.room:room-rxjava2:${roomDbLibVersion}"
annotationProcessor "androidx.room:room-compiler:${roomDbLibVersion}"
kapt "androidx.room:room-compiler:${roomDbLibVersion}"
implementation "frankiesardo:icepick:${icepickLibVersion}"
annotationProcessor "frankiesardo:icepick-processor:${icepickLibVersion}"
kapt "frankiesardo:icepick-processor:${icepickLibVersion}"
debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakCanaryLibVersion}"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:${leakCanaryLibVersion}"
implementation "com.squareup.okhttp3:okhttp:${okHttpLibVersion}"
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoLibVersion}"
implementation "io.noties.markwon:core:${markwonVersion}"
implementation "io.noties.markwon:linkify:${markwonVersion}"
}
static String getGitWorkingBranch() {
try {
def gitProcess = "git rev-parse --abbrev-ref HEAD".execute()
gitProcess.waitFor()
if (gitProcess.exitValue() == 0) {
return gitProcess.text.trim()
} else {
// not a git repository
return ""
}
} catch (IOException ignored) {
// git was not found
return ""
}
}

View File

@@ -17,6 +17,9 @@
#}
-dontobfuscate
-keep class org.schabi.newpipe.extractor.timeago.patterns.** { *; }
-keep class org.ocpsoft.prettytime.i18n.** { *; }
-keep class org.mozilla.javascript.** { *; }
-keep class org.mozilla.classfile.ClassFileWriter

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,79 @@
package org.schabi.newpipe.database
import android.content.ContentValues
import android.database.sqlite.SQLiteDatabase
import androidx.room.Room
import androidx.room.testing.MigrationTestHelper
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.schabi.newpipe.extractor.stream.StreamType
@RunWith(AndroidJUnit4::class)
class AppDatabaseTest {
companion object {
private const val DEFAULT_SERVICE_ID = 0
private const val DEFAULT_URL = "https://www.youtube.com/watch?v=cDphUib5iG4"
private const val DEFAULT_TITLE = "Test Title"
private val DEFAULT_TYPE = StreamType.VIDEO_STREAM
private const val DEFAULT_DURATION = 480L
private const val DEFAULT_UPLOADER_NAME = "Uploader Test"
private const val DEFAULT_THUMBNAIL = "https://example.com/example.jpg"
}
@get:Rule val testHelper = MigrationTestHelper(InstrumentationRegistry.getInstrumentation(),
AppDatabase::class.java.canonicalName, FrameworkSQLiteOpenHelperFactory());
@Test
fun migrateDatabaseFrom2to3() {
val databaseInV2 = testHelper.createDatabase(AppDatabase.DATABASE_NAME, Migrations.DB_VER_2)
databaseInV2.run {
insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply {
// put("uid", null)
put("service_id", DEFAULT_SERVICE_ID)
put("url", DEFAULT_URL)
put("title", DEFAULT_TITLE)
put("stream_type", DEFAULT_TYPE.name)
put("duration", DEFAULT_DURATION)
put("uploader", DEFAULT_UPLOADER_NAME)
put("thumbnail_url", DEFAULT_THUMBNAIL)
})
close()
}
testHelper.runMigrationsAndValidate(AppDatabase.DATABASE_NAME, Migrations.DB_VER_3,
true, Migrations.MIGRATION_2_3);
val migratedDatabaseV3 = getMigratedDatabase()
val listFromDB = migratedDatabaseV3.streamDAO().all.blockingFirst()
assertEquals(1, listFromDB.size)
val streamFromMigratedDatabase = listFromDB.first()
assertEquals(DEFAULT_SERVICE_ID, streamFromMigratedDatabase.serviceId)
assertEquals(DEFAULT_URL, streamFromMigratedDatabase.url)
assertEquals(DEFAULT_TITLE, streamFromMigratedDatabase.title)
assertEquals(DEFAULT_TYPE, streamFromMigratedDatabase.streamType)
assertEquals(DEFAULT_DURATION, streamFromMigratedDatabase.duration)
assertEquals(DEFAULT_UPLOADER_NAME, streamFromMigratedDatabase.uploader)
assertEquals(DEFAULT_THUMBNAIL, streamFromMigratedDatabase.thumbnailUrl)
assertNull(streamFromMigratedDatabase.viewCount)
assertNull(streamFromMigratedDatabase.textualUploadDate)
assertNull(streamFromMigratedDatabase.uploadDate)
assertNull(streamFromMigratedDatabase.isUploadDateApproximation)
}
private fun getMigratedDatabase(): AppDatabase {
val database: AppDatabase = Room.databaseBuilder(ApplicationProvider.getApplicationContext(),
AppDatabase::class.java, AppDatabase.DATABASE_NAME)
.build()
testHelper.closeWhenFinished(database)
return database
}
}

View File

@@ -6,12 +6,5 @@
<application
android:name=".DebugApp"
android:label="NewPipe Debug"
tools:replace="android:name, android:label">
<activity
android:name=".MainActivity"
android:label="NewPipe Debug"
tools:replace="android:label"/>
</application>
tools:replace="android:name" />
</manifest>

View File

@@ -15,7 +15,7 @@ import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.LeakDirectoryProvider;
import com.squareup.leakcanary.RefWatcher;
import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.downloader.Downloader;
import java.io.File;
import java.util.concurrent.TimeUnit;
@@ -39,7 +39,7 @@ public class DebugApp extends App {
@Override
protected Downloader getDownloader() {
return org.schabi.newpipe.Downloader.init(new OkHttpClient.Builder()
return DownloaderImpl.init(new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor()));
}

View File

@@ -61,7 +61,8 @@
android:name=".player.MainVideoPlayer"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:launchMode="singleTask"/>
android:launchMode="singleTask"
android:theme="@style/VideoPlayerTheme"/>
<activity
android:name=".settings.SettingsActivity"
@@ -73,6 +74,7 @@
<service android:name=".local.subscription.services.SubscriptionsImportService"/>
<service android:name=".local.subscription.services.SubscriptionsExportService"/>
<service android:name=".local.feed.service.FeedLoadService"/>
<activity
android:name=".PanicResponderActivity"
@@ -112,7 +114,7 @@
<activity
android:name=".ReCaptchaActivity"
android:label="@string/reCaptchaActivity"/>
android:label="@string/recaptcha"/>
<provider
android:name="androidx.core.content.FileProvider"
@@ -145,6 +147,7 @@
<data android:host="youtube.com"/>
<data android:host="m.youtube.com"/>
<data android:host="www.youtube.com"/>
<data android:host="music.youtube.com"/>
<!-- video prefix -->
<data android:pathPrefix="/v/"/>
<data android:pathPrefix="/embed/"/>
@@ -153,6 +156,7 @@
<!-- channel prefix -->
<data android:pathPrefix="/channel/"/>
<data android:pathPrefix="/user/"/>
<data android:pathPrefix="/c/"/>
<!-- playlist prefix -->
<data android:pathPrefix="/playlist"/>
</intent-filter>
@@ -242,14 +246,7 @@
<data android:host="tube.poal.co"/>
<data android:host="invidious.13ad.de"/>
<data android:host="yt.elukerio.org"/>
<!-- video prefix -->
<data android:pathPrefix="/embed/"/>
<data android:pathPrefix="/watch"/>
<!-- channel prefix -->
<data android:pathPrefix="/channel/"/>
<data android:pathPrefix="/user/"/>
<!-- playlist prefix -->
<data android:pathPrefix="/playlist"/>
<data android:pathPrefix="/"/>
</intent-filter>
<!-- Soundcloud filter -->
@@ -275,8 +272,26 @@
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
<!-- MediaCCC filter -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="media.ccc.de"/>
<!-- video prefix -->
<data android:pathPrefix="/v/"/>
<!-- channel prefix-->
<data android:pathPrefix="/c/"/>
<data android:pathPrefix="/b/"/>
</intent-filter>
</activity>
<service
android:name=".RouterActivity$FetcherService"
android:exported="false"/>

View File

@@ -6,9 +6,9 @@ import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
import android.util.Log;
import androidx.annotation.Nullable;
import android.util.Log;
import com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
@@ -21,13 +21,15 @@ import org.acra.config.ACRAConfiguration;
import org.acra.config.ACRAConfigurationException;
import org.acra.config.ConfigurationBuilder;
import org.acra.sender.ReportSenderFactory;
import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.downloader.Downloader;
import org.schabi.newpipe.report.AcraReportSenderFactory;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.settings.SettingsActivity;
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
import java.io.IOException;
@@ -95,10 +97,15 @@ public class App extends Application {
SettingsActivity.initSettings(this);
NewPipe.init(getDownloader(),
org.schabi.newpipe.util.Localization.getPreferredExtractorLocal(this));
Localization.getPreferredLocalization(this),
Localization.getPreferredContentCountry(this));
Localization.init(getApplicationContext());
StateSaver.init(this);
initNotificationChannel();
ServiceHelper.initServices(this);
// Initialize image loader
ImageLoader.getInstance().init(getImageLoaderConfigurations(10, 50));
@@ -109,7 +116,7 @@ public class App extends Application {
}
protected Downloader getDownloader() {
return org.schabi.newpipe.Downloader.init(null);
return DownloaderImpl.init(null);
}
private void configureRxJavaErrorHandler() {

View File

@@ -107,6 +107,7 @@ public abstract class BaseFragment extends Fragment {
if (DEBUG) Log.d(TAG, "setTitle() called with: title = [" + title + "]");
if((!useAsFrontPage || mIsVisibleToUser)
&& (activity != null && activity.getSupportActionBar() != null)) {
activity.getSupportActionBar().setDisplayShowTitleEnabled(true);
activity.getSupportActionBar().setTitle(title);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,220 @@
package org.schabi.newpipe;
import android.os.Build;
import android.text.TextUtils;
import org.schabi.newpipe.extractor.downloader.Downloader;
import org.schabi.newpipe.extractor.downloader.Request;
import org.schabi.newpipe.extractor.downloader.Response;
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
import org.schabi.newpipe.util.TLSSocketFactoryCompat;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import okhttp3.CipherSuite;
import okhttp3.ConnectionSpec;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import static org.schabi.newpipe.MainActivity.DEBUG;
public class DownloaderImpl extends Downloader {
public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0";
private static DownloaderImpl instance;
private String mCookies;
private OkHttpClient client;
private DownloaderImpl(OkHttpClient.Builder builder) {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
enableModernTLS(builder);
}
this.client = builder
.readTimeout(30, TimeUnit.SECONDS)
//.cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), 16 * 1024 * 1024))
.build();
}
/**
* It's recommended to call exactly once in the entire lifetime of the application.
*
* @param builder if null, default builder will be used
*/
public static DownloaderImpl init(@Nullable OkHttpClient.Builder builder) {
return instance = new DownloaderImpl(builder != null ? builder : new OkHttpClient.Builder());
}
public static DownloaderImpl getInstance() {
return instance;
}
public String getCookies() {
return mCookies;
}
public void setCookies(String cookies) {
mCookies = cookies;
}
/**
* Get the size of the content that the url is pointing by firing a HEAD request.
*
* @param url an url pointing to the content
* @return the size of the content, in bytes
*/
public long getContentLength(String url) throws IOException {
try {
final Response response = head(url);
return Long.parseLong(response.getHeader("Content-Length"));
} catch (NumberFormatException e) {
throw new IOException("Invalid content length", e);
} catch (ReCaptchaException e) {
throw new IOException(e);
}
}
public InputStream stream(String siteUrl) throws IOException {
try {
final okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder()
.method("GET", null).url(siteUrl)
.addHeader("User-Agent", USER_AGENT);
if (!TextUtils.isEmpty(mCookies)) {
requestBuilder.addHeader("Cookie", mCookies);
}
final okhttp3.Request request = requestBuilder.build();
final okhttp3.Response response = client.newCall(request).execute();
final ResponseBody body = response.body();
if (response.code() == 429) {
throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl);
}
if (body == null) {
response.close();
return null;
}
return body.byteStream();
} catch (ReCaptchaException e) {
throw new IOException(e.getMessage(), e.getCause());
}
}
@Override
public Response execute(@NonNull Request request) throws IOException, ReCaptchaException {
final String httpMethod = request.httpMethod();
final String url = request.url();
final Map<String, List<String>> headers = request.headers();
final byte[] dataToSend = request.dataToSend();
RequestBody requestBody = null;
if (dataToSend != null) {
requestBody = RequestBody.create(null, dataToSend);
}
final okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder()
.method(httpMethod, requestBody).url(url)
.addHeader("User-Agent", USER_AGENT);
if (!TextUtils.isEmpty(mCookies)) {
requestBuilder.addHeader("Cookie", mCookies);
}
for (Map.Entry<String, List<String>> pair : headers.entrySet()) {
final String headerName = pair.getKey();
final List<String> headerValueList = pair.getValue();
if (headerValueList.size() > 1) {
requestBuilder.removeHeader(headerName);
for (String headerValue : headerValueList) {
requestBuilder.addHeader(headerName, headerValue);
}
} else if (headerValueList.size() == 1) {
requestBuilder.header(headerName, headerValueList.get(0));
}
}
final okhttp3.Response response = client.newCall(requestBuilder.build()).execute();
if (response.code() == 429) {
response.close();
throw new ReCaptchaException("reCaptcha Challenge requested", url);
}
final ResponseBody body = response.body();
String responseBodyToReturn = null;
if (body != null) {
responseBodyToReturn = body.string();
}
final String latestUrl = response.request().url().toString();
return new Response(response.code(), response.message(), response.headers().toMultimap(), responseBodyToReturn, latestUrl);
}
/**
* Enable TLS 1.2 and 1.1 on Android Kitkat. This function is mostly taken from the documentation of
* OkHttpClient.Builder.sslSocketFactory(_,_)
* <p>
* If there is an error, the function will safely fall back to doing nothing and printing the error to the console.
*
* @param builder The HTTPClient Builder on which TLS is enabled on (will be modified in-place)
*/
private static void enableModernTLS(OkHttpClient.Builder builder) {
try {
// get the default TrustManager
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init((KeyStore) null);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
throw new IllegalStateException("Unexpected default trust managers:"
+ Arrays.toString(trustManagers));
}
X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
// insert our own TLSSocketFactory
SSLSocketFactory sslSocketFactory = TLSSocketFactoryCompat.getInstance();
builder.sslSocketFactory(sslSocketFactory, trustManager);
// This will try to enable all modern CipherSuites(+2 more) that are supported on the device.
// Necessary because some servers (e.g. Framatube.org) don't support the old cipher suites.
// https://github.com/square/okhttp/issues/4053#issuecomment-402579554
List<CipherSuite> cipherSuites = new ArrayList<>();
cipherSuites.addAll(ConnectionSpec.MODERN_TLS.cipherSuites());
cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA);
cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA);
ConnectionSpec legacyTLS = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.cipherSuites(cipherSuites.toArray(new CipherSuite[0]))
.build();
builder.connectionSpecs(Arrays.asList(legacyTLS, ConnectionSpec.CLEARTEXT));
} catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
if (DEBUG) e.printStackTrace();
}
}
}

View File

@@ -40,7 +40,7 @@ public class ImageDownloader extends BaseImageDownloader {
}
protected InputStream getStreamFromNetwork(String imageUri, Object extra) throws IOException {
final Downloader downloader = (Downloader) NewPipe.getDownloader();
final DownloaderImpl downloader = (DownloaderImpl) NewPipe.getDownloader();
return downloader.stream(imageUri);
}
}

View File

@@ -29,14 +29,17 @@ import android.os.Handler;
import android.os.Looper;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -47,12 +50,14 @@ import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.navigation.NavigationView;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance;
import org.schabi.newpipe.fragments.BackPressable;
import org.schabi.newpipe.fragments.MainFragment;
import org.schabi.newpipe.fragments.detail.VideoDetailFragment;
@@ -60,12 +65,20 @@ import org.schabi.newpipe.fragments.list.search.SearchFragment;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.util.Constants;
import org.schabi.newpipe.util.KioskTranslator;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PeertubeHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
import org.schabi.newpipe.util.TLSSocketFactoryCompat;
import org.schabi.newpipe.util.ThemeHelper;
import java.util.ArrayList;
import java.util.List;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
@@ -97,8 +110,13 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");
// enable TLS1.1/1.2 for kitkat devices, to fix download and play for mediaCCC sources
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
TLSSocketFactoryCompat.setAsDefault();
}
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
@@ -141,7 +159,7 @@ public class MainActivity extends AppCompatActivity {
.add(R.id.menu_tabs_group, ITEM_ID_SUBSCRIPTIONS, ORDER, R.string.tab_subscriptions)
.setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel));
drawerItems.getMenu()
.add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_whats_new)
.add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title)
.setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.rss));
drawerItems.getMenu()
.add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks)
@@ -222,7 +240,7 @@ public class MainActivity extends AppCompatActivity {
NavigationHelper.openSubscriptionFragment(getSupportFragmentManager());
break;
case ITEM_ID_FEED:
NavigationHelper.openWhatsNewFragment(getSupportFragmentManager());
NavigationHelper.openFeedFragment(getSupportFragmentManager());
break;
case ITEM_ID_BOOKMARKS:
NavigationHelper.openBookmarksFragment(getSupportFragmentManager());
@@ -300,13 +318,57 @@ public class MainActivity extends AppCompatActivity {
final String title = s.getServiceInfo().getName() +
(ServiceHelper.isBeta(s) ? " (beta)" : "");
drawerItems.getMenu()
MenuItem menuItem = drawerItems.getMenu()
.add(R.id.menu_services_group, s.getServiceId(), ORDER, title)
.setIcon(ServiceHelper.getIcon(s.getServiceId()));
// peertube specifics
if(s.getServiceId() == 3){
enhancePeertubeMenu(s, menuItem);
}
}
drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(true);
}
private void enhancePeertubeMenu(StreamingService s, MenuItem menuItem) {
PeertubeInstance currentInstace = PeertubeHelper.getCurrentInstance();
menuItem.setTitle(currentInstace.getName() + (ServiceHelper.isBeta(s) ? " (beta)" : ""));
Spinner spinner = (Spinner) LayoutInflater.from(this).inflate(R.layout.instance_spinner_layout, null);
List<PeertubeInstance> instances = PeertubeHelper.getInstanceList(this);
List<String> items = new ArrayList<>();
int defaultSelect = 0;
for(PeertubeInstance instance: instances){
items.add(instance.getName());
if(instance.getUrl().equals(currentInstace.getUrl())){
defaultSelect = items.size()-1;
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.instance_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setSelection(defaultSelect, false);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
PeertubeInstance newInstance = instances.get(position);
if(newInstance.getUrl().equals(PeertubeHelper.getCurrentInstance().getUrl())) return;
PeertubeHelper.selectInstance(newInstance, getApplicationContext());
changeService(menuItem);
drawer.closeDrawers();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
recreate();
}, 300);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
menuItem.setActionView(spinner);
}
private void showTabs() throws ExtractionException {
serviceArrow.setImageResource(R.drawable.ic_arrow_down_white);
@@ -327,7 +389,7 @@ public class MainActivity extends AppCompatActivity {
.add(R.id.menu_tabs_group, ITEM_ID_SUBSCRIPTIONS, ORDER, R.string.tab_subscriptions)
.setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.ic_channel));
drawerItems.getMenu()
.add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_whats_new)
.add(R.id.menu_tabs_group, ITEM_ID_FEED, ORDER, R.string.fragment_feed_title)
.setIcon(ThemeHelper.resolveResourceIdFromAttr(this, R.attr.rss));
drawerItems.getMenu()
.add(R.id.menu_tabs_group, ITEM_ID_BOOKMARKS, ORDER, R.string.tab_bookmarks)
@@ -358,6 +420,8 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
assureCorrectAppLanguage(this);
Localization.init(getApplicationContext()); //change the date format to match the selected language on resume
super.onResume();
// close drawer on return, and don't show animation, so its looks like the drawer isn't open
@@ -367,6 +431,7 @@ public class MainActivity extends AppCompatActivity {
String selectedServiceName = NewPipe.getService(
ServiceHelper.getSelectedServiceId(this)).getServiceInfo().getName();
headerServiceView.setText(selectedServiceName);
headerServiceView.post(() -> headerServiceView.setSelected(true));
toggleServiceButton.setContentDescription(
getString(R.string.drawer_header_description) + selectedServiceName);
} catch (Exception e) {
@@ -387,6 +452,10 @@ public class MainActivity extends AppCompatActivity {
sharedPreferences.edit().putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, false).apply();
NavigationHelper.openMainActivity(this);
}
final boolean isHistoryEnabled = sharedPreferences.getBoolean(
getString(R.string.enable_watch_history_key), true);
drawerItems.getMenu().findItem(ITEM_ID_HISTORY).setVisible(isHistoryEnabled);
}
@Override
@@ -489,8 +558,6 @@ public class MainActivity extends AppCompatActivity {
if (!(fragment instanceof SearchFragment)) {
findViewById(R.id.toolbar).findViewById(R.id.toolbar_search_container).setVisibility(View.GONE);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
}
ActionBar actionBar = getSupportActionBar();
@@ -512,14 +579,6 @@ public class MainActivity extends AppCompatActivity {
case android.R.id.home:
onHomeButtonPressed();
return true;
case R.id.action_show_downloads:
return NavigationHelper.openDownloads(this);
case R.id.action_history:
NavigationHelper.openStatisticFragment(getSupportFragmentManager());
return true;
case R.id.action_settings:
NavigationHelper.openSettings(this);
return true;
default:
return super.onOptionsItemSelected(item);
}

View File

@@ -1,13 +1,16 @@
package org.schabi.newpipe;
import androidx.room.Room;
import android.content.Context;
import android.database.Cursor;
import androidx.annotation.NonNull;
import androidx.room.Room;
import org.schabi.newpipe.database.AppDatabase;
import static org.schabi.newpipe.database.AppDatabase.DATABASE_NAME;
import static org.schabi.newpipe.database.Migrations.MIGRATION_11_12;
import static org.schabi.newpipe.database.Migrations.MIGRATION_1_2;
import static org.schabi.newpipe.database.Migrations.MIGRATION_2_3;
public final class NewPipeDatabase {
@@ -20,8 +23,7 @@ public final class NewPipeDatabase {
private static AppDatabase getDatabase(Context context) {
return Room
.databaseBuilder(context.getApplicationContext(), AppDatabase.class, DATABASE_NAME)
.addMigrations(MIGRATION_11_12)
.fallbackToDestructiveMigration()
.addMigrations(MIGRATION_1_2, MIGRATION_2_3)
.build();
}
@@ -39,4 +41,14 @@ public final class NewPipeDatabase {
return result;
}
public static void checkpoint() {
if (databaseInstance == null) {
throw new IllegalStateException("database is not initialized");
}
Cursor c = databaseInstance.query("pragma wal_checkpoint(full)", null);
if (c.moveToFirst() && c.getInt(0) == 1) {
throw new RuntimeException("Checkpoint was blocked from completing");
}
}
}

View File

@@ -1,20 +1,25 @@
package org.schabi.newpipe;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import androidx.core.app.NavUtils;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.CookieManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import org.schabi.newpipe.util.ThemeHelper;
import androidx.annotation.NonNull;
/*
* Created by beneth <bmauduit@beneth.fr> on 06.12.16.
*
@@ -37,48 +42,46 @@ import android.webkit.WebViewClient;
public class ReCaptchaActivity extends AppCompatActivity {
public static final int RECAPTCHA_REQUEST = 10;
public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra";
public static final String TAG = ReCaptchaActivity.class.toString();
public static final String YT_URL = "https://www.youtube.com";
private String url;
private WebView webView;
private String foundCookies = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
ThemeHelper.setTheme(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recaptcha);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA);
String url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA);
if (url == null || url.isEmpty()) {
url = YT_URL;
}
// Set return to Cancel by default
// set return to Cancel by default
setResult(RESULT_CANCELED);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(R.string.reCaptcha_title);
actionBar.setDisplayShowTitleEnabled(true);
}
webView = findViewById(R.id.reCaptchaWebView);
WebView myWebView = findViewById(R.id.reCaptchaWebView);
// Enable Javascript
WebSettings webSettings = myWebView.getSettings();
// enable Javascript
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
ReCaptchaWebViewClient webClient = new ReCaptchaWebViewClient(this);
myWebView.setWebViewClient(webClient);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
handleCookies(url);
}
});
// Cleaning cache, history and cookies from webView
myWebView.clearCache(true);
myWebView.clearHistory();
// cleaning cache, history and cookies from webView
webView.clearCache(true);
webView.clearHistory();
android.webkit.CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.removeAllCookies(aBoolean -> {});
@@ -86,77 +89,82 @@ public class ReCaptchaActivity extends AppCompatActivity {
cookieManager.removeAllCookie();
}
myWebView.loadUrl(url);
webView.loadUrl(url);
}
private class ReCaptchaWebViewClient extends WebViewClient {
private final Activity context;
private String mCookies;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_recaptcha, menu);
ReCaptchaWebViewClient(Activity ctx) {
context = ctx;
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setTitle(R.string.title_activity_recaptcha);
actionBar.setSubtitle(R.string.subtitle_activity_recaptcha);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO: Start Loader
super.onPageStarted(view, url, favicon);
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
String cookies = CookieManager.getInstance().getCookie(url);
// TODO: Stop Loader
// find cookies : s_gl & goojf and Add cookies to Downloader
if (find_access_cookies(cookies)) {
// Give cookies to Downloader class
Downloader.getInstance().setCookies(mCookies);
// Closing activity and return to parent
setResult(RESULT_OK);
finish();
}
}
private boolean find_access_cookies(String cookies) {
boolean ret = false;
String c_s_gl = "";
String c_goojf = "";
String[] parts = cookies.split("; ");
for (String part : parts) {
if (part.trim().startsWith("s_gl")) {
c_s_gl = part.trim();
}
if (part.trim().startsWith("goojf")) {
c_goojf = part.trim();
}
}
if (c_s_gl.length() > 0 && c_goojf.length() > 0) {
ret = true;
//mCookies = c_s_gl + "; " + c_goojf;
// Youtube seems to also need the other cookies:
mCookies = cookies;
}
return ret;
}
@Override
public void onBackPressed() {
saveCookiesAndFinish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home: {
Intent intent = new Intent(this, org.schabi.newpipe.MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, intent);
case R.id.menu_item_done:
saveCookiesAndFinish();
return true;
}
default:
return false;
}
}
private void saveCookiesAndFinish() {
handleCookies(webView.getUrl()); // try to get cookies of unclosed page
if (!foundCookies.isEmpty()) {
// give cookies to Downloader class
DownloaderImpl.getInstance().setCookies(foundCookies);
setResult(RESULT_OK);
}
Intent intent = new Intent(this, org.schabi.newpipe.MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, intent);
}
private void handleCookies(String url) {
String cookies = CookieManager.getInstance().getCookie(url);
if (MainActivity.DEBUG) Log.d(TAG, "handleCookies: url=" + url + "; cookies=" + (cookies == null ? "null" : cookies));
if (cookies == null) return;
addYoutubeCookies(cookies);
// add other methods to extract cookies here
}
private void addYoutubeCookies(@NonNull String cookies) {
if (cookies.contains("s_gl=") || cookies.contains("goojf=") || cookies.contains("VISITOR_INFO1_LIVE=")) {
// youtube seems to also need the other cookies:
addCookie(cookies);
}
}
private void addCookie(String cookie) {
if (foundCookies.contains(cookie)) {
return;
}
if (foundCookies.isEmpty() || foundCookies.endsWith("; ")) {
foundCookies += cookie;
} else if (foundCookies.endsWith(";")) {
foundCookies += " " + cookie;
} else {
foundCookies += "; " + cookie;
}
}
}

View File

@@ -9,12 +9,6 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.preference.PreferenceManager;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -26,6 +20,12 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import androidx.fragment.app.FragmentManager;
import org.schabi.newpipe.download.DownloadDialog;
@@ -49,12 +49,11 @@ import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ThemeHelper;
import org.schabi.newpipe.util.urlfinder.UrlFinder;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import icepick.Icepick;
@@ -625,78 +624,18 @@ public class RouterActivity extends AppCompatActivity {
// Utils
//////////////////////////////////////////////////////////////////////////*/
/**
* Removes invisible separators (\p{Z}) and punctuation characters including
* brackets (\p{P}). See http://www.regular-expressions.info/unicode.html for
* more details.
*/
private final static String REGEX_REMOVE_FROM_URL = "[\\p{Z}\\p{P}]";
@Nullable
private String getUrl(Intent intent) {
// first gather data and find service
String videoUrl = null;
String foundUrl = null;
if (intent.getData() != null) {
// this means the video was called though another app
videoUrl = intent.getData().toString();
// Called from another app
foundUrl = intent.getData().toString();
} else if (intent.getStringExtra(Intent.EXTRA_TEXT) != null) {
//this means that vidoe was called through share menu
String extraText = intent.getStringExtra(Intent.EXTRA_TEXT);
final String[] uris = getUris(extraText);
videoUrl = uris.length > 0 ? uris[0] : null;
// Called from the share menu
final String extraText = intent.getStringExtra(Intent.EXTRA_TEXT);
foundUrl = UrlFinder.firstUrlFromInput(extraText);
}
return videoUrl;
}
private String removeHeadingGibberish(final String input) {
int start = 0;
for (int i = input.indexOf("://") - 1; i >= 0; i--) {
if (!input.substring(i, i + 1).matches("\\p{L}")) {
start = i + 1;
break;
}
}
return input.substring(start, input.length());
}
private String trim(final String input) {
if (input == null || input.length() < 1) {
return input;
} else {
String output = input;
while (output.length() > 0 && output.substring(0, 1).matches(REGEX_REMOVE_FROM_URL)) {
output = output.substring(1);
}
while (output.length() > 0
&& output.substring(output.length() - 1, output.length()).matches(REGEX_REMOVE_FROM_URL)) {
output = output.substring(0, output.length() - 1);
}
return output;
}
}
/**
* Retrieves all Strings which look remotely like URLs from a text.
* Used if NewPipe was called through share menu.
*
* @param sharedText text to scan for URLs.
* @return potential URLs
*/
protected String[] getUris(final String sharedText) {
final Collection<String> result = new HashSet<>();
if (sharedText != null) {
final String[] array = sharedText.split("\\p{Space}");
for (String s : array) {
s = trim(s);
if (s.length() != 0) {
if (s.matches(".+://.+")) {
result.add(removeHeadingGibberish(s));
} else if (s.matches(".+\\..+")) {
result.add("http://" + s);
}
}
}
}
return result.toArray(new String[result.size()]);
return foundUrl;
}
}

View File

@@ -22,27 +22,31 @@ import android.widget.TextView;
import org.schabi.newpipe.BuildConfig;
import org.schabi.newpipe.R;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.ThemeHelper;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
public class AboutActivity extends AppCompatActivity {
/**
* List of all software components
*/
private static final SoftwareComponent[] SOFTWARE_COMPONENTS = new SoftwareComponent[]{
new SoftwareComponent("Giga Get", "2014", "Peter Cai", "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
new SoftwareComponent("NewPipe Extractor", "2017", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
new SoftwareComponent("Giga Get", "2014 - 2015", "Peter Cai", "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
new SoftwareComponent("NewPipe Extractor", "2017 - 2020", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley", "https://github.com/jhy/jsoup", StandardLicenses.MIT),
new SoftwareComponent("Rhino", "2015", "Mozilla", "https://www.mozilla.org/rhino/", StandardLicenses.MPL2),
new SoftwareComponent("ACRA", "2013", "Kevin Gaudin", "http://www.acra.ch", StandardLicenses.APACHE2),
new SoftwareComponent("Universal Image Loader", "2011 - 2015", "Sergey Tarasevich", "https://github.com/nostra13/Android-Universal-Image-Loader", StandardLicenses.APACHE2),
new SoftwareComponent("CircleImageView", "2014 - 2017", "Henning Dodenhof", "https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
new SoftwareComponent("CircleImageView", "2014 - 2020", "Henning Dodenhof", "https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
new SoftwareComponent("NoNonsense-FilePicker", "2016", "Jonas Kalderstam", "https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2),
new SoftwareComponent("ExoPlayer", "2014-2017", "Google Inc", "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
new SoftwareComponent("RxAndroid", "2015", "The RxAndroid authors", "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
new SoftwareComponent("RxJava", "2016-present", "RxJava Contributors", "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
new SoftwareComponent("RxBinding", "2015", "Jake Wharton", "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2)
new SoftwareComponent("ExoPlayer", "2014 - 2020", "Google Inc", "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
new SoftwareComponent("RxAndroid", "2015 - 2018", "The RxAndroid authors", "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
new SoftwareComponent("RxJava", "2016 - 2020", "RxJava Contributors", "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
new SoftwareComponent("RxBinding", "2015 - 2018", "Jake Wharton", "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2),
new SoftwareComponent("PrettyTime", "2012 - 2020", "Lincoln Baxter, III", "https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2),
new SoftwareComponent("Markwon", "2017 - 2020", "Noties", "https://github.com/noties/Markwon", StandardLicenses.APACHE2),
new SoftwareComponent("Groupie", "2016", "Lisa Wray", "https://github.com/lisawray/groupie", StandardLicenses.MIT)
};
/**
@@ -62,8 +66,10 @@ public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
ThemeHelper.setTheme(this);
this.setTitle(getString(R.string.title_activity_about));
setContentView(R.layout.activity_about);
@@ -83,13 +89,6 @@ public class AboutActivity extends AppCompatActivity {
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_about, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
@@ -99,11 +98,6 @@ public class AboutActivity extends AppCompatActivity {
case android.R.id.home:
finish();
return true;
case R.id.action_settings:
NavigationHelper.openSettings(this);
return true;
case R.id.action_show_downloads:
return NavigationHelper.openDownloads(this);
}
return super.onOptionsItemSelected(item);

View File

@@ -3,6 +3,7 @@ package org.schabi.newpipe.about;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.AsyncTask;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
@@ -14,6 +15,8 @@ import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.ref.WeakReference;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
public class LicenseFragmentHelper extends AsyncTask<Object, Void, Integer> {
final WeakReference<Activity> weakReference;
@@ -55,15 +58,15 @@ public class LicenseFragmentHelper extends AsyncTask<Object, Void, Integer> {
wv.loadData(webViewData, "text/html; charset=UTF-8", null);
alert.setView(wv);
alert.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
assureCorrectAppLanguage(activity.getApplicationContext());
alert.setNegativeButton(getFinishString(activity), (dialog, which) -> dialog.dismiss());
alert.show();
}
private static String getFinishString(Activity activity) {
return activity.getApplicationContext().getResources().getString(R.string.finish);
}
/**
* @param context the context to use
* @param license the license

View File

@@ -4,6 +4,12 @@ import androidx.room.Database;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
import org.schabi.newpipe.database.feed.dao.FeedDAO;
import org.schabi.newpipe.database.feed.dao.FeedGroupDAO;
import org.schabi.newpipe.database.feed.model.FeedEntity;
import org.schabi.newpipe.database.feed.model.FeedGroupEntity;
import org.schabi.newpipe.database.feed.model.FeedGroupSubscriptionEntity;
import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity;
import org.schabi.newpipe.database.history.dao.SearchHistoryDAO;
import org.schabi.newpipe.database.history.dao.StreamHistoryDAO;
import org.schabi.newpipe.database.history.model.SearchHistoryEntry;
@@ -21,35 +27,33 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity;
import org.schabi.newpipe.database.subscription.SubscriptionDAO;
import org.schabi.newpipe.database.subscription.SubscriptionEntity;
import static org.schabi.newpipe.database.Migrations.DB_VER_12_0;
import static org.schabi.newpipe.database.Migrations.DB_VER_3;
@TypeConverters({Converters.class})
@Database(
entities = {
SubscriptionEntity.class, SearchHistoryEntry.class,
StreamEntity.class, StreamHistoryEntity.class, StreamStateEntity.class,
PlaylistEntity.class, PlaylistStreamEntity.class, PlaylistRemoteEntity.class
PlaylistEntity.class, PlaylistStreamEntity.class, PlaylistRemoteEntity.class,
FeedEntity.class, FeedGroupEntity.class, FeedGroupSubscriptionEntity.class,
FeedLastUpdatedEntity.class
},
version = DB_VER_12_0,
exportSchema = false
version = DB_VER_3
)
public abstract class AppDatabase extends RoomDatabase {
public static final String DATABASE_NAME = "newpipe.db";
public abstract SubscriptionDAO subscriptionDAO();
public abstract SearchHistoryDAO searchHistoryDAO();
public abstract StreamDAO streamDAO();
public abstract StreamHistoryDAO streamHistoryDAO();
public abstract StreamStateDAO streamStateDAO();
public abstract PlaylistDAO playlistDAO();
public abstract PlaylistStreamDAO playlistStreamDAO();
public abstract PlaylistRemoteDAO playlistRemoteDAO();
public abstract FeedDAO feedDAO();
public abstract FeedGroupDAO feedGroupDAO();
public abstract SubscriptionDAO subscriptionDAO();
}

View File

@@ -3,6 +3,7 @@ package org.schabi.newpipe.database;
import androidx.room.TypeConverter;
import org.schabi.newpipe.extractor.stream.StreamType;
import org.schabi.newpipe.local.subscription.FeedGroupIcon;
import java.util.Date;
@@ -37,4 +38,18 @@ public class Converters {
public static String stringOf(StreamType streamType) {
return streamType.name();
}
@TypeConverter
public static Integer integerOf(FeedGroupIcon feedGroupIcon) {
return feedGroupIcon.getId();
}
@TypeConverter
public static FeedGroupIcon feedGroupIconOf(Integer id) {
for (FeedGroupIcon icon : FeedGroupIcon.values()) {
if (icon.getId() == id) return icon;
}
throw new IllegalArgumentException("There's no feed group icon with the id \"" + id + "\"");
}
}

View File

@@ -8,14 +8,14 @@ import android.util.Log;
import org.schabi.newpipe.BuildConfig;
public class Migrations {
public static final int DB_VER_11_0 = 1;
public static final int DB_VER_12_0 = 2;
public static final int DB_VER_1 = 1;
public static final int DB_VER_2 = 2;
public static final int DB_VER_3 = 3;
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
private static final String TAG = Migrations.class.getName();
public static final Migration MIGRATION_11_12 = new Migration(DB_VER_11_0, DB_VER_12_0) {
public static final Migration MIGRATION_1_2 = new Migration(DB_VER_1, DB_VER_2) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
if(DEBUG) {
@@ -71,4 +71,32 @@ public class Migrations {
}
}
};
public static final Migration MIGRATION_2_3 = new Migration(DB_VER_2, DB_VER_3) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
// Add NOT NULLs and new fields
database.execSQL("CREATE TABLE IF NOT EXISTS streams_new " +
"(uid INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, service_id INTEGER NOT NULL, url TEXT NOT NULL, title TEXT NOT NULL, stream_type TEXT NOT NULL," +
" duration INTEGER NOT NULL, uploader TEXT NOT NULL, thumbnail_url TEXT, view_count INTEGER, textual_upload_date TEXT, upload_date INTEGER," +
" is_upload_date_approximation INTEGER)");
database.execSQL("INSERT INTO streams_new (uid, service_id, url, title, stream_type, duration, uploader, thumbnail_url, view_count, textual_upload_date, upload_date, is_upload_date_approximation)"+
" SELECT uid, service_id, url, title, stream_type, duration, uploader, thumbnail_url, NULL, NULL, NULL, NULL FROM streams");
database.execSQL("DROP TABLE streams");
database.execSQL("ALTER TABLE streams_new RENAME TO streams");
database.execSQL("CREATE UNIQUE INDEX index_streams_service_id_url ON streams (service_id, url)");
// Tables for feed feature
database.execSQL("CREATE TABLE IF NOT EXISTS feed (stream_id INTEGER NOT NULL, subscription_id INTEGER NOT NULL, PRIMARY KEY(stream_id, subscription_id), FOREIGN KEY(stream_id) REFERENCES streams(uid) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, FOREIGN KEY(subscription_id) REFERENCES subscriptions(uid) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED)");
database.execSQL("CREATE INDEX index_feed_subscription_id ON feed (subscription_id)");
database.execSQL("CREATE TABLE IF NOT EXISTS feed_group (uid INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT NOT NULL, icon_id INTEGER NOT NULL, sort_order INTEGER NOT NULL)");
database.execSQL("CREATE INDEX index_feed_group_sort_order ON feed_group (sort_order)");
database.execSQL("CREATE TABLE IF NOT EXISTS feed_group_subscription_join (group_id INTEGER NOT NULL, subscription_id INTEGER NOT NULL, PRIMARY KEY(group_id, subscription_id), FOREIGN KEY(group_id) REFERENCES feed_group(uid) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, FOREIGN KEY(subscription_id) REFERENCES subscriptions(uid) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED)");
database.execSQL("CREATE INDEX index_feed_group_subscription_join_subscription_id ON feed_group_subscription_join (subscription_id)");
database.execSQL("CREATE TABLE IF NOT EXISTS feed_last_updated (subscription_id INTEGER NOT NULL, last_updated INTEGER, PRIMARY KEY(subscription_id), FOREIGN KEY(subscription_id) REFERENCES subscriptions(uid) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED)");
}
};
}

View File

@@ -0,0 +1,147 @@
package org.schabi.newpipe.database.feed.dao
import androidx.room.*
import io.reactivex.Flowable
import org.schabi.newpipe.database.feed.model.FeedEntity
import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity
import org.schabi.newpipe.database.stream.model.StreamEntity
import org.schabi.newpipe.database.subscription.SubscriptionEntity
import java.util.*
@Dao
abstract class FeedDAO {
@Query("DELETE FROM feed")
abstract fun deleteAll(): Int
@Query("""
SELECT s.* FROM streams s
INNER JOIN feed f
ON s.uid = f.stream_id
ORDER BY s.upload_date IS NULL DESC, s.upload_date DESC, s.uploader ASC
LIMIT 500
""")
abstract fun getAllStreams(): Flowable<List<StreamEntity>>
@Query("""
SELECT s.* FROM streams s
INNER JOIN feed f
ON s.uid = f.stream_id
INNER JOIN feed_group_subscription_join fgs
ON fgs.subscription_id = f.subscription_id
INNER JOIN feed_group fg
ON fg.uid = fgs.group_id
WHERE fgs.group_id = :groupId
ORDER BY s.upload_date IS NULL DESC, s.upload_date DESC, s.uploader ASC
LIMIT 500
""")
abstract fun getAllStreamsFromGroup(groupId: Long): Flowable<List<StreamEntity>>
@Query("""
DELETE FROM feed WHERE
feed.stream_id IN (
SELECT s.uid FROM streams s
INNER JOIN feed f
ON s.uid = f.stream_id
WHERE s.upload_date < :date
)
""")
abstract fun unlinkStreamsOlderThan(date: Date)
@Query("""
DELETE FROM feed
WHERE feed.subscription_id = :subscriptionId
AND feed.stream_id IN (
SELECT s.uid FROM streams s
INNER JOIN feed f
ON s.uid = f.stream_id
WHERE s.stream_type = "LIVE_STREAM" OR s.stream_type = "AUDIO_LIVE_STREAM"
)
""")
abstract fun unlinkOldLivestreams(subscriptionId: Long)
@Insert(onConflict = OnConflictStrategy.IGNORE)
abstract fun insert(feedEntity: FeedEntity)
@Insert(onConflict = OnConflictStrategy.IGNORE)
abstract fun insertAll(entities: List<FeedEntity>): List<Long>
@Insert(onConflict = OnConflictStrategy.IGNORE)
internal abstract fun insertLastUpdated(lastUpdatedEntity: FeedLastUpdatedEntity): Long
@Update(onConflict = OnConflictStrategy.IGNORE)
internal abstract fun updateLastUpdated(lastUpdatedEntity: FeedLastUpdatedEntity)
@Transaction
open fun setLastUpdatedForSubscription(lastUpdatedEntity: FeedLastUpdatedEntity) {
val id = insertLastUpdated(lastUpdatedEntity)
if (id == -1L) {
updateLastUpdated(lastUpdatedEntity)
}
}
@Query("""
SELECT MIN(lu.last_updated) FROM feed_last_updated lu
INNER JOIN feed_group_subscription_join fgs
ON fgs.subscription_id = lu.subscription_id AND fgs.group_id = :groupId
""")
abstract fun oldestSubscriptionUpdate(groupId: Long): Flowable<List<Date>>
@Query("SELECT MIN(last_updated) FROM feed_last_updated")
abstract fun oldestSubscriptionUpdateFromAll(): Flowable<List<Date>>
@Query("SELECT COUNT(*) FROM feed_last_updated WHERE last_updated IS NULL")
abstract fun notLoadedCount(): Flowable<Long>
@Query("""
SELECT COUNT(*) FROM subscriptions s
INNER JOIN feed_group_subscription_join fgs
ON s.uid = fgs.subscription_id AND fgs.group_id = :groupId
LEFT JOIN feed_last_updated lu
ON s.uid = lu.subscription_id
WHERE lu.last_updated IS NULL
""")
abstract fun notLoadedCountForGroup(groupId: Long): Flowable<Long>
@Query("""
SELECT s.* FROM subscriptions s
LEFT JOIN feed_last_updated lu
ON s.uid = lu.subscription_id
WHERE lu.last_updated IS NULL OR lu.last_updated < :outdatedThreshold
""")
abstract fun getAllOutdated(outdatedThreshold: Date): Flowable<List<SubscriptionEntity>>
@Query("""
SELECT s.* FROM subscriptions s
INNER JOIN feed_group_subscription_join fgs
ON s.uid = fgs.subscription_id AND fgs.group_id = :groupId
LEFT JOIN feed_last_updated lu
ON s.uid = lu.subscription_id
WHERE lu.last_updated IS NULL OR lu.last_updated < :outdatedThreshold
""")
abstract fun getAllOutdatedForGroup(groupId: Long, outdatedThreshold: Date): Flowable<List<SubscriptionEntity>>
}

View File

@@ -0,0 +1,62 @@
package org.schabi.newpipe.database.feed.dao
import androidx.room.*
import io.reactivex.Flowable
import io.reactivex.Maybe
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
import org.schabi.newpipe.database.feed.model.FeedGroupSubscriptionEntity
@Dao
abstract class FeedGroupDAO {
@Query("SELECT * FROM feed_group ORDER BY sort_order ASC")
abstract fun getAll(): Flowable<List<FeedGroupEntity>>
@Query("SELECT * FROM feed_group WHERE uid = :groupId")
abstract fun getGroup(groupId: Long): Maybe<FeedGroupEntity>
@Transaction
open fun insert(feedGroupEntity: FeedGroupEntity): Long {
val nextSortOrder = nextSortOrder()
feedGroupEntity.sortOrder = nextSortOrder
return insertInternal(feedGroupEntity)
}
@Update(onConflict = OnConflictStrategy.IGNORE)
abstract fun update(feedGroupEntity: FeedGroupEntity): Int
@Query("DELETE FROM feed_group")
abstract fun deleteAll(): Int
@Query("DELETE FROM feed_group WHERE uid = :groupId")
abstract fun delete(groupId: Long): Int
@Query("SELECT subscription_id FROM feed_group_subscription_join WHERE group_id = :groupId")
abstract fun getSubscriptionIdsFor(groupId: Long): Flowable<List<Long>>
@Query("DELETE FROM feed_group_subscription_join WHERE group_id = :groupId")
abstract fun deleteSubscriptionsFromGroup(groupId: Long): Int
@Insert(onConflict = OnConflictStrategy.IGNORE)
abstract fun insertSubscriptionsToGroup(entities: List<FeedGroupSubscriptionEntity>): List<Long>
@Transaction
open fun updateSubscriptionsForGroup(groupId: Long, subscriptionIds: List<Long>) {
deleteSubscriptionsFromGroup(groupId)
insertSubscriptionsToGroup(subscriptionIds.map { FeedGroupSubscriptionEntity(groupId, it) })
}
@Transaction
open fun updateOrder(orderMap: Map<Long, Long>) {
orderMap.forEach { (groupId, sortOrder) -> updateOrder(groupId, sortOrder) }
}
@Query("UPDATE feed_group SET sort_order = :sortOrder WHERE uid = :groupId")
abstract fun updateOrder(groupId: Long, sortOrder: Long): Int
@Query("SELECT IFNULL(MAX(sort_order) + 1, 0) FROM feed_group")
protected abstract fun nextSortOrder(): Long
@Insert(onConflict = OnConflictStrategy.ABORT)
protected abstract fun insertInternal(feedGroupEntity: FeedGroupEntity): Long
}

View File

@@ -0,0 +1,43 @@
package org.schabi.newpipe.database.feed.model
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import org.schabi.newpipe.database.feed.model.FeedEntity.Companion.FEED_TABLE
import org.schabi.newpipe.database.feed.model.FeedEntity.Companion.STREAM_ID
import org.schabi.newpipe.database.feed.model.FeedEntity.Companion.SUBSCRIPTION_ID
import org.schabi.newpipe.database.stream.model.StreamEntity
import org.schabi.newpipe.database.subscription.SubscriptionEntity
@Entity(tableName = FEED_TABLE,
primaryKeys = [STREAM_ID, SUBSCRIPTION_ID],
indices = [Index(SUBSCRIPTION_ID)],
foreignKeys = [
ForeignKey(
entity = StreamEntity::class,
parentColumns = [StreamEntity.STREAM_ID],
childColumns = [STREAM_ID],
onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true),
ForeignKey(
entity = SubscriptionEntity::class,
parentColumns = [SubscriptionEntity.SUBSCRIPTION_UID],
childColumns = [SUBSCRIPTION_ID],
onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true)
]
)
data class FeedEntity(
@ColumnInfo(name = STREAM_ID)
var streamId: Long,
@ColumnInfo(name = SUBSCRIPTION_ID)
var subscriptionId: Long
) {
companion object {
const val FEED_TABLE = "feed"
const val STREAM_ID = "stream_id"
const val SUBSCRIPTION_ID = "subscription_id"
}
}

Some files were not shown because too many files have changed in this diff Show More